Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

New Codea Xcode Projects not compatible with iOS 6

edited April 2014 in Bugs Posts: 50

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

Comments

  • Posts: 2,042

    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.

  • edited April 2014 Posts: 50

    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!

  • edited April 2014 Posts: 2,042

    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.

  • Posts: 88

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

  • edited April 2014 Posts: 50

    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.

  • edited April 2014 Posts: 50

    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.

  • Posts: 1,976

    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.

  • Posts: 1,976

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

  • Posts: 2,042

    @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.

  • Posts: 2,042

    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.

  • Posts: 425

    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.

  • SimeonSimeon Admin Mod
    edited April 2014 Posts: 5,054

    @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.

  • Posts: 1,976

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

  • edited April 2014 Posts: 50

    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.

  • SimeonSimeon Admin Mod
    edited April 2014 Posts: 5,054

    @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.

  • Posts: 1,976

    @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.

  • Posts: 2,820

    @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!

  • edited April 2014 Posts: 50

    @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

  • SimeonSimeon Admin Mod
    edited April 2014 Posts: 5,054

    @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)

  • edited April 2014 Posts: 50

    @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.

Sign In or Register to comment.