I would like to make my app compatible with IOS 7.0 but in the preferences --> downloads section, the lowest available version is IOS 8.1 simulator. I'm currently using OSX Yoesmite 10.10.5 wih xcode 7.2.1 running version 9.2.
Does that mean there's no way to test for app compatibility for any versions lower than IOS 8.1?
Edit: I realize it's possible to install older versions of xcode. I want to know if it's possible to download only the simulators on my current xcode, not have an entirely new and different xcode.
The answer should be NO.
It's not just about the simulator, but the SDK you use to compile the app to run within the simulator. When you use newer SDK to compile, the binary could contain unknown load commands to the binary header, or unknown APIs calls to an older system. That's the main reason you can't run an app built with newer SDK/system on an older OS. Even if it worked, it might still crashed at some point when the needed symbols can't be resolved.
So in order to run/build app for an older version of simulator, you need:
An older version of Xcode (which has older version of SDK)
Or, find out a way to setup your current version of Xcode to compile
with the older SDK extracted from an older version of Xcode. (This
may and may not work due to the change made to Xcode.)
For the second option, you can google it for how-to.
Related
The idea of using Delphi to develop a mobile app is appealing to us because we can do Android, iOS and Windows without duplicating work. Delphi is also a language that we are familiar with. However after trying to get a simple test app running on an iPad, I do not think it is actually realistic. Here are my observations:
The iPad is running iOS 12.0.1 (and iOS 12.1 is already downloaded and ready to install).
Xcode, which runs on the mac, is used by Delphi for building apps and deploying them to the test target. Each Xcode version supports exactly one iOS SDK version and is the Xcode version plus 2. My old Mac is currently running xcode 8.2.1 so that corresponds to iOS SDK 10.2, which should run on iOS 10.2 and higher.
Delphi Tokyo supports iOS SDK versions from 8.0 up to 11.3 (so Xcode 6 to 9). It will not compile apps using SDK 12. The Xcode version running on the mac fits squarely within this range of versions.
It appears that Xcode is not able to properly support iOS versions that are newer than itself. When trying to run the application it errors out with "unable to location DeviceSupport directory for the connected device. Please check Xcode installation path and run Xcode devices". Under "Devices" the following is displayed for the iPad: "This iPad mini2 is running iOS 12.0.1, which may not be supported by this version of Xcode".
So, it would appear that the latest Xcode version is required to support the iPad running iOS 12.x but that means that Delphi cannot compile for it because it only goes up to SDK 11.3 and not 12. I do not think it is possible or sensible to downgrade the iPad iOS. Also even if we get a Delphi version that works, the next iOS update will require a new Xcode and therefore a new Delphi version that isn't even available. When the new Delphi version is finally available it will already be obsolete since iOS will have already moved on.
Please correct me where I am wrong. Because this cannot surely be the state of things.
I am trying to understand how the compatibility does work and could not get the perfect answer out there. Many answers are confusing.
I want to understand if I develop an app targeting iOS 9, does it work on iOS 11.2 devices for example (forward compatibility)
and if I target iOS 11.2, is it going to be compatible with iOS 9 and 10 as an example (backward compatibility)
I found this answer where he is suggesting to download the image file for an older versions. When shall I do that? What is the case that requires downloading the images to my project?
This issue is giving me the following error:
My iPhone is running iOS11.3 and my Xcode Project (Objective-c) is targeting iOS 10 and I am developing using Xcode 9.2
Apple only supports 'forward compatibility'. You can specify your App's min OS support in its target. All OS version higher than the min target version will support your app. You can't make your app to support OS versions less than the target version.
This "Could not locate device support files" error occurs when your Xcode is not compatible with the OS version of the device. In such scenarios, you can download those image and make your Xcode compatible with the OS version.
"When to download the images??" - When you can't update your Xcode to its newest version( for eg: if you are using Sierra and no plans to update to High Sierra).
I created app using Lua language using Corona SDK and when I try to
create a build or Send it to App Store, it displays these errors below
UNSUPPORTED IOS SDK Mismatch
The version of iOS SDK (10.2) that's installed on this computer does
not match the target iOS version (10.1). You may encounter issues
building or incompatibilities at runtime.
Anyone can help me with this issue? Any help will be appreciated.
Thank you!
I had the same problem. You need to download the latest daily build from Corona Labs and then build using that version. Daily builds are found here:
https://developer.coronalabs.com/downloads/daily-builds
From Corona blog
Changes to Xcode Requirements
Starting with 2015.2616, Corona
Simulator will be more stringent about the version of Xcode you have
installed (older versions work like before, in a less stringent
manner). In particular, when you select a particular target iOS
version, you must have the corresponding version of Xcode installed.
For example, if you want to target iOS 8.3, you must install Xcode 6.3
which includes iOS 8.3 SDK.
Also, from this post you can read that for iOS 10 SDK you need install Xcode 8. So I guess for iOS 10.2 SDK you need Xcode 8.2 (I'm not sure which one exactly will fit). What is more you need most recent version of Corona:
stable build (requires Xcode 8.1 or later, the macOS Simulator requires macOS 10.10 or later, more information) or
daily builds.
Note: I'm using only Win7 for Corona SDK.
I have a developed application and the code is compiled using Xcode 4.6 and executes on iPhone with IOS version 6.1.3 . That's all OK.
Now I am requested to test it on the iOs 7.0 or later version . Then I upgrade all needed stuff , including xcode, mac OS version ,etc. (I have to upgrade them because the original version of xcode complains of the failure that it can not compile and debug on ios7.0)....
When I try to build the code using the latest combined versions and run on ios7.0, the application is dysfunctional and the problems are mainly related to GUI-related.
But the application with xcode 4.6 built can normally run on IOS 7.0.3 phone. So I think it is feasible for the legacy code/SDK to run on ios 7.0.3. Currently, I don't have plan to upgrade the code to optimize for ios7.
So My question is : How can I test/debug this application on iOS 7 or later ?
Thanks alot
Daniel
If i am not getting wrong understanding from your question...And what you want is this..
You don't want to build your application using iOS 7 base sdk (You were using iOS 6 base sdk on xcode 4.6).
But you want to use latest xcode with old SDK 6.1 etc and test apps on iOS 7 Devices/Simulators
Here is solution...
You just need to copy 6.1 SDK(or older) from your old xCode(4.6) to latest xcode(5.x) sdk folder and set base sdk to 6.1 SDK(or older one) in project setting.
This will let you run your app on devices with iOS 6.x or lower as they were running before also lets you test your app on iOS 7 devices without compiling with latest iOS 7 SDK.
To achieve this..
1. click on your xcode4.6 -> show package content , go to path
/Applications/Xcode_4.6.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer
This is where you will see older SDK you were using (6.1 etc). Now open same path for latest xcode 5.x and copy SDKs from old xCode path to new xCode path. OR Download it from Xcode preference -> Downloads.
2. Now go to project setting and set base sdk as iOS 6.x SDK
You can use Wireless AdHoc Distribution or simply build the IPA and install it through iTunes. Debugging it, however, is a bit more complicated. You will have to launch Instruments on its own and choose the already running process on the device.
I recently downloaded Xcode 4.1 for Lion with iOS SDK 4.3. Now, whenever I change my Deployment Target to anything older than 4.3, I get hundreds of errors when I try to build my project. This happens even if I'm trying to run it on the 4.3 iOS Simulator, so I don't even need to be actually running it on an older device, I just have to set the older Deployment Target.
Do I need to download a separate SDK in order to allow for older devices? If so, where could I find it?
Thanks for your help!
I tried copying the SDKs from Xcode 4, but it doesn't work.
Other answers suggest that it's not possible.
I'm now using a virtual machine with Snow Leopard to test on older devices. (Or real older devices, if you have one)