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:
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.
Copy link to clipboard
Copied
Can you list all the ANEs / libraries that you are using?
We are using
NativeGATracker
TestFairySDK
AND Distriqt GoogleAnalyticsTracker
com.distriqt.core
SystemVolumeNativeExtension
Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
I have the same issue.
But I use Air 25 and the following Anes.
pl.mateuszmackowiak.nativeANE.NativeDialogs
com.milkmangames.extensions.EasyPush
Copy link to clipboard
Copied
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?
Copy link to clipboard
Copied
Hi all,
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
Copy link to clipboard
Copied
Same issue here:
com.distriqt.androidsupport.V4.ane
com.distriqt.Beacon.ane
com.distriqt.Compass.ane
com.distriqt.Core.ane
com.distriqt.Vibration.ane
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
Same issue today
Air 27
No ane
as3isolib
eDpLib
greensock
Copy link to clipboard
Copied
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)
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
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
Copy link to clipboard
Copied
Great news Chris! Happy to help test a build, let us know when it's available.
Cheers
Copy link to clipboard
Copied
I think someone at Adobe should be lobbying Apple for a a couple of weeks grace to suspend rejection while Adobe updates Air.
Copy link to clipboard
Copied
Yes, would it be possible to canvas the borg to let apps slide on this issue for a few weeks until the AIR release is official? We just ran into this issue today and it's a showstopper of profound impact on our business.
Copy link to clipboard
Copied
wish the fix comes quickly
Copy link to clipboard
Copied
..so the problem for me is this.
Will I find myself in the same position in two weeks time with a very unhappy current client and not being able to publish apps for anyone, or will I find that in three days time there's a fix available?
If it's likely to take weeks to resolve this I'll re-do this as a native app.
I think a few people might be wondering the same thing.
The problem is that even if this is a problem of Adobe/Apple's making, my clients will just see this as me being unable to deliver while the guy that chose not to use Adobe technology is.
Copy link to clipboard
Copied
We can discuss why would you chose a particular technology for a project but in the end of the day we still have project on Adobe Air otherwise we wouldn't be here. So we better help everything will be fine on Air in the future.
On Apple side I hope Jobs's Fatwa is over.
Copy link to clipboard
Copied
I'm sure Adobe will solve this, but if it takes three weeks I will remake this as a native app and not look like a complete idiot to my client. Problem is that I can't tell what the reality is.
There are so many rough edges to Adobe Air, I can tell that the people who develop it don't actually bother to use it. I really wish Apple's development system ran on Android, for sure.
Copy link to clipboard
Copied
Thanks Chris, if you can let us know an approximate date for the public Beta, it would be much appreciated.
We're due to launch our new game at the end of this month, just wanna know if we should reschedule.
Copy link to clipboard
Copied
Hey Chris,
Thanks for the update. Please keep us updated as to when we can have the private version in hand.
Copy link to clipboard
Copied
Thanks @chris.campbell
Thanks for all! We are waiting to test a corrected version as soon as possible.
Copy link to clipboard
Copied
Hey Chris, I would like to test the private build ASAP. We have a critical app rollout due by the end of this week. Thanks.
Copy link to clipboard
Copied
Hi Chris, Thank you for looking into this. We would like to test the private build as soon as it becomes available. Thank you.
Copy link to clipboard
Copied
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.