Xcode 7 Warning! was built for newer iOS version (5.1.1) than being linked (5.1)

萝らか妹 提交于 2019-12-20 09:34:44

问题


I upgraded Xcode 6 project to Xcode 7 and started seeing the warning was built for newer iOS version (5.1.1) than being linked (5.1).

How to fix this warning?


回答1:


In my case, this warning was produced because the iOS-Deployment-Target of one of my XCode subprojects was higher (7.1) than in my baseproject (7.0). If you use cococapods, this misconfiguration can happen when you specify a wrong iOS platform version in your Podfile. In my example, I specified in my Podfile

platform :ios, '7.1' 

whereas I set the Deployment-Target in my XCode-Project to iOS 7.0. Setting the DeploymentTarget of the Subproject to the same iOS Version as the BaseProject fixes this warning.




回答2:


Update: seems to be resolved with Xcode 7.3 (7D175). I've removed the -w flag, the warning no longer appears.

This appears to be a known bug in Xcode 7.0 and 7.1B1 (bug #21813082).

As a temporary workaround, to suppress extensive warnings, the -w flag can be added to Build Settings -> Other Linker Flags:

  1. Select your Project
  2. Select your Target
  3. Select "Build Settings" tab
  4. Scroll down to "Linking"
  5. Edit "Other Linker Flags" and add "-w"

I've only added this to the Debug build settings and inserted the following to the AppDelegate, just as reminder:

#ifdef DEBUG
#warning Linker warnings suppressed (-w in build settings)
#endif

This at least helps to quickly spot the real warnings instead of having the build results flooded with the same warning for every source (in my case 150+ warnings appeared).




回答3:


In my case, I upgraded the project to iOS 6, but the problem didn't go away.

Then I realised the target was overriding it as iOS 5.1.1. I cleared the target settings and the warnings went away.

XCode Version 7.0 (7A220).




回答4:


In my case, I had my project set to 8.4 but all the rest of the subprojects/targets are still on 9.0. Appears like it is caused by deployment target inconsistencies.

For those who are using Cocoapods:

  1. Navigate through your Pod projects and targets.
  2. Change all the deployment targets to your desired one.

Make sure all of them are similar.




回答5:


try add "-w" on "Linking->Other Linker Flags".

This happening in my case when mySDK built with base SDK greater than development target myProject.




回答6:


In my case the deployment target in the project section (7.0) was different to the target deployment targets (8.0). So check your deployment targets for your project and every single target in your project to be the same.




回答7:


First change iOS Deployment Target under Project then change Deployment Target under Targets. Delete file at /Users/yourUser/Library/Developer/Xcode/DerivedData (rm -rf yourProject). Pod install again then say bye to warning.




回答8:


In my case I built the libraries with latest iOS but the app's deployment target is lower than that. So I think there is nothing I can do except adding -w to other linker flag




回答9:


Just in case anyone suffers the same bewilderment as myself: I discovered that I had an Xcode beta on an external hard drive and the system was selecting the tools on that drive instead of the internal drive. (Presumably because they were the newer beta tools?)... Ejecting the drive solved my issue!




回答10:


I my case I changed the Deployment Target in the targets without changing the same in the project.

To solve the issue, I changed the Deployment Target on both the project and the Targets then I make pod update.



来源:https://stackoverflow.com/questions/32270491/xcode-7-warning-was-built-for-newer-ios-version-5-1-1-than-being-linked-5-1

标签
易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!