【问题标题】:Select deployment target for Carthage dependency选择 Carthage 依赖项的部署目标
【发布时间】:2017-04-18 13:44:26
【问题描述】:

我的 iOS 应用通过 Carthage 使用某些框架(AudioKit、PromiseKit、Dollar 等),我现在正尝试将应用的部署目标从我们之前使用的 10.x 更改为 9.3。由于框架是由 Carthage 构建的,而不是从 Xcode 内部构建的,因此新的部署目标不会渗透到框架中,至少在没有一些特殊操作的情况下不会,而且我在几个框架中都收到了这个错误:

Module file's minimum deployment target is ios10.1 v10.1:

我需要手动进入 Carthage 项目并进行更改,还是有更好的方法?我注意到一些框架的项目甚至没有 iOS 的方案,所以我想即使是那些有它们的项目,它们也可能会被忽略。

【问题讨论】:

    标签: ios xcode carthage


    【解决方案1】:

    您可能在更新 Xcode 后创建了一个目标,这使得 10.1 成为该目标的构建设置中的 iOS 部署目标。

    尝试以下步骤:

    1. 将 iOS 部署目标设置为 9.0(与项目的其余部分相同)
    2. 进行清理(Command+Shift+k)并构建

    如果 clean+build 无法修复它,从方案菜单切换您正在部署的设备/模拟器并再次构建应该会有所帮助。

    【讨论】:

    • 感谢您的回复,我想我已经尝试过了,无论如何很难看出它是如何工作的,因为依赖项已经由 Carthage 预先构建,但我会再试一次。
    • 不,它不起作用,因为 Carthage 已经构建了框架。
    【解决方案2】:

    似乎正确的答案是 Carthage 使用项目的部署目标进行构建。至少如果可能的话。因此,在 XCode 中更改部署目标后,只需使用 Carthage 进行重建即可。

    https://github.com/Carthage/Carthage/issues/1629

    它似乎对我不起作用的原因似乎是 Dollar 框架为 Carthage 准备的不正确。我之前注意到构建框架的 plist 出于某种原因缺少捆绑版本值(导致无法提交),所以它可能只是草率地放在一起。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-09-13
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-27
      • 1970-01-01
      • 2016-08-03
      相关资源
      最近更新 更多