【问题标题】:Does CocoaPod use_frameworks! work with iOS7?CocoaPods 是否使用_frameworks!与 iOS 7 一起工作?
【发布时间】:2015-04-19 10:14:24
【问题描述】:

我想使用这样的 Podfile:

source 'https://github.com/CocoaPods/Specs.git'
use_frameworks!
platform :ios, '7.0'

这适用于 iOS 7 吗?我以为框架只在 iOS 8 中可用?

【问题讨论】:

    标签: ios objective-c swift cocoapods


    【解决方案1】:

    不,它没有。 use_frameworks! 通过在新的 dynamic frameworks 中构建您的代码来启用 Swift 支持。动态框架仅支持 iOS 8。不幸的是,由于您不能在静态库中使用 Swift(以前 CocoaPods 捆绑库的方式),因此这是捆绑 Swift 文件的唯一方法。

    【讨论】:

      【解决方案2】:

      你不能使用:

      use_frameworks!

      使用 iOS7。

      【讨论】:

      • 所以,明确一点,这意味着你不能使用 CocoaPods 在 Swift 中构建一个支持 iOS 7+ 的项目,对吧?
      【解决方案3】:

      更新:事实证明,您实际上可以在 iOS 7 上部署动态框架。不过,可能不是通过 Cocoapods。说明(谢谢,@user102008!):Deploying a Containing App to Older Versions of iOS。此更新并没有真正回答原始问题,但添加它是为了根据新信息澄清我的旧答案。


      一个注释,我相信它足够重要,可以作为答案。 iOS 7 实际上支持动态框架,您可以在 iOS 7 设备上使用动态框架运行代码。 但是 iOS 7 不支持公平竞争加密的第三方框架。因此,如果您尝试使用动态框架向 iTunesConnect 提交适用于 iOS7 的应用程序,它将被拒绝 (one prooflink)。

      我认为这很重要,因为它可能看起来有效,但实际上并没有。如果你忽略警告,你可能会太晚遇到问题,因为一半的项目已经在 Swift 中了。

      我们在开始开发自己的 pod 时遇到了这个问题。该项目在 iOS 7 上编译并运行良好。幸好我们进一步研究了这个问题。

      【讨论】:

      • "如果您尝试使用动态框架向 iTunesConnect 提交适用于 iOS7 的应用程序,它将被拒绝" 提交到针对 iOS 7 的应用商店的应用程序不能具有动态框架是不正确的。是的,如果应用程序在构建时链接到动态框架,它将被拒绝。但是Apple provides instructions 仅在 iOS 8+ 上运行时如何在构建时不链接它,但在运行时使用 dlopen 动态链接它。
      • @user102008 谢谢!我不知道。很高兴知道。我更新了答案以包含此信息。
      猜你喜欢
      • 2015-05-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-14
      • 2015-03-17
      相关资源
      最近更新 更多