1

I want to keep Deployment Target to 4.2, to support iPhone 3G/S, as that device cannot upgrade it's iOS to any higher. I kept my XCode in version 4.2 and the Base SDK as iOS 5.0, as the newer versions do not support older iOS's.

My app gets rejected with the message:

iPhone 5 Optimization Requirement - Your binary is not optimized for iPhone 5. New iPhone apps and app updates submitted targeting iOS 6 and above must support the 4-inch display on iPhone 5 and must include a launch image with the -568h size modifier [...]

So I add the launch image Default-568h@2x.png. But then I get rejected with the following message instead:

Invalid Launch Image - Your app contains a launch image with a size modifier that is only supported for apps built with the iOS 6.0 SDK or later.

It seems like a catch 22. Do I have to change my SDK, and to what? Am I doing something wrong, or can I simply not deliver to iOS 4.2 any longer?

JOG
  • 5,590
  • 7
  • 34
  • 54
  • 1
    Take a look at [this question](http://stackoverflow.com/q/12463195/119114) and [this one, too](http://stackoverflow.com/q/12619124/119114). You can do it, with a little extra work. – Nate Sep 07 '13 at 23:36
  • Thanks, does this mean I need Xcode 4.5 to make it work? I already got the Deployment Target and the Architectures in order. And I don't get the warning errors mentioned. Or do I need to merge ipa's using lipo? I do not make use of the newer iOS 6.0 features. – JOG Sep 07 '13 at 23:49
  • The second rejection you gave (*"...only supported for apps built with iOS 6.0 or later..."*) seems to suggest that you **are** using parts of the iOS 6 SDK ... or that you need to. So, it sounds like you probably need the technique in the second link I gave. Use 4.2 to build for iOS 4.2.1, use 4.5+ to build for iOS 6, and then use `lipo` to combine the results into one "fat" product, supporting `armv6`, `armv7`, and `armv7s`. If you only want to use one Xcode version, then copy an old iOS SDK from Xcode 4.2, into the Xcode 4.5 folder, as shown in the first link I gave (then remove 4.2). – Nate Sep 08 '13 at 00:08
  • I am not activily using parts of the iOS 6 SDK. I never installed it. Is it a requirement to use it perhaps? If so, that's what the second message should say. Anyway I learned that it has not to do with the Deployment Target. I changed my it to 4.3, but I still get the same duo of rejection messages, without and with the Default-568h@2x.png file. – JOG Sep 08 '13 at 15:19
  • 1
    Let me see if I can say this another way ... Apple is now obviously **requiring** you to add the 586h image. However, you also are required to use the 6.0 SDK to build products with the 586h image. So, you are using, and you must use, the iOS 6 SDK, whether you like it or not. Therefore, if you still want to support iOS 4.2.1, you need to use an old SDK (either as part of an old Xcode, or as I show in my linked answer, just copy the old Xcode's SDK folder into the new Xcode, so you can build with more than 1 SDK by choosing the **Base SDK**). Does that make sense? 586h **is part of 6.0**. – Nate Sep 08 '13 at 21:39
  • Yes, I +1'ed your answer now. I have found it hard to find that requirement information in clear text. – JOG Sep 11 '13 at 15:11
  • Thanks, and I agree ... I didn't realize that it was now required, but from your rejection notice, it looks like it is. – Nate Sep 11 '13 at 20:37

0 Answers0