xxx.png and xxx#2x.png trouble in retina graphics compatibility - ios

 Now, the project require supporting iPad1, iPad2, the new iPad, iPad with Retina display. So I need to add xxx.png and xxx#2x.png these kinds of pictures into the project bundle, and everything is normal when I run the app in iPad1 or iPad2. But the question is, all xxx#2x.png will not be used in the new iPad and iPad with Retina display when I choose iOS 5.0 as my project deployment target.
However, all xxx#2x.png will work very well if I choose iOS 5.1 or later version, and it doesn't matter with the project based SDK version, iOS 5.0, 5.1, 6.1, all work well.
 Have you ever met this problem?
 By the way, there is no problem in iPad Simulator, no matter which version of simulator.

  I've got it.
  As these three pictures showing below:
The key to the question is, that Xcode must compile project by based SDK 5.1 or later. But the based SDK is not the one in project settings. Like me, I put three versions of iOS SDK into the directory, so there are 3 devices in Run Scheme(as picture3 shows) and its order is the same as the based SDK. I need choose based SDK iOS 5.1 or later in Run Scheme, then it will work well.

Related

Xcode project for different iOS versions, swift

I am stuck! I sent my first app to the AppStore, which was approved but it was only for iPhone starting at iOS9.
I developed the app for iPad iOS7, iPad iOS8, iPhone iOS7, iPhone iOS8 and iPhone iOS9.
Some files stay the same between each versions, even if some features will be not available for iOS7. But the Library imported (Podfile) changed regarding to iOS versions.
But I have no idea of how I have to proceed to send it to the AppStore. I found nothing about creating a project for different iOS.. :(
Do I have to create a project with many targets corresponding to my versions? ( How can I set up the version for each target? How to manage the sharing of the files between each target?)
Or do I have to create many projects and send to the AppStore one by one?
Thank you a lot!!!
You specify the minimum iOS version you are supporting, in your case it's iOS 7. You do it in the left panel - click on your project, choose the target, go to General tab, and there you have Deployment Target. Edit it to the version you want (iOS 7)

Are we still able to target Apps for iPad 1?

I am stating a new Universal App, but want it to also work on an iPad 1 (people like myself still have one).
I am developing on Xcode 4.5.2 which defaults to IOS6, but when I set the Target to IOS5 and run, it crashes (black screen).
Any suggestions on how to target IOS5 while developing on a later IOS version ?
Your question really should be: "Can apps still support iOS 5". The iPad part is largely irrelevant. It's just that the iPad 1 can't be upgraded past iOS 5.
The short answer is "yes".
However, you must use Xcode 5 because your app must fully support iOS 7 and this requires Xcode 5.
With Xcode 5 you can set your project's "Deployment Target" all the way back to iOS 4.3. Though there is little point to that. If you want to support iOS 5 then set the deployment target to iOS 5.
Of course you need to avoid many things such as auto-layout and you must do proper checks to avoid using classes or methods that don't exist in those earlier versions.

Xcode 5 and apps deployed for previous versions of iOS

Maybe it´s a really stupid question, but how will my app look on previous versions of iOS if I make it with the new Xcode? It looks good in the simulator, but thats just showing ios7. I have made some design changes to fit ios7 and since the toolbars and navBars had to be moved it feels like it will look awful in ios6 for example.
Maybe will your app look good on older versions. But that depends on your code. You have to test it.
You can install your app on a older iOS version by setting the deployment target in the general tab.
After that, you should be able to run the app on older iOS simulator. This should look like this
If there is still only the iOS 7 simulator, than go ahead and hit more simulators to get more.
Having installed Xcode Version 5.0.1 (5A2053), the More Simulators option is no longer present. The Components tab on Xcode Preferences/Downloads only offers the options of 6.0 and 6.1. The release notes don't say that anything's been removed, but I can't find how to reinstate pre-6 simulators.
[Further note] In the iOS Simulator user guide, there's a section on iOS Version Limitations that seems to imply that even 6.0 might disappear without notice - "iOS Simulator does not have complete backward compatibility. In addition to supporting iOS 7.0, iOS Simulator supports iOS 6.1". Worrying if you still have apps that target 5.0 or 5.1.

Can't test on my IPad - iOS version reported as too old

My iPad2 device is running iOS 6.1. Since I upgraded XCode from 4.5->4.6 I get an error that my device is not running a new enough version of iOS!
I use no advanced features and in XCode my project iOS Deployment Target is 5.0.
Here are my settings:
Here are my provisioning stuff, it looks fine to me:
I am using Xcode 4.6 and see I have all deployable targets available. See screenshots. Though note the base SDK is set to iOS 6.1.
Apple always suggests building against the latest SDK and then setting the deployment target to whatever you want it to be. Also make sure any IB item has the correct deployment version set as well.
Just a helper for newer developers (like me):
I had problems testing my iPhone app on a new iPad and it was due to not running Organizer to initialising the new device (iPhone or iPad).
(You also have to select that the device is used for debugging)
It will update your new device with the necessary libraries and then deploying is simple.
You can run Organizer from the Xcode->Windows menu.

Use an iPad 1 for development and debugging in the latest Xcode (4.5), how?

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.

Resources