Skip to main content
gameduchy
Participant
April 2, 2018
Question

Adobe Air SDK 29 is not accepted by Apple

  • April 2, 2018
  • 41 replies
  • 34628 views

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.

This topic has been closed for replies.

41 replies

Participating Frequently
April 13, 2018

The most informative error I've got is

The entitlements specified in your application’s Code Signing Entitlements file are invalid, not permitted, or do not match those specified in your provisioning profile. (0xE8008016).

According to this documentation the Entitlements should match the one that are turned on for app ID on developer.apple.com (they are embeded into provision.profiles)

https://developer.apple.com/library/content/technotes/tn2415/_index.html

Not sure how they are build into the app bundle. Will compare between AIR 27 and 29.

Checked the provision profiles. They are the same for AIR 27 and 29.

But the App itself is signed differently.

Using command for unpacked bundle

codesign -d --ent :- ~/Downloads/Bundle/App.app/

Found that in AIR 29.0.0122

App is singed with additional Entitelments

<key>beta-reports-active</key>

        <true/>

That's why I can't install them on all of my test devices. I'm using mac to build apps.

Participating Frequently
April 16, 2018

I'm experiencing the exact same issue that prevents ad hoc builds created with AIR 29.0.0.122 to be installed  and as you correctly pointed out, it is caused by the beta-reports-active, which is not supported for ad hoc provisioning profiles.

Participating Frequently
April 13, 2018

I think we are having the same problem with ad-hoc ipa. I can't install it on the test devices.

Also the store ipa don't want to install. We have two developer programs, one for inhouse Enterprise and one normal Apple developer program.

When I use branch with AIR 27 everything is ok. When I try to build with AIR 29.0.0.122 with adding Assets.car it is not showing icon and and is grey after installation. Tapping it gives me can't install or redownload error. I've tried to install it throw hockey app uploading builds. Also using iTunes or Xcode.

Maybe somebody had that problem? Is it related to AIR 29 SDK?

Amrita Gangwani
Adobe Employee
Adobe Employee
April 13, 2018

Hi,

AIR ADK version 29.0.0.122 has been released. The Apple store app rejection issue, Tracker is addressed with this build. You may download the build from Download Adobe AIR SDK

Thanks!

Inspiring
April 13, 2018

Thanks I have just download it. But there are no release notes for it. When we can expect to see release notes?

Is the only change in the AIR 29.0.0.122 the Apple store app rejection issue?

Thanks

Amrita Gangwani
Adobe Employee
Adobe Employee
April 13, 2018

Hi,

We are working on that, release notes will be available soon.

Thanks.

zasflower2014
Inspiring
April 10, 2018

use this step:

chris.campbell
Community Manager
Community Manager
April 10, 2018

Hi all,

Here are the updated versions of the AIR SDK that we believe fix the issue reported in this thread.  We're still in the process of testing and would appreciate feedback from the community.  If everything looks good, we hope to update the official download page with this build within the next few days.

Windows AIR SDK 29.0.0.122

Mac AIR SDK 29.0.0.122

Thanks,

Chris

Known Participant
April 10, 2018

Good news! I just published a new IPA with the updated SDK and did the Strings test and nothing is showing up for the following any further:

IOKit, IOPSGetPowerSourceDescription, IOPSCopyPowerSourcesList, IOPSCopyPowerSourcesInfo

We are going to re-submit to apple tomorrow and will let you know how it goes.

Thanks Chris!

zasflower2014
Inspiring
April 10, 2018

use WinHex check the .ipa file unzip is OK.

IOPSGetPowerSourceDescription, IOPSCopyPowerSourcesList, IOPSCopyPowerSourcesInfo

these API is here:

https://developer.apple.com/documentation/iokit/1523839-iopscopypowersourcesinfo?language=occ


it is Mac OS only.

I found them at AIR19 AIR24 AIR29.
when you creat a empty AS AIR for IOS project.they are here.

so. AIR still can accept by ios.

smolho
Participant
April 10, 2018

We're in the same situation.

Waiting for updates

natural_criticB837
Legend
April 10, 2018

Hi, just a quick info: Our update for iOS just passed review in iTunes. We are also using Adobe Air 29.0.0.112, a couple of ANEs from Milkman, Distriqt and others. I don't know if it is related to usage of APIs though or if we were just lucky:

https://itunes.apple.com/us/app/mau-mau-online/id964155395

maheenkhalid
Participant
April 10, 2018

Hey, did you do a hex analysis of your application? Is your application using any of restricted APIs?

Participating Frequently
April 10, 2018

Guys, you should check this link better (IOS is blocking AIR, rejected for months,due to AIR has API using IOPSCopyPowerSourcesInfo ), Chris Campbell replied there already.

Participant
April 9, 2018

Looks like possible to fix this (calling mac osx methods on ios) in binary. We will test this soon (file libRuntimeHMAOT.arm-air.a). Looking forward hearing from adobe

LiLin000
Participant
April 8, 2018

想了一下,也许和下面这两段代码有关:

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;

NativeApplication.nativeApplication.executeInBackground = true;

LiLin000
Participant
April 8, 2018

Air SDK 22, same problem.