• Global community
    • Language:
      • Deutsch
      • English
      • Español
      • Français
      • Português
  • 日本語コミュニティ
    Dedicated community for Japanese speakers
  • 한국 커뮤니티
    Dedicated community for Korean speakers
Exit
Locked
7

IOS is blocking AIR, rejected for months,due to AIR has API using IOPSCopyPowerSourcesInfo

New Here ,
Mar 31, 2018 Mar 31, 2018

Copy link to clipboard

Copied

Our mobile game uses FLash, and AIR 29 to make it work on IOS devices,

However, we can't upgrade our game since half year ago, and Apple review team finally told us the reason:

REJECTED:

Thanks for your resubmission.

Guideline 2.5.1 - Performance - Software Requirements

Your app uses or references the following non-public APIs:

_IOPSCopyPowerSourcesInfo, _IOPSCopyPowerSourcesList, _IOPSGetPowerSourceDescription

The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

Next Steps

If you are using third-party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs.

Resources

For information on the "nm" tool, please review the "nm tool" Xcode manual page.

If there are no alternatives for providing the functionality your app requires, you can file an enhancement request.

Then we found it's in AIR sdk, even 29.

Then we replied:

The earlier letter said our app has the following non-public APIs:

"_IOPSCopyPowerSourcesInfo", "_IOPSCopyPowerSourcesList" and "_IOPSGetPowerSourceDescription".

We checked the ipa file with the tools you suggested.

"nm" and "oTool" found none.

The tool "strings" only found "IOPSCopyPowerSourcesInfo", "IOPSCopyPowerSourcesList" and "IOPSGetPowerSourceDescription" (non-underlined) referenced.

After searched the non-underlined version from the apple develop center, we thought they are public APIs.

However, we never called them.

These were found in the popular SDK Adobe AIR, and were alone there for years.

We haven't got any alternatives beyond Adobe AIR.

TOPICS
Performance issues

Views

24.5K

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
replies 178 Replies 178
Engaged ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

Flipline  wrote

Whoa, this labs beta release also drops support for universal 32-bit/64-bit iOS apps and is just 64-bit only from now on.  That's a huge change, all of our customers still using an iPad 2, iPad 3, iPad 4, iPad Mini won't be able to download our app updates or new apps anymore since those only work when a 32-bit version is included in the app.

Why was 32-bit support dropped?? Lots of people still use iPad 2, 3 and 4. Most of our customers are still on iPad 2!

This change leaves A LOT of users out.

Will we have to be stuck on AIR 29 for years to come?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

Loosing 32-bit support is also a deal breaker for entreprise app.

In the meantime Flutter is working hard for adding 32-bit support Support ARM32 iOS devices (iPhone 4, iPhone 5) · Issue #2089 · flutter/flutter · GitHub

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
May 03, 2018 May 03, 2018

Copy link to clipboard

Copied

Hi,

You need to upload the app packaged with ipa-app-store target (which will not be having any signature changes).

Also, the ad hoc provisioning profile issue has been fixed in our latest beta. Please give it a try from Download Adobe AIR 30 Beta - Adobe Labs​.

Thanks!

Pravishti | Adobe AIR Engineering

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 03, 2018 May 03, 2018

Copy link to clipboard

Copied

pravishtis​ does this mean ad hoc provisioning will not be fixed in AIR 29, and will be left broken as-is?  With AIR 30 dropping support for 32-bit/universal apps, I have a feeling many developers will need to remain with AIR 29 so we can keep supporting our customers, and with ad hoc provisioning broken there's not an easy way to do that now.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

Flipline  wrote

does this mean ad hoc provisioning will not be fixed in AIR 29, and will be left broken as-is?  With AIR 30 dropping support for 32-bit/universal apps, I have a feeling many developers will need to remain with AIR 29 so we can keep supporting our customers, and with ad hoc provisioning broken there's not an easy way to do that now.

Your best bet for now is using AIR 29.0.0.112 for ad-hoc testing and AIR 29.0.0.122 for App Store releases.

Unfortunately AIR 29.0.0.112 is not available at Adobe's AIR SDK Archive site (Find and download archived versions of Adobe AIR SDK ). It seems they stopped archiving AIR SDK versions at AIR 25. If you need AIR 29.0.0.112 SDK I can upload it somewhere so you can get it.

Best regards.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 03, 2018 May 03, 2018

Copy link to clipboard

Copied

Hi,

I'm still having the same issues :-S

can you send me an example descriptor file, and the folder path that i need to put the Assets.car + images. I've put them all on the same level as the descriptor file.

Thank you

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
May 03, 2018 May 03, 2018

Copy link to clipboard

Copied

Hi,

You need to give the paths of icon images inside the icon tag in the application descriptor like this:

You can give the names and paths(relative to the application descriptor) of the images as per your convenience.

For Assets.car, you just need to place it parallel to the application descriptor and package it in the app like any other resource.

Thanks!

Pravishti | Adobe AIR Engineering

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

I think it's about time Adobe clarified the position regarding 32-bit and other support going forward.

I don't  want to be in a position where I take on a project that I cannot fulfil because Adobe won't support the IOS platform that they are using.

