我在我的项目中使用PNChartSwift和GCM。 我需要使用" use_frameworks!"对于PodFile中的PNChartSwift,所以对于GCM,我不能使用" use_frameworks!"在PodFile中
我将如何使用gcm?
记录错误" pod install"
Using PNChartSwift (0.0.2)
Using STZPopupView (1.0.1)
[!] The 'Pods' target has transitive dependencies that include static binaries: (/Users/Sina/Desktop/MyShatelIOS/MyShatel/Pods/GGLInstanceID/Libraries/libGGLInstanceIDLib.a, /Users/Sina/Desktop/MyShatelIOS/MyShatel/Pods/Google/Libraries/libGGLCloudMessaging.a, /Users/Sina/Desktop/MyShatelIOS/MyShatel/Pods/Google/Libraries/libGGLCore.a, /Users/Sina/Desktop/MyShatelIOS/MyShatel/Pods/GoogleCloudMessa
答案 0 :(得分:0)
不幸的是,无法混合使用静态库和动态库,它是全有或全无的。
相反,我建议您使用原始的Obj-C版本PNChart,这将使用GCM解决您的问题。
这意味着您的podfile看起来类似于以下内容:
pod "PNChart"
pod "Google/CloudMessaging"
导入PNChart
时,唯一需要做的就是添加导入这些库的briding header。这将使它们在代码中的任何位置都可用。它看起来像下面这样:
#import <PNChart.h>
#import <Google/CloudMessaging.h>
更新1:
回答OP关于如何识别静态/动态的问题。
根据经验:
Apple不允许您构建包含Swift的静态库,因此第一个语句将始终为true。第二个声明有点复杂,因为Apple之前在Obj-C中构建了许多动态内部框架。直到iOS 8(与Swift发布的同时),第三方开发人员才能使用这种可能性,所以不要指望用Obj-C编写的任何新框架都是动态的,因为它们也可以用Swift编写。 / p>
现在,当我们在两种语言之间切换时,我们只是处于“冷静”的阶段。在1 - 2年内,希望所有第三方依赖项的大部分都将用Swift编写,我们不必担心静态/动态等问题。
如果您有兴趣,可以在the official CocoaPods blog post for release 0.36上阅读更多相关内容。