【问题标题】:iOS pod install gcm and pnchartswiftiOS pod 安装 gcm 和 pchartswift
【发布时间】:2015-07-05 04:36:12
【问题描述】:

我在我的项目中使用 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

【问题讨论】:

    标签: ios swift cocoapods google-cloud-messaging


    【解决方案1】:

    不幸的是,不能混合使用静态库和动态库,这是全有或全无。

    相反,我建议您使用原始 Obj-C 版本PNChart,这将使用 GCM 解决您的问题。

    这意味着您的 podfile 将类似于以下内容:

    pod "PNChart"
    pod "Google/CloudMessaging"
    

    导入PNChart 时唯一需要做的不同的事情是添加一个导入这些库的桥接头。这将使它们在代码中的任何位置都可用。它看起来像下面这样:

    #import <PNChart.h>
    #import <Google/CloudMessaging.h>
    

    更新 1:

    回答了OP关于如何识别静态/动态的问题。


    根据经验:

    • 用 Swift 编写的所有依赖项都是动态框架。
    • 用 Obj-C 编写的所有依赖项都是静态库。

    Apple 不允许您构建包含 Swift 的静态库,因此第一个陈述永远是正确的。第二个说法有点复杂,因为苹果之前在 Obj-C 中构建了很多动态的内部框架。直到 iOS 8(与 Swift 发布同时),第三方开发者才可以使用这种可能性,所以不要指望任何用 Obj-C 编写的新框架是动态的,因为它们还不如用 Swift 编写。

    现在我们只是在两种语言之间切换时处于“边缘”阶段。在 1-2 年内,希望所有第三方依赖项中的大多数都将使用 Swift 编写,我们不必担心静态/动态之类的事情。

    如果你有兴趣,那么你可以在the official CocoaPods blog post for release 0.36阅读更多。

    【讨论】:

    • 我可以想象,如果您还使用STZPopupView,这会给您带来问题。我建议查看UIPresentationController,这是 iOS 8 中的一个新类,它有助于创建弹出框。这里有一个很好的教程:dativestudios.com/blog/2014/06/29/presentation-controllers
    • gcm 是动态库吗?我如何识别动态或静态库?
    猜你喜欢
    • 2015-09-14
    • 2019-05-24
    • 2022-12-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-07-28
    • 1970-01-01
    • 2020-10-11
    相关资源
    最近更新 更多