XCode 7警告!是为较新的iOS版本(5.1.1)而不是链接(5.1)而构建的

las*_*mer 27 xcode xcode7

我将xcode 6项目升级到xcode 7并开始看到警告是针对较新的iOS版本(5.1.1)构建的,而不是链接(5.1).

如何修复此警告?

小智 20

在我的情况下,产生此警告是因为我的一个XCode子项目的iOS-Deployment-Target比我的基础项目(7.0)更高(7.1).如果您使用cococapods,当您在Podfile中指定错误的iOS平台版本时,可能会发生此错误配置.在我的例子中,我在我的Podfile中指定

platform :ios, '7.1' 
Run Code Online (Sandbox Code Playgroud)

而我将XCode-Project中的Deployment-Target设置为iOS 7.0.将子项目的DeploymentTarget设置为与BaseProject相同的iOS版本可修复此警告.


Fra*_*ans 11

更新:似乎用Xcode 7.3(7D175)解决了.我删除了-w标志,警告不再出现.

这似乎是Xcode 7.0和7.1B1中的已知错误(错误#21813082).

作为临时解决方法,要禁止广泛警告,可以将-w标志添加到Build Settings - > Other Linker Flags:

  1. 选择您的项目
  2. 选择你的目标
  3. 选择"构建设置"选项卡
  4. 向下滚动到"链接"
  5. 编辑"其他链接器标志"并添加"-w"

我只是将它添加到Debug构建设置中并将以下内容插入到AppDelegate中,就像提醒一样:

#ifdef DEBUG
#warning Linker warnings suppressed (-w in build settings)
#endif
Run Code Online (Sandbox Code Playgroud)

这至少有助于快速发现真实的警告,而不是让构建结果充满了每个来源的相同警告(在我的情况下出现了150多个警告).

  • 这不是一个解决方案,它只是没有显示警告:/我想最好不要实现这一点,以便您可以了解与链接器相关的其他可能的重要警告. (4认同)
  • @MihribanMinaz这就是我将其描述为解决方法的原因,并且只将其添加到调试版本中.对于发布版本,我不使用它并检查所有警告. (2认同)

Mat*_*att 7

在我的情况下,我将项目升级到iOS 6,但问题并没有消失.

然后我意识到目标是覆盖iOS 5.1.1.我清除了目标设置,警告消失了.

XCode 7.0版(7A220).

目标设置


Tef*_*ffi 5

就我而言,我将项目设置为 8.4,但所有其余子项目/目标仍为 9.0。看起来这是由于部署目标不一致引起的。

对于那些使用 Cocoapods 的人:

  1. 浏览您的 Pod 项目和目标。
  2. 将所有部署目标更改为您想要的目标。

确保它们全部相似。