Missing SDK in target - iphoneos5.0 - ios

I'm using Xcode 4.4.1. I'm getting this warning:
Missing SDK in target MyApp iphoneos5.0
I want to target iOS 5.0 and up. Where should I look to fix this?
In Target, Build Settings, Base SDK is set to iphoneos5.0.
EDIT: Furthermore, if I set the base SDK to latest iOS (5.1), does that mean that users running 5.0 will not be able to install the app?

It means your build settings are incorrect. You set the string to "iphoneos5.0" which doesn't exist anymore. You will now be compiling against "iphoneos5.1". Instead you should simply choose "Latest iOS" (= "iphoneos") To have the compiler select automatically.
Users will still be able to run your app on any version above your app's target version (assuming you didn't use any libraries that don't run on those lower versions).

Related

unable to find sdk 'iphoneos11.2'

IDE: Xcode10
OS: 10.13.6
A compiler error
Showing Recent Messages
Build system information
error: unable to find sdk 'iphoneos11.2' (in target 'xxx')
The project built on Xcode 9.4 / OS 10.13.4. Only after updating did the project build start failing.
Click on your target
Click Build Settings
Under the Base SDK row, change the value to iOS (or whatever platform you are building for).
I had this problem and fixed it by going to Build Settings, Basic; the Base SDK was set to "11.4 (SDK not found)" ; I changed it to iOS and that fixed it.

Cordova iOS Build in Netbeans

I am building a cordova app using Netbeans 8.0. My problem is that although it builds on Xcode, I am getting the following error in Netbeans.
update-ios:
cordova prepare ios
build-ios-xcodebuild:
xcodebuild: error: SDK "iphoneos6.0" cannot be located.
/Users/abc123/nbproject/build.xml:178: exec returned: 64
BUILD FAILED (total time: 2 minutes 0 seconds)
Xcode is at version 5.1. I assume I need to add the SDK path to a file somewhere, but I don't know where that is nor where to put it.
I can still use Xcode if I have to but it is quite cumbersome when the Android version still uses Netbeans. The provisioning profile is set correctly.
In netbeans goto configure cordova. You can find a link by clicking on the build device icon. from the popup select mobile platform setup. put the correct path there.
I was in the same situation. Using Netbeans 8.0.2, Xcode 6.1.1 e IOS Simulator 8.1 (550.3)
The tip, in the commentaries, from tl8, is great. Go to the Project Files Tab (Cmd+2 or on the menu bar, Windows -> Files).
On the files:
YourProject/nbproject/ios.properties
YourProject/nbproject/ios_1.properties
Inside those files you can make the changes. The first concerns to the simulator version. The second is about the ios version on the device.

Xcode 5.1 additional SDKs does not work when building for an iOS device

I use a third party SDK and i set the path in "Additional SDKs", when i build for iOS Device the build failed because the SDK headers aren't found, it works fine when i build for the simulator.
Looking at the build log i see that when building for simulator -isystem is set with the path of the SDK include directory, but the option is not added when building for the device.
That used to work with Xcode 5.0 and Xcode 4.x any ideas of changes to "Additional SDKs" that could explain that?
Regards,
Jose

Symbol not found: _objc_retainAutoreleasedReturnValue

I was previously able to run my code on an iOS 4.3 device but now I'm getting this error at runtime:
Symbol not found: _objc_retainAutoreleasedReturnValue
The project is using a base sdk of 6.0 and deployment target of 4.0.
Maybe not a coincidence, but this is the first time I've tried to run on this device since upgrading to XCode 4.5.
I've looked in stackoverflow at previous questions containing _objc_retainAutoreleasedReturnValue but they seem to mention #autoreleasepool, which I'm not using explicitly anywhere.
Check that libraries you include are built with the same deployment target requirements as your main project.
The deployment target of your App target should match the deployment target of your project file.

Adding Older iOS SDKs to Xcode 4.1 in Lion

