Skip to main content
gameduchy
Participant
March 31, 2018
Question

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

  • March 31, 2018
  • 41 replies
  • 30556 views

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

jprankard
Participating Frequently
April 9, 2018

We're also experiencing this. We tried to submit an app update for the new tax year (6th April here) last Thursday but got the same issue.

@Chris, please let us know when there is a private build ready or any hotfix we can do to remove the offending code from the compiled binary.

Thanks.

chris.campbell
Community Manager
Community Manager
April 9, 2018

I'm hoping to have a private build available as early as tomorrow.  I'll share this with the thread ASAP, and depending on our testing and your feedback, we'll push to get a new SDK build out to the release channel immediately. 

p0L
Known Participant
April 10, 2018

Thanks @chris.campbell, I'm waiting for the private build eagerly!...

LiLin000
Participant
April 8, 2018

也许和这段代码有关:

NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;

NativeApplication.nativeApplication.executeInBackground = true;

Participant
April 8, 2018

Hi LiLin000,

was your app accepted by Apple after you removed those 2 lines?

Participating Frequently
April 8, 2018

"was your app accepted by Apple after you removed those 2 lines?"

The problem is in Air itself, not the users app. The problem can only be solved by Adobe.

We might like to brand Apple as the bad guys, but I think Adobe might have dropped the ball on this one

Participating Frequently
April 5, 2018

I'm seeing a similar issue on the forums from 2016, which was apparently "fixed" in AIR SKD 25. We're now currently at AIR SDK 29 and the issue has re-appeared. My instinct tells me it's an AIR SDK issue, not an ANE - since everyone has such a diverse set of ANEs with no overlap.

We need to get this on Adobe's radar and have a fix pushed out ASAP.

Participating Frequently
April 5, 2018

Oh FFS.

You know, one TRIES to be proactive, but when crap like this happens, you just want to give up.

Can someone else please attempt to post a bug report here: https://tracker.adobe.com/#/add_bug

Tracker

To save you time, here's my submission:

SUMMARY: Apple store REJECTED - non-public APIs

DESCRIPTION:

Problem Description: Apple's App store is rejecting iOS submissions due to "use of non-public APIs". This is being tracked down to the AIR SDK (doesn't appear to be an ANE issue).

Steps to Reproduce: Submit an app to the app store using AIR SDK 29.x

Actual Result: Apple rejects after code audio, due to use of the following non-private APIs:

_IOPSCopyPowerSourcesInfo, _IOPSCopyPowerSourcesList, _IOPSGetPowerSourceDescription

Expected Result: SDK should not use these APIs, or should get agreement from Apple to be allowed to use them

Any Workarounds: None known at the moment.

For more context, please follow this forum post: https://forums.adobe.com/message/10293007#10293007

Please update ASAP.

Participating Frequently
April 5, 2018

@TomAuger we've got a bigger thread going at Re: Adobe Air SDK 29 is not accepted by Apple   with replies from the AIR team member.

Inspiring
April 5, 2018

Hello gameduchy.

What did Apple tell you after informing them of the APIs you found not including underscore being public APIs?

Also, could you please describe how did you use oTool to get the APIs? Did you use your compiled IPA file or something else? All I get is:

xxxxxxx.ipa: is not an object file

How do you get the object files if the IPA is compiled with AIR's adt and not directly with Xcode?

BTW, nm doesn't seem to work anymore after installing the latest Xcode. If I try to run it from the Terminal I get the message:

/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/nm: a.out: No such file or directory.

Best regards.

Participating Frequently
April 5, 2018

Our build also got rejected yesterday:

AIR VERSION:

Air 29 (v108)

ANES:

com.distriqt.Application.ane

com.distriqt.Bolts.ane

com.distriqt.Core.ane

com.distriqt.FacebookAPI.ane

com.distriqt.InAppBilling.ane

com.distriqt.Notifications.ane

com.distriqt.playservices.Auth.ane

com.distriqt.playservices.Base.ane

com.distriqt.playservices.GCM.ane

com.distriqt.PushNotifications.ane

com.distriqt.Share.ane

com.distriqt.Vibration.ane

OpenUDIDLib.ane (only used in test environment)

SWCs:

analytics.swc (Google analytics)

Console.swc (Getting Started · junkbyte/flash-console Wiki · GitHub

gamesparks-as3-sdk.swc (backend)

Inspiring
April 6, 2018

cgascons  wrote

Our build also got rejected yesterday:

AIR VERSION:

Air 29 (v108)

...

SWCs:

analytics.swc (Google analytics)

Console.swc (Getting Started · junkbyte/flash-console Wiki · GitHub

gamesparks-as3-sdk.swc (backend)

@cgascons
a bit OT but wow you're still using analytics.swc ?

you should definitively move to as3-universal-analytics

chris.campbell
Community Manager
Community Manager
April 6, 2018

Quick update.  From what we can tell, this is a recent change from Apple that we were unaware of, and we're working to correct AIR's behavior so that we no longer are in conflict with the deprecation's in question.  I'm hoping to have a private build available for those that would like to test it out ASAP, followed by a public beta release and then an official release (probably on May 8th).

We'll post back to this thread as soon as a private build is available for testing.

Thanks,

Chris

C.Auclair
Participating Frequently
April 5, 2018

Same issue today

Air 27

No ane

as3isolib

eDpLib

greensock

Participant
April 5, 2018

Same issue here:

com.distriqt.androidsupport.V4.ane

com.distriqt.Beacon.ane

com.distriqt.Compass.ane

com.distriqt.Core.ane

com.distriqt.Vibration.ane

marchbold
Inspiring
April 5, 2018

We don't use those APIs in our ANEs (distriqt) so this appears to be an issue with the AIR SDK.

Has anyone logged a bug on the Tracker? Tracker

air native extensions // https://airnativeextensions.com
Participant
April 5, 2018

We have the same issue. One of our apps was approved a week ago but in the latest update yesterday we got rejected. Its really bad because it was an update to fix a major bug.. I will dig into our ANEs but if it is an air SDK issue then it’s really bad. Maybe apple just changed their guidline regardig this. I guess that means that no AIR developer will no longer be able to publish on app store. I guess all previous air SDK would have the same issue as well?

breeze5_1
Participant
April 10, 2018

Hi all,

Olof Hart  wrote:

I guess that means that no AIR developer will no longer be able to publish on app store. I guess all previous air SDK would have the same issue as well?

Could anyone answer this?

We are using AIR SDK 21,  and would like to know it has same issue as well.

Regards,

Breeze

Participating Frequently
April 5, 2018

I have the same issue.

But I use Air 25 and the following Anes.

pl.mateuszmackowiak.nativeANE.NativeDialogs

com.milkmangames.extensions.EasyPush

Known Participant
April 4, 2018

We are in the same situation now as well. Just got rejected while trying to update one of our apps. This is the first time it’s been a problem. Did you ever get a resolution from Apple as there are no alternatives for us to use?