New Codea Xcode Projects not compatible with iOS 6

@MrScience101 you must build with the iOS 7 SDK, but you can still configure a deployment target of iOS 5 or iOS 6 — you must not touch any iOS 7 APIs (or your app will crash on older versions).

The Codea 2.0 runtime requires iOS 7, so you can’t deploy to an earlier OS version. However as I pointed out to @SpellCollapse, the 1.5.5 and intermediate 1.6 runtimes can be deployed to older versions of iOS.

@Simeon I will try the 1.55 and 1.6 runtimes in the next couple of days. Thanks.

@SpellCollapse Why do you not take kindly to my comments, and no one else’s?

iOS 6 is still supported by the App Store, just not developers. Apple isn’t crazy enough to disable all usage of your iPad 1 until you get a newer version, you can still download iOS 6 apps. What we’re saying is that Apple no longer supports putting new apps on the App Store that support iOS 6.

@SkyTheCoder - I think we’re going in circles now, and everyone is confused. Let me just say it one last time (it might be what you’re trying to say):

All Apple changed in February was that they required every new app/update on the App Store to be compiled with Xcode 5 and fully support iOS 7. However, you can still support older iOS versions all the way down to iOS 2.0.

To expand on that (you don’t need to read this), Apple actually lets you download older versions of an app on older iOS versions. I.E., StackIt v1.1 dropped support for iOS 6. Let’s say that an iOS 6 user comes along and wants to purchase my app (yay!). They can actually download the newest version of StackIt that supports iOS 6 (which would be v1.0.1). (I don’t know enough about this, so I may be a bit off in my facts, but it is possible.)

Thanks!

@Simeon The Codea 1.6 runtime compiles in debug mode, but not in release mode. I get these errors:

missing required architecture x86_64 in file libcodea.a

missing required architecture x86_64 in file libtools.a

Undefined symbols for architecture x86_64:

OBJC_CLASS$_CodeaViewController”, referenced from objc-class-ref in AppDelegate.o

@SpellCollapse The 1.6 libraries do not support 64-bit ARM. You can disable targeting 64-bit in your Xcode target build settings (I think the macro is something like ARCH_STANDARD_32_BIT)

@Simeon I was able to build and run with the Codea 1.6 runtime by setting the Build Active Architecture Only option to Yes when building for release mode. This option can be found in Xcode under the Build Settings tab.

Now I need to figure out why there is a black frame between the Launch image and the apps first frame when exporting the project to Xcode.

@Simeon - Setting the “Build Active Architecture Only” option to “yes” may have fixed my build, but Apple rejected my new binary because of that setting. If I set it to “no”, then I get this build error:

Undefined symbols for architecture arm64:

OBJC_CLASS$_CodeaViewController”, referenced from: objc-class-ref in AppDelegate.o

I am using the Codea 1.6 runtime to maintain support for iOS5 & 6.

@Simeon - I followed your original advice and set the ARCH_STANDARD_32_BIT flag. It builds and runs, and I have submitted it to the App Store, but it was also rejected.

@Simeon - You can ignore my last two messages. The app was rejected for another reason based on Improper Advertising Identifier [IDFA] Usage. The app has now been submitted without rejection.