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

Adobe Air SDK 29 is not accepted by Apple

New Here ,
Apr 02, 2018 Apr 02, 2018

Copy link to clipboard

Copied

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

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
Development

Views

24.3K

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 176 Replies 176
Participant ,
Apr 02, 2018 Apr 02, 2018

Copy link to clipboard

Copied

is this only air 29?

I just had an app accepted that was air 27 - can't you just republish with air 27?

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 ,
Apr 09, 2018 Apr 09, 2018

Copy link to clipboard

Copied

happened to me with air SDK 27 and IOS version 11.2

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 ,
Apr 02, 2018 Apr 02, 2018

Copy link to clipboard

Copied

It"s strange, I submitted my app on the App Store with Air 29 and no problem.

So you probably call indirectly those non-public references.

You might try to find which part of your code trigger those non-public API references. If this code is important then you should try to get the same result by other means.

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
Advocate ,
Apr 02, 2018 Apr 02, 2018

Copy link to clipboard

Copied

Air 29 is not available for 6 months. So either you were seeing the same reject from Apple for another version of Air as well, which would be an important information, or you are exaggerating the timeframe.

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
Advocate ,
Apr 03, 2018 Apr 03, 2018

Copy link to clipboard

Copied

False statement, Ios is not rejecting AIR or AIR 29, it's rejecting YOUR app for other reasons and by the look of it it might be the use of third party library that Ios doesn't like.

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 ,
Apr 03, 2018 Apr 03, 2018

Copy link to clipboard

Copied

Hi,
Even our app was rejected with the same notice. Its built in AIR 27. Anyone else has faced this issue?

Regards,
Nishant
--------------
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.

------------

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 ,
Apr 03, 2018 Apr 03, 2018

Copy link to clipboard

Copied

We have the same problem. Our latest build was rejected with the same message.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

We are using the following libraries:

Libraries.png

Are you using any of the above libraries in your project? Mention those so that we can find common possible ANE causing problem.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

screenshot.194.png

Here's our ANE list. The only one that intersects is AndroidFullScreen, but it doesn't even has an iOS/arm implementation.

The only references to

_IOPSCopyPowerSourcesInfo

_IOPSCopyPowerSourcesList

_IOPSGetPowerSourceDescription

that I found are contained in the AIR SDK files. However, as Gameduchy said, those are normal, non-private references with no undescore in the beginning.

We will try to get more information from Apple regarding this problem.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

Will you submit your app after removing AndroidFullScreen.ane? We are submitting a technical request to Apple to see if they can give us more idea about what to do exactly.

Anyone having any other update, please post here.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

For now we won't. After further research I see the possible reason for the problem. While the IOKit itself is supported in both macOS and iOS SDKs (see IOKit | Apple Developer Documentation ), the functions

IOPSCopyPowerSourcesInfo IOPSCopyPowerSourcesInfo - IOKit | Apple Developer Documentation

IOPSCopyPowerSourcesList IOPSCopyPowerSourcesList - IOKit | Apple Developer Documentation

IOPSGetPowerSourceDescription IOPSGetPowerSourceDescription - IOKit | Apple Developer Documentation

are marked as macOS-only.

Analysis of the hex contents of the packed IPA file reveals that those methods are at least referenced somewhere. I was also able to locate names of those functions in the libRuntimeHMAOT.arm-air.a file located in lib\aot\lib folder of AIR SDK.

We will request further clarification from Apple and we really need someone from AIR team to chime in.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

We just received this message as well and it looks like it is in fact part of the Adobe AIR SDK. The thing is that it looks like it’s only used by Mac OS and not iOS. I’ve replied back to the App Review team to ask for a resolution to this, but it looks like Adobe needs to remove these references when publishing to mobile platforms.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

