New Codea Xcode Projects not compatible with iOS 6

When I export an app to an Xcode project using the new Codea, it fails when running on devices using iOS 6. I get two errors when running the app. This makes it impossible to update apps on the AppStore.

Symbol not found: OBJC_CLASS$_UIInterpolatingMotionEffect

Symbol not found: _NSURLSessionTransferSizeUnknown

  1. It has been mentioned on the forums many times, the new Codea runtime does not support iOS 6 or below. iOS 7 only

  2. It is possible to update an existing app and change it to be iOS 7 only.

I can understand that Codea itself only works on iOS 7, but to break generated apps for iOS 6 seems unreasonable. That means that anyone who submitted an app that was made with Codea cannot update that app for iOS 6 users. It should be fixed and it should be easy to fix. Even worse, iOS 6 users that update will get a broken app!

iOS 6 users will not get a broken app if you don’t give them the update which doesn’t support iOS 6 (I’m not sure why you would, it would simply cause anger with customers). Simply change your app’s target to iOS 7 and old versions will not be able to update.

Apps in Codea and exported apps both run off the Codea Runtime. So I’m not sure why you would expect that an exported app can run in iOS 6 when Codea cannot.

It would be nice to be able to select an older runtime in xcode :slight_smile:

12% of my users have OS 6. It is unusual to expect that many users to be left without an update, and to ignore that percentage of future users. Codea may be comfortable with that, but don’t expect people who made apps with Codea to feel that this is acceptable. I know my user that can’t upgrade to OS 7 or won’t will not be happy.

Could you point me to any documentation anywhere that explains that Codea 2.0 will not make apps that work on OS 6 anymore. OS 5 is out too, and that used to work. Maybe that should be made clear before people start providing updates that have not been restricted to OS 7, especially since an exported Codea project is automatically set to support OS 6, when it actually doesn’t.

Apps put on the App Store that don’t target iOS 7 will be automatically rejected.

The iPad 1 is legacy hardware, it is obsolete and no longer supported. There’s really no reason to try and support it. Apple doesn’t allow you to, and almost everyone has gotten a newer iPad.

My apps target OS 7, but I also want to target OS 6 too. An exported Codea project is set to support OS 6 and 7, but fails when running on OS 6. There is clearly something wrong here.

If it fails to run on iOS 6, then how is it set to support iOS 6?

@SkyTheCoder, @SpellCollapse, TLL obviously made a small mistake in the export template. An app will be exported targeting iOS 6 and 7, but crash on iOS 6

Not such a small mistake. I’ve already released an app that seems to support OS 6, but I was told by people who downloaded it that it crashes. Could you please point me to the documentation that states that running exported Codea apps on iOS 6 devices is not supported. Such an extreme limitation combined with the Xcode project claiming support, seems like OS 6 is supported, just broken. So please point out the doc. Maybe SkyTheCoder could stay out of it.

I’m not sure it is in any of the documentation (though you are right, it should be). However, it has been confirmed a few times already in other posts. I’ll see if I can find you one where Simeon gives an explanation.

Thanks, releasing my app claiming iOS 6 support was far from ideal. I am working on my own workaround, which may in the end mean dumping Codea because of this.

All new apps submitted must target IOS7 but I’m not sure if this affects updates

Yes this affects updates too. A more accurate statement would be that new apps can only target iOS7, not iOS6. Since this is completely unclear, I assume that people will be submitting updates that will break the app for their iOS 6 users.

@SpellCollapse you can still link with the old (1.5.5) runtime libraries and target iOS 6 — you’ll just have to avoid the new Codea 2.0 APIs (music, pasteboard, sound, etc).

In fact, if you have an existing Xcode project exported from Codea 1.5.5 it should still be capable of building apps that can support iOS 6.

The 1.5.5 runtime libraries can be found here:

We have a special version of the libraries (version 1.6, never released). These include much of the Codea 2.0 API (music, sound effects) but work on iOS 6.

@SpellCollapse, I fail to see how you can get apps to the App Store that support ios 6.

Use Xcode 5 with iOS 7 SDK to compile, validate, and submit release versions of your iOS 7 apps to iTunes Connect. Starting February 1, new apps and app updates submitted to the App Store must be built with Xcode 5 and iOS 7 SDK. For details on how to submit your app using Xcode, review the App Distribution Guide and iTunes Connect Developer Guide.

That is from Apples web page. Ios 6 is no longer supported, that is Apples decision. There is no way I know of to submit apps, or app updates and have them run on ios 6. If you have an ios 6 device and try to download from the App Store it tells you that you cannot download it, but instead can download the older version. There is no way to update that older version.

@MrScience101 - good luck with that, SpellCollapse didn’t take it kindly when I pointed that out.

I think you are incorrect about iOS 6. It is still supported by the App Store. I have an iOS 6 device now, and I can download anything I want from the App Store that says it supports iOS 6. The new Xcode also builds for iOS 6, and I released an iOS 6/7 app last week. SkyTheCoder is correct though, as I don’t take kindly to his comments.