- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
这发生在我没有访问源代码的两个静态库中。
我正在尝试将 Rdio SDK 安装到我的项目中(使用 these instructions )。我的项目已经使用了很多谷歌的服务,而且Rdio和谷歌之间似乎存在C函数命名冲突:
duplicate symbol _CreateDispatchTimer in:
/Users/abdullahbakhach/dev/ios/Vibereel_IOS/Vibereel/Pods/Google/Libraries/libGGLCore.a(GMRAlarm.o)
/Users/abdullahbakhach/dev/ios/Vibereel_IOS/Vibereel/Vibereel/rdio-ios-3.1.0/Rdio.framework/Rdio(RDPlayer.o)
ld: 1 duplicate symbol for architecture armv7
Google Core is installed on my project using cocoapods, on my podfile I have:
pod 'Google/SignIn'
在 Podfile.lock 中我有:
- Google/Core (1.1.0):
- GoogleInterchangeUtilities (~> 1.0)
- GoogleNetworkingUtilities (~> 1.0)
- GoogleSymbolUtilities (~> 1.0)
- GoogleUtilities (~> 1.1)
- Google/SignIn (1.1.0):
- Google/Core
- GoogleSignIn (~> 2.0)
- GoogleAppUtilities (1.0.0):
- GoogleSymbolUtilities (~> 1.0)
- GoogleAuthUtilities (1.0.1):
- GoogleNetworkingUtilities (~> 1.0)
- GoogleSymbolUtilities (~> 1.0)
- GoogleInterchangeUtilities (1.0.0):
- GoogleSymbolUtilities (~> 1.0)
- GoogleNetworkingUtilities (1.0.0):
- GoogleSymbolUtilities (~> 1.0)
- GoogleSignIn (2.2.0):
- GoogleAppUtilities (~> 1)
- GoogleAuthUtilities (~> 1)
- GoogleNetworkingUtilities (~> 1)
- GoogleUtilities (~> 1)
- GoogleSymbolUtilities (1.0.0)
- GoogleUtilities (1.1.0):
- GoogleSymbolUtilities (~> 1.0.0)
我做了一些研究并试图看看我是否可以以某种方式更改/删除/隐藏这两个库中的任何一个中的方法名称..但是我可以跨越 this apple documentation:
There is no mechanism for hiding an Objective-C class or method defined in a dynamic library from the clients of that library.
所以我有点卡住了..有什么想法吗?
最佳答案
如果您有权访问源代码,您可以修改冲突变量的名称或可见范围(例如,将其设为静态)。
如果您无法访问使用库的源代码,您可以联系贡献者要求更改名称/添加前缀/更改函数/变量的可见性。
如果您对该选项不满意,您可以修改其中一个库的符号表以避免冲突。您可以通过更改冲突函数的可见性或重命名函数来修改符号表。
因为您使用的是 OS X,所以您需要 objconv由本地计算机 ( see documentation) 上的 Agner Fog(objcopy 的模拟)。
以下是修改库的符号表的步骤:
path/to/rdio/rdio-ios-3.1.0/Rdio.framework/Rdio
lipo -info Rdio
lipo Rdio -thin armv7 -output Rdio_armv7
ar x Rdio_armv7 RDPlayer.o
nm -gU RDPlayer.o
objconv -nl:_CreateDispatchTimer RDPlayer.o RDPlayer_new.o
rm RDPLayer.o && mv RDPLayer_new.o RDPlayer.o
nm -gU RDPlayer.o
ar r -s Rdio_armv7 RDPlayer.o
lipo Rdio_arm64 Rdio_armv7 Rdio_armv7s Rdio_i386 Rdio_x86_64 -create -output Rdio
关于ios - Rdio 和 Google Core 库之间的静态库函数名称冲突,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33232305/
我需要创建一个弹出框,与 Rdio 在其网站上的做法非常相似。在 Rdio 上,当您单击用户的缩略图时,会出现一个带有用户个人资料详细信息的弹出框。我想知道我怎么能完成这样的事情。我正在用 Ruby
我正在尝试重新创建 rdio ( http://rdio.com) 为他们的播放器页脚创建的脚本。当您单击页脚时,面板会很好地向上滑动并显示更多内容。另一个例子是teehan lax;顶部下拉菜单 h
http://www.rdio.com 给我留下了深刻的印象用户界面。 (先登录) 我想知道他们如何重新组织中央 div 中按行填充的专辑封面的数量,该数量由屏幕尺寸决定。 (尝试按比例放大和缩小)。
对于为什么我在客户端的 Javascript 中收到“无法加载资源:服务器响应状态为 400(错误请求)”有什么想法吗? (客户端 ID 模糊,我通过注册 Rdio 站点有一个用于 Oauth2.0
当您访问http://www.rdio.com/#/aboutus/时例如,您会看到他们的“关于我们”页面加载,现在当您将鼠标悬停在或检查页脚中的“关于我们”链接时,它只是指向/aboutus。我还检
我为自己构建了一个小型桌面应用程序,用于记录来自 iTunes 和 Rdio 的收听情况,以便我可以根据我随着时间的推移听音乐的方式创建强大的播放列表,但它要求每个轨道都有一个永远不会改变的唯一 ID
我正在研究 Rdio 的 iOS SDK。我已经在此处概述的“入门”中正确设置了所有内容 (http://www.rdio.com/developers/docs/libraries/ios/)。应用
问题 这发生在我没有访问源代码的两个静态库中。 我正在尝试将 Rdio SDK 安装到我的项目中(使用 these instructions )。我的项目已经使用了很多谷歌的服务,而且Rdio和谷歌之
我想创建一个包含大量混音带的 Rails 应用程序,用户可以收听和下载这些混音带(例如 datpiff.com)。所有的混音带都会由我上传。每个混音带都有自己的页面,包括标题、艺术家姓名、封面等。 我
我正在尝试获取“hello world”app用于 Rdio Web 播放 API 的工作。我克隆了该存储库并打开了 hello.html 文件。当我点击播放时,出现以下错误: Uncaught Ty
谁能指出我实现 Spotify 和 Rdio 用于其“正在播放”底部工具栏的功能类型的正确方向?可以触摸并拖动 View Controller 到另一个 View Controller 的顶部。整个过
我试图复制在 iOS 应用 Rdio 中看到的屏幕大小调整行为。有问题的屏幕提供了所选专辑的概览,并在上半部分包含一个 UIView,在下半部分包含一个 UITableView。当 tableView
我是一名优秀的程序员,十分优秀!