I am currently developing an application for iOS and while it works fine on the simulator, I would like to run it on an actual device.
Unfortunately, I only have an iPad 1.
I’m using OS X Mavericks and Xcode 5.1 and I set the iOS Deployment Target for the project to iOS 5.1.
I understand that I won’t be able to run it on the iOS 5.1 Simulator with Mavericks, but I was wondering if I would still be able to run it on an iPad 1 ?
I can’t find that information anywhere and I just want to be sure it will work before paying the 99$ fee to deploy on the real hardware.
You can update a first generation iPad up to iOS 5.1.1, which will work for testing iOS 5.1 apps.
If you intend to release your app to Apple's App Store, keep in mind that Apple has released a statement saying that all apps "must be optimized for iOS 7", so you may still need a newer device for testing. (source)
Related
I recently built an (universal) app for iOS in XCode 11.7 with deployment target set to iOS 10.0 (as per the Build Settings tab in XCode). Then I deployed that app to Testflight and was able to download and use it on a newer iPhone with the latest iOS.
However, when I tried to testflight it on my other iDevice (and old iPad 4th Gen that only runs iOS 10.3), Testflight told me that the app is only compatible with iOS 12.1 or higher. However, I've recently tested another app on Testflight built with (as far as I can tell) the exact same build settings using same MacBook and the same XCode, and that app installed on my iPad via Testflight without problems.
It sounds like the problem in App not compatible on iPhone 4s and 5 in Testflight and related posts, but my settings for "Build Active Architecture Only" are already set to "No" for Release.
I've already checked the Apple Compatiblity Matrix https://developer.apple.com/library/archive/documentation/DeviceInformation/Reference/iOSDeviceCompatibility/DeviceCompatibilityMatrix/DeviceCompatibilityMatrix.html but I am not using any special features.
There are only few things left I can think of
I implicitly (and without meaning to) use some feature of the newer iPhones that are not included in iOS 12.1 or below
I checked in the appstore that the app contains "medical information" (it's just anatomy drawings for students), so maybe this triggered an implicit requirement of Apple Health Kit (which does not run on iPad 4t Gen). This seems unlikely, however, as I only stated this in the App Store listing, not in XCode.
Somewhere in the settings, there is still one remaining switch left to "only support iOS 12.1 or higher" and I just have not found it, If so, please point out where that might be
The app that successfully installed on Testflight is an update for an older app that was published in late 2019, so maybe Apple forces new Apps to require iOS 12.1 or higher (since all apps have to be built against SDK 12.1 now) regardless of built settings, but updates for already existing apps are still allowed to run on lower iOS versions. Is this the case?
Or am I missing something entirely different?
I am trying to create a simple webview. The person wants it to run on devices starting with iOS 6. I've set iOS Deployment Target at 6.1 and my base SDK is 9.3. I have it code-signed, provisions, etc.
I used a program called Deploymate to check if any conflicts would exist across the iOS versions. It passed.
I uploaded the IPA to Diawi. However, it crashes on my device (iOS 9) and says it "Could not be installed at this time". The simulator had no problems.
Is there anyway to diagnose this problem or have I skipped a step? I've seen other questions, but they pertain to iOS 7.
From what I can find out, the IOS 5.1 simulator isn't available on Xcode 5/Mavericks. Am I wrong about that?
The issue is that I'm developing an iPad application, and I want it to run on an iPad 1. I'd love to target IOS 7 and be done with it, but unfortunately the iPad 1 doesn't support anything past IOS 5.1. Is there some way to target IOS 5.1 yet be able to debug/test on Xcode 5/Mavericks?
Surely most apps still support the iPad 1 - there are still a lot of iPad 1's out there. But since the simulator isn't available, it's like Apple isn't letting me upgrade to the latest Xcode and OSX. What do others do? I'm hoping there's some way to do this that is eluding me!
You are correct, the IOS 5.1 simulator isn't available on Xcode 5/Mavericks. However, you can still connect Xcode to a real iPad 1 and develop that way. I bought a used iPad 1 for about $100 specifically for this purpose and it's working fine.
This may seem an odd question but bear with me. I am all excited to try out iOS 7 beta, however I am developing an app that will be complete before iOS 7 comes out to the public.
So can I install iOS 7 on my device, and then develop and publish my app for iOS 6? Or would I need to downgrade to iOS 6 to develop my app and release it in the next few weeks?
I should add I want to do this because I only have one device.
You cannot release an app that has been built, compiled, or created with the pre-release SDKs and Tools. That means you can't release an app built with iOS 7 SDK features in Xcode 5 until Apple gives the green light for submission. (EDIT: iOS 7 is now public, but this will apply to any future betas - including iOS 7.1 and onward).
On the other hand, testing your app on a beta device is OK. It's not a good idea to test your iOS 6 app on iOS 7, but it will work. You can install iOS 7 beta on your device, but first think about your users. You'll want to test your app in the environment that your users will be using it in.
If you do upgrade to iOS 7 on your one and only device, you'll be stuck with the iOS Simulator - which is very very far from recommended. You can't downgrade or restore to an earlier iOS version from iOS 7.
If you are using the beta version of XCode, be sure to set the target to iOS 6, not iOS 7. When you target a version of iOS, that's the minimum version. You can run an app targeted for iOS 6 on iOS 7.
When you target iOS 6, the compiler will prevent you from including features that require iOS 7.
Still, for testing purposes, you'll want to test on a device with the latest released version. iOS 7 may have bug fixes that iOS 6 does not, so your app may run fine on iOS 7 but have bugs when run on iOS 6. Also, there may be performance differences.
You should test on both the simulator and an actual device, however if you want to risk it, the worst that will happen is your app may be rejected.
Theroretically you should not be able to run an app from Xcode 4 on an iOS 7 device. I was able to do this however, but I'm not sure why. Try deploying your app with Xcode 5 and then redeploy it with Xcode 4. In my case Xcode 4 would deploy to an iOS 7 device if the app is already installed (including all profiles).
I still have an iPad 1. I use the latest version of XCode for app development which will only debug apps on devices that run iOS 6.
Unfortunately, iTunes will not allow you to upgrade an iPad 1 past iOS 5. Can XCode be configured to debug apps on iOS versions older than version 6?
Another approach would be to upgrade the device to iOS 6 via jailbreaking. I have read that jailbreaking an iPad 1 will give you a path to upgrade it to iOS 6, but I haven't found anything specific to development.
EDIT
It turns out that this problem only occurs when I create a new app using XCode. However if I open sample code from some existing apps (for example SpeakHere), my iPad 1 suddenly appears on the XCode "run list" and I can test on the iPad 1! I suspect that there is something about these apps that is "old" that causes them to work. Can I simulate that somehow on new apps I build using XCode?
No, you cannot use a first generation iPad for iOS 6 specific development.
You can, on the other hand, use the latest Xcode and iOS 6 SDK, and still use your iPad 1 for debugging purposes. You naturally can't use iOS 6 features, because the iPad is maxed at iOS 5.
To enable this, you can download 'Device Debugging Support' packages, to allow you to do this. Go to Xcode->Preferences->Downloads->Components, and see if it's available.
It sounds like you're just accepting the default deployment target of 6.0 for new projects. This means you won't be able to run the application on older versions of iOS, much less debug them. You need to set the deployment target for your project or target to 4.x.