It's important that the question of supported IOS platforms is clarified. Now.

It's also important that Adobe clarifies whether any older versions of Air will be updated so support of 32bit can continue in the short term at least.

Clients don't always understand this stuff. They ask for iPhone or iPad apps to be developed. The current situation could prove disastrous.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Participant ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

"Now."

You're being a bit rude tbh.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Advisor ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

That's not my intention.

I say now because time is really of the essence and if Adobe is actually going to abandon the 32 bit platform, now is the time to tell people.

I might get approached at any moment to do some cross-platform work for IOS and Android. For all I know the client may have a heavy investment in 32 bit hardware. Should I be committing to a project that may not be fulfillable using Animate CC?

I don't feel I am being rude at all. I'm disappointed that Adobe is not communicating their intentions.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

This 32bit decision could be pretty devastating to us as well. We just launched our children's app less than a week ago, and we assume the bulk of our audience will be using older "hand me down" iPads.

Please don't kill this, Adobe

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

Hey there friendly Adobe folks. I know you obviously have a lot of factors to consider, but our company is pretty much dead in the water after five years of development if you go through with this. Please keep this alive!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

chris.campbell​,

We've already been told in another thread that this decision to remove 32-bit from iOS apps was based on a change in macOS, a completely separate platform that is unrelated to iOS.  It's shocking that this decision was made arbitrarily like this, when there is not any actual reason that iOS can not support 32+64bit apps (in fact, combined 32+64bit is still the standard for Xcode and all other SDKs and solutions including Unity, Corona, etc.for iOS deployment).

The biggest issue though is that, according to Apple's policies, existing apps that are already 32+64-bit CAN NOT be updated with a version that is limited to 64-bit-only.  You can find documentation for this Apple policy here:

Device Compatibility

Important: All device requirement changes must be made when you submit an update to your binary. You are permitted only to expand your device requirements. Submitting an update to your binary to restrict your device requirements is not permitted. You are unable to restrict device requirements because this action will keep customers who have previously downloaded your app from running new updates.

This documentation applies to UIRequiredDeviceCapabilities keys "arm64" and "armv7" among others, and this is precisely what Adobe's current build of AIR 30 is doing -- adding arm64 as a requirement, which was not present in apps previously released in AIR, which will "keep customers who have previously downloaded your app from running new updates" as is mentioned in the Apple policy.

This change in AIR 30 is much more than Adobe dropping support for 32-bit apps.  Based on this Apple policy, this is Adobe dropping support for every AIR app that has ever been released for iOS.  We will not be able to use AIR 30 moving forward, because that would mean abandoning all existing apps without ever being able to update them.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 06, 2018 May 06, 2018

Copy link to clipboard

Copied

Adobe, here is additional information on not being able to update existing apps with AIR 30 from an Apple Technical Q&A:

https://developer.apple.com/library/content/qa/qa1623/_index.html​

This article also confirms that you can not change UIDeviceCapabilities in an update or your app update will be rejected.  Even if you change the MinimumOSVersion, you still can not change UIDeviceCapabilities in the process.  Since this is the case, 64-bit-only AIR 30 can not be used for updates for every AIR iOS app that has ever been released.  Dropping support is one thing, but losing support for anything we've ever released with your software is massive.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 12, 2018 May 12, 2018

Copy link to clipboard

Copied

Flipline​

I think you're not completely understanding the Apple Technical Q&A you're referencing. Creating a 64 bit only update to your app could violate the App Store guidelines. However, that can be avoided by, as explained in the Technical Q&A, "Target[ing] a newer version of iOS that requires a newer device". As you know, iOS 11 completely dropped 32 bit support, so it runs exclusively on devices with 64-bit processors. When you create your update with AIR 30, if your target iOS 11 setting the MinimumOSVersion key your 64 bit only app should not be rejected. It might be that when AIR 30 is released the target iOS version is set to 11 by default, so you won't have to do anything.

Now, that being said, I do think it would have been good to keep 32 bit support apps for a bit longer as the market share for those devices is about 20% - 23% (App Store - Support - Apple Developer) but you can for now continue to support those devices using AIR 29.

chris.campbell​ pravishtis​

Also, it would be good to hear Adobe's justification for dropping support for the universal 32+64 bit IPA. I hope it meas they're optimizing the runtime or the code generation. That's me being positive but who knows.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Engaged ,
May 12, 2018 May 12, 2018

Copy link to clipboard

Copied

JulianDMG​

You're right that the way you're supposed to target newer devices is by changing MinimumOSVersion, but the Q&A and other Apple documentation also says that this only works as long as you do not make any changes to UIRequiredDeviceCapabilities when you do that.  The 64-bit-only builds from the AIR 30 beta were making changes to UIRequiredDeviceCapabilities automatically, so even if we set MinimumOSVersion to 11, it still wouldn't be allowed as an update since you can't change UIRequiredDeviceCapabilties after release for any reason.  It's bizarre since the MinimumOSVersion would limit it to 64-bit-only devices anyway, but unless they change their policies in the future you just can't touch that UIRequiredDeviceCapabilities key.