I just installed Lion and Xcode 4.1. How do I add older SDKs so I can build and run in 4.1 or 4.2 in iPhone/iPad Simulator? Xcode 4.1 only comes with the iOS 4.3 SDK.
Does Lion have some sort of minimum SDK for builds?
Thanks,
Actually it is possible to add older SDKs as long as you can still get your hands on an older version of Xcode with the older SDK. It's useful too sometimes: when you do this you get to find out about unsupported constants and methods you may be using during compile rather than at runtime. Here's how to do it.
Get hold of an older version of Xcode with the older SDK. The Apple iOS Dev Center currently lists the 4.3 SDK with the Xcode 3.2.6 download.
Mount the dmg and open up the Packages folder hidden within the dmg via Terminal:
open /Volumes/Xcode\ and\ iOS\ SDK/Packages/
Double click the pkg file for the SDK version you want. I was looking for iPhoneSDK4_3.pkg but, in addition to 4.3, found packages as old as iPhoneSDK3_0.pkg. So perhaps older SDKs may still be packaged with the App Store download if you know where to find it (I didn't).
Let it install in it's own folder of choice since you won't be able to force it to install in Applications/Xcode.app/Contents/Developer (which is where the Developer folder is now)
You'll find the package installed in the Platforms folder in the volume you chose. Move the relevant SDK over to the Developer folder within Xcode.app. You'll likely have to use sudo:
sudo mv /Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.3.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Restart Xcode and you should see the new (old) SDK listed in your options for Base SDK. Yay!
Update as of 12 Sep 2013
If the "older SDK" you're trying to add comes bundled in Xcode 4.3 or later, adding the SDK is as simple as downloading Xcode from dev center link that says "Looking for an older version of Xcode?" (currently points here), mounting the dmg, then copying the relevant files over.
In terminal, you'd do something like this (edit for the appropriate SDK version number):
cp -R /Volumes/Xcode/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
For SDKs from versions of Xcode prior to 4.3, the older steps are still relevant.
I found this happens to work for getting the Xcode 5 GM to compile builds that carry the old iOS 6 UI even when deployed on iOS 7 devices. Useful for fixing bugs pending a UI redesign. That said, there's got to be an easier way to get the iOS 6 UI on an iOS 7 device.
You can't. What you can do, however, is click on the top-level entry in the File Navigator. It'll take you to the application settings. Go to the tab called Build Settings, and change the iOS Deployment Target to whatever version of iOS you'd like to support from (the earliest version you support).
See "To Edit a Build Setting…": http://developer.apple.com/library/ios/documentation/ToolsLanguages/Conceptual/Xcode4UserGuide/Building/Building.html#//apple_ref/doc/uid/TP40010215-CH9-SW5
Open Xcode and open Preferences (Xcode -> Preferences menu). Click the Downloads icon and look in the Components tab. All versions from 3.0 to 5.1 should be available. Just click Install for the ones you want to use.
None of these answers worked for me for Mac OS 10.8 and XCode 4.5. But now that things are installed under the Applications folder, it's much easier to manage.
Option #1: Keeping an older copy of XCode is easy to do by renaming it before you install the new one. Then you can use Product->Preform Action->Run Without Building on the new version to test on newer devices or newer simulators.
Option #2: If you REALLY want to build with older SDKs in the newer XCode, then you can simply copy over an SDK using finder. You'll need to have an older version of XCode installed under Applications for this to work. In the following example, I just renamed XCode 4.4 to XCode_old before I installed XCode 4.5. Note: You can right click on the .app file and choose Show Contents to get to these files or just use the cp from a terminal window.
from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.1.sdk
to: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/
Then, iOS 5.1 will show up under Build Settings as a Bask SDK. You can do the same thing for simulators:
from: /Applications/Xcode_old.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator5.1.sdk
to: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/
You can't, but it will build fine for a device that is plugged in running an old version of iOS (what you should be conducting your proper testing on).
You have to run your application in the older version of Xcode that came coupled with the older iOS version. I have 3.2.5 installed under /Developer-3.2.5/. I have to say it's about 10 times faster than Xcode 4... You can download old versions here: http://iphonesdkdev.blogspot.com/2010/04/old-versions-of-iphone-sdk.html
I had a similar issue in Xcode 4.02 for Snow Leopard using SDK 4.3. I wanted to test on an iPhone 3G, but iOS4.2 is the latest (and correct version) for that device. In order to 'see' and run on that device in the Scheme, I had to change the Build Settings for iOS Deployment Target as described above. (btw you also have to have restrictions on the iPhone turned off to let Xcode install the app :) )
In addition to Steven's answer, you can find older versions of XCode - including the older SDKs:
Looking for an older version of Xcode?

Resources