Copy link to clipboard
Copied
The latest AIR 30 Beta on Adobe Labs mentions a big change for releasing iOS apps with AIR: You'll no longer be able to release iOS apps that contain both 32-bit and 64-bit versions as it's done by default for years, and instead will only be able to release 64-bit-only apps.
This is a huge change for anyone with customers who still use the iPad 2, iPad 3, iPad 4, iPad Mini, iPhone 5, or iPhone 5C, since all of those devices require a 32-bit version to be included in the "universal" single app alongside the 64-bit version that newer devices will use.
To clarify, I know that Apple does not accept apps that are 32-bit-only anymore. This is concerning apps that contain both 32-bit and 64-bit code in the same single app (allowing support for iOS 9 devices as well as iOS 10+ devices), which is what AIR has done in the past and which Apple currently accepts, and which AIR 30 is dropping support for.
My biggest concern is what will happen when we need to update any of our already-existing apps in the App Store with AIR 30. Does Apple allow you to update an app with a build that removes support for platforms? And if so, what happens to those customers who already purchased our apps and are using them on iOS 9 devices -- will it download the update and the game they paid for will suddenly break and stop working? Does Apple recognize they're using a 32-bit device and will prevent them from downloading the update if the update only includes a 64-bit binary?
Also I'm curious if this is something mandated by Apple -- where in the future apps will only be accepted if they're 64-bit only and won't be accepted if they include both as they do now -- or if this is Adobe's decision to drop platforms. I haven't seen anything in the Apple Developer news or updates about dropping support for 32-bit when it's bundled with 64-bit, and Xcode seems to still create both 32-bit and 64-bit versions by default as AIR 29 currently does.
Here's the info in the release notes here:
http://fpdownload.macromedia.com/pub/labs/flashruntimes/shared/air30_flashplayer30_releasenotes.pdf
Converting Universal iOS binaries to 64-bit and making IPA 64-bit
Prior to the AIR version 30, iOS applications were packaged as universal applications. To package a 64-bit iOS application MinimumOSVersion had to be set 11.0 in the application XML.
Starting AIR version 30, all iOS and tvOS applications would be made 64-bit only, irrespective of the MinimumOSVersion tag in the application XML. Packaging universal and 32-bit iOS applications would not be supported. ANEs could be packaged using universal as well as 64-bit only native frameworks, 32-bit native frameworks would not be supported for ANEs also.
Android packaging would remain unaffected.
Based on this thread and others, and after regrouping internally, our plan is to revert the 64-bit only restriction when publishing for iOS. Our next AIR beta (hopefully out in the next few days) will return functionality to create universal targets for iOS just like you could with AIR 29 (and it'll have the ad hoc fix that many of you are waiting on).
We do not plan on re-implementing this restriction in the near future, but when we do we'll make sure to provide plenty of advanced notice so no
...Copy link to clipboard
Copied
Hi guys,
2 of our 6 apps are now live on the appstore with Air 30 Beta May 17, despite the certificate warning. 4 more apps to go! Hope it helps
Kind regards
Copy link to clipboard
Copied
I think that the NSLocationWhenInUseUsageDescription and other entries are only required if your app is using location services. That setting is so that when the user is asked "can This App Name use your location?", you have to give a reason why you need to use their location. For apps that don't use location at all, the absence of those entries shouldn't matter.
Copy link to clipboard
Copied
Based on that other thread, developers were saying they were getting that error even when their apps do not use locations services at all. I was under the impression it was another service that Adobe was enabling by default even though all apps don't use it (like the issue with microphone access being enabled by Adobe by default years ago), though I haven't seen the error first-hand yet myself (haven't tried to update anything recently).
Copy link to clipboard
Copied
Correct, I got that error without using any location services.
Copy link to clipboard
Copied
Basically, all the issues that are fixed by AIR 30 are present in AIR 29, and there are a few of them related to IPA validity and the way it may be rejected by Apple or should not install properly. AIR 29 is unfortunately not stable enough to be considered as a mid-term solution for those who would not want to adopt AIR 30. Moreover, Apple's policies and requirements evolve all the time, and being stuck to AIR 29 is likely to be a problem if we can't take advantage of the fixes future versions of AIR might provide.
Copy link to clipboard
Copied
Encountered a new bug with air 29: Embedding otf font broken in air 29
My project won't compile with an embedded font.
Copy link to clipboard
Copied
ASWC wrote
Why a "serious issue"? We can publish our new updated 64bits only as new apps which is something many have had to do before for number of reasons anyway. It's annoying sure but really serious issue?
I am shocked that you think developers can abandon their existing user base so easily, especially if these are paying users who purchased our app literally yesterday, and can now no longer receive updates to the app they just paid for because we've moved to a new bundle ID. It's a serious issue on the business side of things when you're running a studio with paying customers, you can discount it as a technical issue if you like but that is besides the point. We've never had to release a completely different app to get around issues like this before, and we've never had to abandon paying customers in the process.
I can't speak for the ramifications for freelance developers who are focused on their client's needs for a specific project, but our studio releases a number of paid apps in the App Store, and this change will affect literally hundreds of thousands of our own paying customers.
Copy link to clipboard
Copied
Flipline wrote
ASWC wrote
Why a "serious issue"? We can publish our new updated 64bits only as new apps which is something many have had to do before for number of reasons anyway. It's annoying sure but really serious issue?
I am shocked that you think developers can abandon their existing user base so easily, especially if these are paying users who purchased our app literally yesterday, and can now no longer receive updates to the app they just paid for because we've moved to a new bundle ID. It's a serious issue on the business side of things when you're running a studio with paying customers, you can discount it as a technical issue if you like but that is besides the point. We've never had to release a completely different app to get around issues like this before, and we've never had to abandon paying customers in the process.
I can't speak for the ramifications for freelance developers who are focused on their client's needs for a specific project, but our studio releases a number of paid apps in the App Store, and this change will affect literally hundreds of thousands of our own paying customers.
We have about 150 Ios apps and we have been publishing on Ios since IPad1, what do you think we had to deal with when our IPad1 and later IPad2 customers couldn't update or use the apps they paid for anymore? Or update their OS? You guys make it sound like that situation has never been seen before but in truth this is really the regular part of publishing for Ios.
Copy link to clipboard
Copied
Flipline wrote
Nobody is arguing that we need to support 32-bit-only apps
I never implied anyone is asking for 32bits only, don't misrepresent what I said.
Flipline wrote
both Adobe and Apple made that impossible years ago.
Adobe has and never had any say on Apple policies, they are merely following and in some rare cases managed to be ahead of the curve concerning Apple policy changes. In the case of forcing 32/64bits builds only, Adobe literally had no other choice, if they did not follow Apple requirements AIR would have been dead on the spot so I'm not sure what you try to imply here about Adobe but it's ridiculous.
Copy link to clipboard
Copied
I apologize, some of that reply was also towards zwetan_uk's message, didn't mean to say you were claiming apps could or should be 32-bit-only.
Didn't mean to imply Adobe was involved in those decisions, I just meant that Adobe did change AIR's functionality to only build 32+64-bit hybrid apps (which Apple said was required, so that's why Adobe did it, as you mentioned). zwetan_uk keeps bringing up that developers shouldn't be building 32-bit-only apps anymore, and I was merely pointing out that would be impossible anyway (Apple said it wasn't allowed, and Adobe followed by making all builds 32+64-bit).
Copy link to clipboard
Copied
I fully understand that one day, we will live in a 64-bit only world. I'm not upset about this. Using AIR, I don't have to change a single line of code to work on both 32-bit and 64-bit platforms. It is handled by the compiler. Beautiful. My problem is with my the customers.
Adobe did not make an announcement that they would be ending 32-bit support by AIR 30, so go prepare yourself. It is not laid out in the AIR Roadmap. We had no warning that support for our customers was going to abruptly end.
They just sprung it on us.
We are talking about thousands of AIR developers with millions of customers who will suddenly be unable to update their apps. Sure we can re-release, but everyone here knows that users are not necessarily tech savvy. They wil think "I have an app on my iPad that is working, but I never get updates....hmmmm". It will never cross their mind to actually go and re-download an app that they already have installed. It wouldn't cross my mind. You know why? Because I have never had to until right now!
If Adobe wants to make a move this big, they should at least give us an email as Flash Builder users, or a note in their Roadmap, or a sticky in this forum that says "We will not support 32-bit after AIR 40. Be prepared." I could handle that. But they didn't. They snuck it in a beta build.
But even that being said, I see no reason to stop supporting hybrid apps until Apple says you have to, because they are still very useful devices. I am typing on an iPad 3 right now and I LOVE IT, and j can still get brand new shiny and supported apps for it on the App Store right now. Apple hasn't turned this into a paper weight yet.
Copy link to clipboard
Copied
Flipline wrote
This is wildly untrue, and as an AIR developer I'm shocked that you don't realize this is not true. I just updated a hybrid app weeks ago, and 32-bit devices were able to get the app update as well as 64-bit devices. It was a hybrid 32+64-bit app, and well, that's how they work by design.
Did you try to search for a iOS 32-bit app on the app store?
because those no longer appears in app store search results
so they are basically non-existent for most users and are only accessible via direct link
Apple consider 32-bit apps as "problematic and abandoned"
see App Store Improvements - Support - Apple Developer
see Apple’s App Store purge removed almost 50k iOS apps in October, a 238% increase
if you did not update a 32-bit app to support 64-bit then you fall under the app review guideline
and your app is considered outdated
You should review a couple of stuff
all 32-bit Apple devices are unsupported
all 32-bit iOS are obsolete
the current iOS versions is 11 and does support only 64-bit apps
earlier iOS versions like 9 and 10 does support both 32-bit and 64-bit apps
but are discontinued
do check out
iOS version history - Wikipedia
for iOS 10 you can read
However, iOS 10 has limited support on the iPhone 5, iPhone 5C, and iPad (4th generation), because those devices have 32-bit processors. The release of iOS 10.2.1 brought support for the iPad (5th generation), and iOS 10.3.2 brought support for the iPad Pro (10.5-inch) and the iPad Pro (12.9-inch, 2nd generation). iOS 10.3.3 is the final supported release for the iPhone 5, iPhone 5C, and iPad (4th generation) and last iOS version to run on 32-bit processors.
for iOS 11 you can read
Apple announced iOS 11 on June 5, 2017, at its annual Apple Worldwide Developers Conference (WWDC) event, and it was released to the public on September 19, 2017 alongside the iPhone 8 and 8 Plus. With this release, Apple dropped support for the 32-bit iPhone 5, iPhone 5C, and the iPad, making iOS a 64-bit only OS that only runs 64-bit apps. All other devices from the iPhone 5s onwards, iPod touch (6th generation) onwards, iPad Air onwards, and iPad mini 2 onwards are supported. However, iOS 11 has limited support on devices with an A7 processor: the iPhone 5S, iPad Mini 2, iPad Mini 3, and iPad Air.
just sayin' ... when you gonna push an update and those 32-bit devices don't get updated anymore
don't be surprised
Also, why Adobe is right to focus only on 64-bit apps for AIR 30 SDK.
Copy link to clipboard
Copied
zwetan_uk wrote
Sorry, my bad, I'm used to talk to professional software developers,
I guess, with that crowd, I need to explains things in a more obvious dumb-proofed way.
Well, you're not being so "professional" by showing this annoying condescendent attitude towards us as if you were the only one who knows what you're talking about. Who do you think you are to talk to us like that? That's more childish than professional if you ask me. Chill down with your attitude.
zwetan_uk wrote
Apple clearly announced their transition to support only 64-bit devices and apps
That slide you show here is just announcing they will only support 64-bit applications on Mac OS X, not iOS!
They've never stated that 64-bit apps for iOS won't be able to have a 32-bit version included in the same package as well (they never said they won't allow hybrid apps).
zwetan_uk wrote
What happen to 32-bit apps ?
they need to be updated to either hybrid (32-bit + 64-bit) apps
or 64-bit only apps, if they are not updated they will be removed from the app store
That's true, but no one said they wanted Adobe to support 32-bit only apps, but hybrid 64/32-bit apps. Adobe AIR 29 is already supporting hybrid apps since 2015. We're not even asking for new implementations. We just want them not to drop the hybrid compatibility so fast! Especially because the main reason cited by Adobe for that is MacOS X, not iOS.
As several people have already pointed out, even the latest version of Apple's official Xcode IDE compiles iOS apps as hybrid 64/32-bit apps by default!
If Apple were dropping hybrid iOS apps, why would they still support it in the latest Xcode, and BY DEFAULT at that!!
zwetan_uk escribió
What happen to 32-bit devices ?
they will not get any updates as they are not supported anymore by Apple
The fact that the devices themselves won't get any iOS operating system updates (because they can't get the 64-bit only iOS 11) doesn't mean they won't get app updates. They will be able to get app updates as long as Xcode supports iOS 10 and 32-bit apps, and it still does.
If Xcode supports it, Adobe AIR can support it too.
Remember that iOS 10 works in the iPhone 5, iPhone 5C, iPad 4 and iPad Mini. All those devices are 32-bit, and Apple will still support iOS 10 for some time, including in Xcode.
zwetan_uk escribió
As of today, what is the market share of those unsupported 32-bit devices?
about 6%
If you don't offer some sources for that figure, I'll have to call bs. You are constantly ignoring all previous posts in this thread which point out that it's more like 24% of devices which are still on iOS 10 or earlier (most of them probably because they can't upgrade because they are 32-bit only). And this figure is backed by Apple themselves!
See: App Store - Support - Apple Developer
Just add the "iOS 10" figure plus the "Earlier" figure.
zwetan_uk escribió
It is useless to keep supporting hybrid (32-bit + 64-bit) apps
Why?
Because Apple only allow 64-bit devices to get app updates
This is obviously false! Users with 32-bit devices can still get hybrid app updates.
Apple just forbids 32-bit only apps, not hybrid 32/64-bit apps.
zwetan_uk escribió
Is it possible to update an hybrid (32-bit + 64-bit) app to 64-bit only?
Yes, see Apple Technical Q&A QA1623
you just need to define the minimum "iOS Deployment Target" to iOS 9
This is just wrong! Apple won't let you to update a hybrid app to a 64-bit app if you set your "iOS Deployment Target" to iOS 9, because then iOS 9 users wouldn't be able to update your iOS 9 app even if they saw the update on the app store! You can't support less devices in an app update for iOS versions your app supports. It even says that in the very same page you cited!!!
You can't drop support for 32-bit devices in an update unless you target iOS 11, which is the only iOS version which doesn't support 32-bit devices (iOS 10 still does). If you target iOS 11, then your 64-bit only app will indeed be able to be updated over the previous hybrid one, but if it targets an earlier iOS version, it won't be accepted. So, yes, you can update a hybrid 32/64-bit app to 64-bit only, but only if targeting iOS 11.
If you target iOS 10, you HAVE to upload a hybrid 64-bit/32-bit app to be able to be accepted as an update. And of course you will want to target iOS 10. It's not that old: iOS 11 came less than a year ago! And targeting iOS 10 you can reach users of iPhone 5, iPhone 5c, iPad 4 and iPad Mini, which are on iOS 10.
Targeting iOS 9 (lowest iOS version currently supported by Adobe AIR) is interesting as well, because you can also reach users of iPad 3 and iPad 2, which are stuck on iOS 9. And this requires the update to be hybrid as well.
Finally, you might have noticed that Josh Tynjala, the programming guru behind Feathers, one of the most important Adobe AIR libraries alongside Starling, has posted in this thread and he also thinks this is "a poor choice" in Adobe's part. Do you really think he doesn't know what he's doing either? (as you are so arrogantly and constantly saying in your posts about people who think different than you).
Flipline nailed it in his latest post: Adobe should wait if only because AIR is the only framework dropping hybrid 64/32-bit apps altogether. All other important frameworks still do support hybrid apps.
It's much easier to explain to a customer that Apple requires 64-bit only apps (when Apple finally does, which is NOT now), than explaining that some framework requires it (the customer won't even know what a framework is).
Adobe puts us in a difficult position if they drop support for hybrid 32/64-bit apps before Apple really requires it, before everyone else making apps for the App Store!
If they drop support for hybrid apps when Apple really requires it, it will NOT be that big of a deal, because then Apple is to "blame" and ALL app developers of the App Store will have to stop supporting 32-bit devices, instead of only Adobe AIR developers, which is the problem here.
Also, when Apple really requires developers to drop support for 32-bit devices and hybrid apps, which probably won't happen until next year, users will have probably updated their devices or won't be as upset about having to buy a new device because those devices will be older.
So, if Adobe still supports hybrid iOS apps in AIR 30 everyone wins.
Copy link to clipboard
Copied
zwetan_uk wrote
https://forums.adobe.com/people/William+Spence wrote
... 25% of the market still uses 32-bit iPads.
No, your number is wrong or you're confusing what is a 32-bit iPad
@zwetan_uk I am guessing you may not have looked at your actual sales and installs figures using iTunes Connect App Analytics, or you do not develop any apps that are designed for iPad, or else you would better understand what we are talking about here. Clearly Apple has newer models of iPads for sale, and clearly all of the 32-bit iPads you mentioned are all older devices that can not run iOS 10 or iOS 11. We get that, and it's easy enough to understand the difference between a 32-bit iPad based that uses armv7 vs. a 64-bit iPad based on arm64.
Here's the issue which you keep ignoring or claiming is wrong: 20-25% of active users of iPad owners have not upgraded to a newer device, they are still using their older iPads which are 32-bit only. This is supported by our actual app sales data, where we can clearly see all of our paying customers are still using those old devices, and have been happily receiving updates of our apps in AIR 29 and earlier (as well as receiving updates just fine from apps developed in Xcode, Unity, or any other SDK). If you have any apps yourself on the App Store, especially if you have any that are designed as iPad-only, I urge you to look at your installs in the last 90 days on iPad and see what percentage of users are using iOS 11 (because they have newer devices that support it) and what percentage of users are using iOS 9 or iOS 10 (because they have older devices that are unable to support iOS 11 because they're 32-bit). If you look at your own app analytics you would see what percentage of your users and sales you will no longer be able to support, not because of any decision by Apple, but because of Adobe wanting to drop support prematurely. For our own apps this is approximately 20% for each iPad app, every one of our iPad apps sees these figures. I'm not citing Wikipedia or news articles here, I'm citing my actual live installs on the App Store in the last 90 days.
A larger issue is that using AIR 30, we can not even submit updates for ANY of our apps for ANY devices, whether they have 64-bit iPads or not: Apple does not let you make changes to UIRequiredCapabilities for any reason in an update, even if you change MinimumOSVersion to limit it to iOS 11 it will still be rejected because UIRequiredCapabilities can not be changed after an app is launched. This means we lose support for 100% of our users of existing apps if we upgrade to AIR 30. This is a separate issue from 32-bit devices being unsupported for brand-new apps, and which is even more worrying for me.
Copy link to clipboard
Copied
Flipline, I have a question for you because I have not looked into this yet. Can you release an iPad app in 32-bit only for older devices on the App Store that has a maximum iOS of 10, and then submit the exact same app with the same name in 64-bit only and set the minimum OS at 11??
So basically, can you submit the same app twice with different bit depths that will show up for different users depending on their OS??
Copy link to clipboard
Copied
I don't think that's possible anymore, the only earlier version of AIR that we're able to use to submit updates now is 29.0.0.122 which will still (thankfully) generate a hybrid 32+64-bit app. Apple may make some changes to the upload/review process at any time though which would force us to start using AIR 30 with fixes for whatever issue that comes up, so using AIR 29 is likely not a long-term solution.
Copy link to clipboard
Copied
The point is that many people don't update to their iOS version to 11.
I've kept my iPad 3 on iOS 9 - precisely because I want it to work with as many apps as possible, and so I can test an earlier (slower) version of iOS to see how my apps perform on old software and hardware. If the app performs on that device it should be fine on newer devices. I also test on an iPhone 6 (iOS 11). That's all I have to test on.
I think we all understand this is a major bad move and why.
So does anyone have a direct line to an Adobe dev? Please speak up!
Copy link to clipboard
Copied
Hey Amrita,
thanks for your reply. I think most of us understand that removing 32 bits versions makes it easier for you to maintain the compiler and that 64 bits only allows you to focus on the future. But do you acknowledge that there is a problem for existing apps that are unable to publish updates now because Apple does not allow to remove support for previously supported devices? It feels like your change is coming at least one year too early and I hope you at Adobe can reconsider this move and maybe revert it for now until the percentage of 32 bits devices is much lower, like in a year or two. Thanks and keep up the good work!
Copy link to clipboard
Copied
Agree this is a BAD choice for Adobe air. This is shown by the fact that xcode creates a hybrid 32/64 ipa by default to support 32bit devices as well. It seems that Adobe should try to support 32bit up to the point that those devices are considered deprecated. I don't think iPhone 5 especially would be considered deprecated at this point. It's likely a resource and hours billable thing. I would imagine that for the SDK developers every fix and change they make needs to be done twice for each architecture, making it require twice the hours to build. That's a guess. If it's not the case and much easier it would baffle me why they would do this. I think until that graph shows < 5% users affected, they shouldn't even consider such a move.
Copy link to clipboard
Copied
If I got it right:
- Exporting for 64bit with AIR 30, means older 32bit processor devices will not get an app update right? Makes sense.
What do you mean by only new apps? Will apple reject an app update made with AIR 30 and will need a new bundle ID?
Thank you
Copy link to clipboard
Copied
Honestly, don't even read zwetan_uk's posts, he's redundant and ignores what's being said. It's just going to hurt your brain. The guy is seriously obtuse. zwetan_uk, for a guy with some pretty terrible English it's cute how condescending you are. I bet you fail hard at most interviews.
Copy link to clipboard
Copied
cybobear wrote
Honestly, don't even read zwetan_uk's posts, he's redundant and ignores what's being said. It's just going to hurt your brain. The guy is seriously obtuse. zwetan_uk, for a guy with some pretty terrible English it's cute how condescending you are. I bet you fail hard at most interviews.
Please try to avoid personal attacks. This goes for everyone replying here. Stay on topic and ignore anyone who isn't helpful. Everyone who has replied here is getting notifications, so let's try to keep the signal high and the noise low.
Copy link to clipboard
Copied
I hear you, but the guy talks disrespectfully to other users and needs to be called out. Secondly, the signal I'm sending is don't waste your time reading his posts because he's just repeating himself ignoring the obvious points others are making. To be clear, I'm not saying I presume he fails at most interviews because of his bad English, I would never be prejudice in that way, I'm presuming he would fail due to his deplorable personality. Providing he doesn't continue to demean other users to desperately try to sell his point a view, I won't say anything.
Copy link to clipboard
Copied
cybobear wrote
I hear you, but the guy talks disrespectfully to other users and needs to be called out. Secondly, the signal I'm sending is don't waste your time reading his posts because he's just repeating himself ignoring the obvious points others are making. To be clear, I'm not saying I presume he fails at most interviews because of his bad English, I would never be prejudice in that way, I'm presuming he would fail due to his deplorable personality. Providing he doesn't continue to demean other users to desperately try to sell his point a view, I won't say anything.
So you will never do what you just did? Makes sense ... Gee, apologize already instead of digging deeper.
zwetan has arguments and I didn't see you try to argue any so your ad hominem is unwarranted.
Copy link to clipboard
Copied
You didn't read the whole thread then. I did make my points to zwetan, in point form after he insulted William by saying he didn't understand text and needed pictures. And no I have not done what he did by insulting someone I disagree with because I'm so zealous about my point. I believe it's warranted - stand up or sit down and let people get away with it is my opinion. Don't get tribal over a guy that clearly is triggered for no reason. zwetan's attitude is toxic to the thread and he is terribly redundant if you actually read it all.