Thankfully Chris announced that they'll be restoring 32+64-bit builds in AIR 30 in an upcoming beta update!

Re: AIR 30 dropping support for 32-bit in iOS apps

So hopefully we won't have to worry about this again until Apple makes the requirement themselves, in which case I'm assuming they'd change their update policies.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
May 17, 2018 May 17, 2018

Copy link to clipboard

Copied

Hi,

The latest beta AIR SDK 30 supports packaging universal iOS applications. You may download the beta from Download Adobe AIR 30 Beta - Adobe Labs

Thanks!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 17, 2018 May 17, 2018

Copy link to clipboard

Copied

Hi Amrita,

Can you tell us if this release includes the 32+64-bit builds as Chris mentiond?

Thankfully Chris announced that they'll be restoring 32+64-bit builds in AIR 30 in an upcoming beta update!

Re: AIR 30 dropping support for 32-bit in iOS apps

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
May 17, 2018 May 17, 2018

Copy link to clipboard

Copied

Yes, this release includes the 32+64-bit builds.

Thanks,

Amrita

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 20, 2018 May 20, 2018

Copy link to clipboard

Copied

Hi Amrita,

I've tried out the new version with an Enterprise app but it won't install.

Does this version not include that bugfix?

I'm sorry to bother you so many times....

Best Regards,

Risa

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
New Here ,
May 04, 2018 May 04, 2018

Copy link to clipboard

Copied

Dear Adobe,

The decision to drop 32bit support, if implemented, will be devastating to our business. We put a lot of faith in you when we decided to use AIR to make our product. Please don't let us down now!

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 06, 2018 May 06, 2018

Copy link to clipboard

Copied

Hello everyone,

Has anyone tried using Air30 yet?

I tried it but still can't install the app using the enterprise provisioning file.

I'm still getting the same "Unable to download app. "name of my app" could not be downloaded at the time." message.

Am I doing something wrong?

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Explorer ,
May 07, 2018 May 07, 2018

Copy link to clipboard

Copied

chris.campbell​ pravishtis​ niestudio​ OMA2k​

I used the AIR SDK 30 and created a final release package for Apple App Store ipa and uploaded the ipa to itunes connect. I got the below error:

Dear Developer,

We identified one or more issues with a recent delivery for your app, "Dollar Mobile". Please correct the following issues, then upload again.

Invalid Code Signing Entitlements - The entitlements in your app bundle signature do not match the ones that are contained in the provisioning profile:

The bundle contains a key that is not included in the provisioning profile: "beta-reports-active" in Payload/Dollar.app/Dollar

Your binary is not optimized for iPhone 5 - - New iPhone apps and app updates submitted must support the 4-inch display on iPhone 5 and must include a launch image referenced in the Info.plist under UILaunchImages with a UILaunchImageSize value set to {320, 568}. Launch images must be PNG files and located at the top-level of your bundle, or provided within each .lproj folder if you localize your launch images. Learn more about iPhone 5 support and app launch images by reviewing the 'iOS Human Interface Guidelines' at https://developer.apple.com/ios/human-interface-guidelines/graphics/launch-screen.

Missing required icon file - The bundle does not contain an app icon for iPhone / iPod Touch of exactly '120x120' pixels, in .png format for iOS versions >= 7.0.

Missing required icon file - The bundle does not contain an app icon for iPad of exactly '76x76' pixels, in .png format for iOS versions >= 7.0.

Missing required icon file - The bundle does not contain an app icon for iPad of exactly '152x152' pixels, in .png format for iOS versions >= 7.0.

Can you please suggest and advise. Thanks.

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Adobe Employee ,
May 07, 2018 May 07, 2018

Copy link to clipboard

Copied

Hi,

For the provisioning-profile error, could you please try once with generating a new provisioning-profile from Apple Developer Portal and packaging the application with the new provisioning.

For the launch images error, please make sure you're including the launch images as per the specifications mentioned here: Launch Images on iOS with Adobe AIR​.

For the icons error,

  • Include the icons in the icons tag(for iOS 10 and below) in application descriptor as follows:

    

     You can specify the path(with respect to application descriptor) and names as per your convenience.

  • Create Assets.car(for iOS 11 and above) and package it with swf and app-xml as any other resource. For assistance on creating Assets.car, please refer Release Notes Flash Player 28 AIR 28​.

Let us know if you still face issues.

Thanks!

Pravishti | Adobe AIR Engineering

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines
Community Beginner ,
May 09, 2018 May 09, 2018

Copy link to clipboard

Copied

Hello,

I have tried all of what you mentioned but I stil cannot install the ipa ( build using an enterprise provisioning file and certificate ) on to my iPad. I am still expriencing the same, XXX cannot be installed at this time. ( I really wish Apple made this alert more detailed... )

Can you please look into this for us?

e.g. Was I supposed to use an adhoc provisioning file? For the enterprise apps, what is the procedure?

Thank you in advance...

Best Regards,

Risa

Votes

Translate

Translate

Report

Report
Community guidelines
Be kind and respectful, give credit to the original source of content, and search for duplicates before posting. Learn more
community guidelines