【问题标题】:Consequences of "Embedded dylibs/frameworks only run on iOS 8 or later" warning“Embedded dylibs/frameworks only run on iOS 8 or later”警告的后果
【发布时间】:2015-01-18 12:44:09
【问题描述】:

在 Xcode 6.x 中,我们可以使用 CocoaTouch Framework 模板来构建框架库,Xcode 会在我们构建时为我们创建 .framework,这很棒。在我们的框架中,我们希望支持 iOS 7.1 及更高版本,因此对于 Deployment Target(在我们的框架中),我们指定了 7.1。现在,当我们构建时,我们会看到一条警告:“Embedded dylibs/frameworks only run on iOS 8 or later”。从那以后,我已经阅读了许多关于该主题的博客文章,就在 iOS 7.1 上运行它而言,可以忽略此警告,因为它会运行良好(仍需要测试以确保)。让我担心的是,我在 Stack Overflow 上读到一篇帖子,上面说应用程序可能会在 App Store 中被 Apple 拒绝(请参阅:Xcode 6 and Embedded Frameworks only supported in iOS8

仅当应用在 Xcode 中的 General > Embedded Libraries 中链接到它时才适用?

我们希望客户链接到我们的框架的方式是:

  1. 通过 CocoaPods
  2. 通过在构建阶段引用 .framework > 将二进制文件与库链接

我需要了解 App Store 在什么情况下会拒绝使用我们的 CocoaTouch 框架并支持 7.x iOS 的应用。

【问题讨论】:

标签: ios objective-c frameworks


【解决方案1】:

如果您将框架类型更改为静态,该应用不会被拒绝。看我的回答here

【讨论】:

    【解决方案2】:

    我们尝试在以下配置上运行最新代码:

    iOS 8+ — iPhone 5s iOS 7.1.2 — iPhone 4 iOS 6.1.3 — iPad 4

    该应用程序在所有三个设备上都运行良好,但在编译时 Xcode 中出现警告。 “嵌入式 dylibs/frameworks 只能在 iOS 8 或更高版本上运行”

    我还尝试存档应用程序以将其提交到应用程序商店,它运行良好。

    另外,找到了一个链接,苹果开发人员在该链接中指出这是一个错误: https://devforums.apple.com/message/999579#999579

    【讨论】:

      【解决方案3】:

      我相信,只要应用正确处理框架,就不会有任何问题。与 cocoapods 混合可能会很棘手,老实说,我不知道解决它的最佳方法。

      但据我了解,如果应用支持 iOS 7.X -> 8.X 并使用嵌入式可可触控框架,只要有兼容性检查以确保应用不会在 7.X 中崩溃,应该没有任何理由让应用被拒绝。

      【讨论】:

      • 也就是说嵌入式框架的目的是在应用程序和扩展程序之间共享代码。我是否需要从框架中提取代码并将其单独添加到项目中以支持 iOS 7?如果是这样,那将破坏嵌入式框架的意义。
      • 不幸的是,我相信是这样的。纯粹是因为 iOS7 不知道它们的存在。可能值得进行一些调查。它可能适用于框架捆绑在应用程序中。 iOS 将其视为已捆绑的任何其他框架。但我认为框架的签名会有问题。
      猜你喜欢
      • 2022-12-02
      • 2017-03-31
      • 1970-01-01
      • 2015-12-17
      • 1970-01-01
      • 2014-12-28
      • 1970-01-01
      • 1970-01-01
      • 2023-04-01
      相关资源
      最近更新 更多