• 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

27.2K

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
Community Beginner ,
Jun 01, 2018 Jun 01, 2018

Copy link to clipboard

Copied

The certificate warning comes from Apple recently changed requirements. It happens with other AIR versions before 29. It will not prevent your app from being accepted so you can move on.

See thread New Bug with Adobe Air 29.0.0.122

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

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

If we manually remove the references from this file, will it solve the problem temporarily?

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

Hey, how did you analyse the IPA file. I tried using nm tool and also otool and didn't find any references to any of the APIs that Apple has mentioned. 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
Explorer ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

IOPS functions are found if you open the package with hex editor (or use the strings tool).

otool output does have CTUtilities and establishIOKitConnection references, though.

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

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

Copy link to clipboard

Copied

Developers,

Tracker bug submission issue has been resolved. Team is working on identifying the root cause for app submission issue on utmost priority.

We will keep this thread posted.

Thanks,

Ankit | 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
New Here ,
Apr 06, 2018 Apr 06, 2018

Copy link to clipboard

Copied

Hi Anki,

What's the new? I hope this issue will be resolved soon.

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
Engaged ,
Apr 08, 2018 Apr 08, 2018

Copy link to clipboard

Copied

Ankit - first off thank you AIR Team for continuing to develop this amazing platform!

I believe this is the link to that bug on: Tracker

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

Copy link to clipboard

Copied

Ankit,

Like dews and many others, I would just like to thank the AIR team for your hard work and dedication for making such a valuable tool.  I thank my lucky stars for AIR everyday.  Good luck identifying the problem before you, and I hope you find a solution soon!!!

Bill

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

Copy link to clipboard

Copied

Hi,

Is there any update? Has anyone managed to get their apps approved after this issue surfaced?

Hoping that your team managed to get some breakthrough. We have few critical updates lined up.

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

We've got a response from Apple. Here it is:

-----

Thank you for your response. We appreciate your efforts to comply with the App Store Review Guidelines.

Regarding 2.5.1, your app leverages non-public API in +[CTUtilities establishIOKitConnection].

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.

-----

@Anki(AG) I've found references to the function by that name in both libRuntimeHMAOT.arm-air.a and libRuntimeInterpreter.arm-air.a.

@Vivid75 Haven't tried that, but I'm pretty sure it would just produce a broken binary. You probably could decompile static libraries, but it would not be easy.

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

Just got the same reply from Apple. So do we know if this is the Adobe AIR development team's responsibility to fix? Looks like all references using IOKit need to be removed. I did remove the IOKit.framework from the lib/aot/stub path and it re-compiled fine. Not sure if it removes the references though. looking into it now.

Hopefully it is quick, because right now we can't publish using any version of Adobe AIR and have updates that are needed to support our customers.

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

Does this mean the reason is the AIR sdk and we cannot change anyting ourselves, so we need to wait for a new AIR sdk to be able to push new apps? This would be devastating for my company..

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

It seems so since the problem exists in more than 1 version of the Adobe AIR SDK. (27,28, and 29 so far)

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

Add Air SDK 26 to the list. Ours was just rejected for the same reasons.

Here are my ANEs

ANEs.jpg

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

When i run

strings /Users/user/Payload/MyApp.app/MyApp

in terminal it does find these in its search.

com.apple.framework.IOKit

IOPSCopyPowerSourcesInfo

IOPSCopyPowerSourcesList

IOPSGetPowerSourceDescription

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

I got this reply from apple when i asked if they could help identify where the issue was coming from:


"Thank you for your reply. Our team found this app contains Private API abuse.

Examples of this abuse may be found in the method [CTUtilities establishIOKitConnection]. To continue review it would be appropriate to remove all Private API abuse, then resubmit for review. If this abuse is found in third party code, it would be appropriate to work with the third party developer to resolve this concern.

Thank you,

App Store Review"

Anyone know which method uses : CTUtilities establishIOKitConnection

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

Copy link to clipboard

Copied

They are being inconsistent about this. We had a submission approved yesterday - after apparently some here had already been rejected for this - but we had to submit an update because of a problem with a language xml file. Today we were rejected for this, and now we're stuck. So it's not anything we're doing, any functions we're calling or not calling, or any ANEs we're including.

It's clear that this is an AIR SDK issue that Apple has decided to reject apps for, which they didn't before and maybe aren't consistent about doing even 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 ,
Apr 05, 2018 Apr 05, 2018

Copy link to clipboard

Copied

Just would like to confirm that I've been through all the compiled libraries and sources of our ANEs (distriqt) and we are not using these private APIs from IOKit in any of our ANEs and those strings aren't present in our extension binaries.

This issue seems unrelated to our ANEs at least.

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

Copy link to clipboard

Copied

We also have the same problem. AIR SDK27.

s.jpg

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

We have then sample problem. Air SDK 25.

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 have same problem today, when I was try to go from AIR25 to AIR29

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

Copy link to clipboard

Copied

Air SDK 27. same problem.

Myflashlabs told me that they didn't use it.

Waiting for adobe fix

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

Copy link to clipboard

Copied

Air SDK 27. same problem.

Myflashlabs told me that they didn't use it.

Waiting for adobe fix

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

Copy link to clipboard

Copied

My app is using AIR 26. I planned to rollout a new version in a few days, based on AIR SDK 28.0.0.126. Seems like it will be better for me not to do this, isn't it?

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