虽然我已经看到很多关于Cocoapods和静态库的问题,但大多数人似乎都认为你最终会拥有一个带有静态库和最终目标应用程序的工作区.
在我的场景中,我正在构建一个静态库.更具体地说,我正在攻击MyLib.framework供用户使用.我真的很想管理MyLib.framework与Cocoapods的依赖关系,但是当我的库的消费者也使用Cocoapods 时,它会产生很多痛点.
例如,我的库有一个AFNetworking依赖项,我用Cocoapods管理它.当我构建我的库时,它链接在libPods.a中,其中包括AFNetworking,以及一些"虚拟"文件/对象.如果我的框架的用户也使用Cocoapods来构建他们的应用程序,他们会看到如下内容:
duplicate symbol _OBJC_METACLASS_$_PodsDummy_Pods in:
/Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o)
/Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)
duplicate symbol _OBJC_CLASS_$_PodsDummy_Pods in:
/Users/erikkerber/Dropbox/Projects/MillMain/MyLib.framework/BuddySDK(Pods-dummy.o)
/Users/erikkerber/Library/Developer/Xcode/DerivedData/MillMain-fngfqhlslygksgcfuciznkpqfrbr/Build/Products/Debug-iphonesimulator/libPods.a(Pods-dummy.o)
ld: 2 duplicate symbols for architecture i386
Run Code Online (Sandbox Code Playgroud)
我想如果他们要添加一个AFNetworking依赖项,他们也会得到与AFNetworking相关的重复符号.
我计划最终使用Cocoapods分发MyLib,但我也希望能够分发MyLib.framework本身.
有没有办法在我的库中使用Cocoapods同时使Cocoapods对任何潜在用户都安全?
我正在尝试将Google Analytics用于我的应用.
但是在通过CocoaPod添加后立即出现此错误:
以前我的pod中有GoogleMaps和GCM.
现在我的Pod看起来像这样:
platform :ios, '8.0'
pod 'Google/Analytics'
pod 'Google/CloudMessaging'
pod 'GoogleMaps'
Run Code Online (Sandbox Code Playgroud)
我该如何解决此错误:
*编辑
这解决了我的问题:
如果我运行现有项目,X-Code 7
那么我没有得到错误.
但我想让它运行Xcode 6.4
所以我添加旧版本,GA
并且可以正常运行X-Code 6.4.
我已经手动添加了较旧sdk
但是如果有人想要添加它通过Cocoa-Pod
那么这是这样做的方式:
pod 'Google/Analytics'
pod 'GoogleAnalytics', '3.13.0'
Run Code Online (Sandbox Code Playgroud)