Hi, I have four apps published in AIR 29, one published successfully, while the other three got this message. I am using greensock for all four, so if one of it pass with greensock, I suppose greensock is not the problem. In fact, all the ane files I use across my four apps are the same, so I can safely cancel out that it is referenced from those anes. One thing different from the three rejected apps to the accepted one is that, for those three apps, I have a partial preloader going on when the app startup to load all my assets. Repeated checks shows nothing to get power source information, so I am really confused where it was triggered. Unless the chuck of code below actually trigger the reference.

var percentage:Number = loaderInfo.bytesLoaded /loaderInfo.bytesTotal*100;

loaderInfo.addEventListener(ProgressEvent.PROGRESS, progress);

loaderInfo.addEventListener(IOErrorEvent.IO_ERROR, ioError);

loaderInfo.addEventListener(Event.COMPLETE,on_complete);

Either way, let's hope adobe come up with a fix soon.

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

Anyone logged a bug on the tracker for this as yet? Tracker      

air native extensions // https://airnativeextensions.com

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 ,
Apr 04, 2018 Apr 04, 2018

Copy link to clipboard

Copied

I've had the same problem and thats with air 27

these are my ane's

Screen Shot 2018-04-05 at 07.55.35.png

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

I surely this problem is not about ANE,i have the same problem with not any ANE used.

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

but i've had an app accepted recently like a few days ago that used air 27 so how come that didn't have the issue?

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

Our application got rejected for the same issue. But our previous build was approved just a few days ago. We haven't made any changes to the SDKs or ANEs since then. Our app uses AIR 28.0

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

Sounds like a policy change at Apple then, they've probably only just started pulling apps up on this API usage.

air native extensions // https://airnativeextensions.com

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

The thing is, I sent all 4 apps for approval in the same day, right after one another just yesterday. Can they actually approve one of my app, then change the policy the next minute and reject all my other three apps because of that?

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

Seems to be selective enforcement, as is often the case with Apple. Nevertheless, if that many people started encountering the problem already, it's only a matter of time until every submission is blocked.

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

In other news, I can't submit bug report on the Adobe bug tracker, request fails with status 400 Bad Request. That's a bit ridiculous, if I'm honest. If anyone cares to try, here's the post body I tried to submit:

Problem Description:

Recently Apple review team started to disallow publishing iOS apps built with AIR to the App Store with the following statement:

----

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.

----

Analysis of the hex contents of the packed IPA file reveals that those methods are at least referenced somewhere in the contents. I was also able to locate names of those functions in the libRuntimeHMAOT.arm-air.a file located in lib\aot\lib folder of AIR SDK.

Possible reason for the problem is that the IOKit itself is supported in both macOS and iOS SDKs, but the functions IOPSCopyPowerSourcesInfo, IOPSCopyPowerSourcesList, IOPSGetPowerSourceDescription are marked as macOS-only.

https://developer.apple.com/documentation/iokit

https://developer.apple.com/documentation/iokit/1523839-iopscopypowersourcesinfo

https://developer.apple.com/documentation/iokit/1523856-iopscopypowersourceslist

https://developer.apple.com/documentation/iokit/1523867-iopsgetpowersourcedescription

There are two forum threads about the problem, it seems to be widespread:

https://forums.adobe.com/thread/2472940

https://forums.adobe.com/thread/2472510

Steps to Reproduce:

Submit any IPA package build with AIR SDK to Apple AppStore verification.

Actual Result:

App fails verification with the aforementioned statement from Apple review team.

Expected Result:

App passes verification.

Any Workarounds:

None currently.

screenshot.195.png

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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

Hi,

We are investigating app store submission issue. So far this doesn't look like an AIR issue but we will keep this thread updated.

Also tracker team is looking into the bug submission issue on priority.

Thanks,

Ankit | AIR Engineering Team

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 30, 2018 May 30, 2018

Copy link to clipboard

Copied

While uploaded on " Application Loader " the warning message shown . i checked my certificates is active. Why the issue arrived and how to fix it.

Screen Shot 2018-05-24 at 11.27.42 AM.png

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