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
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.
Copy link to clipboard
Copied
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
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.
Copy link to clipboard
Copied
@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.
Copy link to clipboard
Copied
i tryed, failed too !
Copy link to clipboard
Copied
也许和这段代码有关:
NativeApplication.nativeApplication.systemIdleMode = SystemIdleMode.KEEP_AWAKE;
NativeApplication.nativeApplication.executeInBackground = true;
Copy link to clipboard
Copied
Hi LiLin000,
was your app accepted by Apple after you removed those 2 lines?
Copy link to clipboard
Copied
"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
Copy link to clipboard
Copied
I agree but a better channel communication between Adobe and Apple team would be a good way to avoid those situation.
Copy link to clipboard
Copied
我也刚提交给苹果审核,目前还没有结果
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
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.
Copy link to clipboard
Copied
Thanks @chris.campbell, I'm waiting for the private build eagerly!...
Copy link to clipboard
Copied
Thanks Chris!
Waiting for the private build.
Copy link to clipboard
Copied
Chris, took your SDK and submitted our client's app to Apple earlier today. It is now pending developer release - approved.
Thank you for the good work.
The app has no ANEs at all.
I've moaned about having to boot up XCode and navigate the advice for building the release, but it has worked.
Thank you.
Copy link to clipboard
Copied
at least we have a fix coming. will look forward to that
Copy link to clipboard
Copied
Hi Chris,
Could you please give the url of the release channel for those like me who don't know it yet ?
Best regards,
Matt
Copy link to clipboard
Copied
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.
Thanks,
Chris
Copy link to clipboard
Copied
Chris adamsin
Copy link to clipboard
Copied
Hi, chris.campbell Great news! Can we get fixed versions for other major AIR versions?, I need fix for AIR 28 - upgrading sdk version is risky
Copy link to clipboard
Copied
I added the SDK to animate CC and got..
"Your app is missing the asset catalog file in 'XXXXX.app'."
..scratches head..
Copy link to clipboard
Copied
Are you upgrading from an older AIR SDK? From AIR 28 you need to add the `Assets.car` package to your iOS app. AIR Native Extension Tutorials by airnativeextensions
Copy link to clipboard
Copied
..I'm not using any extensions. Why do I have no issues in Air 26, but in Air 29 I get this failure?
..scratches head. Again.
Why do I need to do this not Animate CC? If this wasn't an issue in Air 26, I'd like an Air 26 patch please..
Copy link to clipboard
Copied
Even if you don't have an ane you need to add a asset.car to your package. See the release note for air 28.
Copy link to clipboard
Copied
Well, a ton of us were using Air 26.0 - the highest Air release available with my install of Animate CC. Adobe is really going to annoy the heck out of the user base.
You: Adobe help! I can't release my app..
Adobe: No problem give this a go.. Air 29.
You: It doesn't work..
Adobe: Yes it does. We have a wonderful cross-development system. You used to push a button, now you can fire up Xcode and do a load of Pfaffing about there too.
I think I'd prefer to use Air 26.0 please.
Copy link to clipboard
Copied
If you don't want to use Xcode to generate the Assets.car file, you could try this website which generates an Assets.car file for you:
Generate ios、android app ICON and Assets.car online
You'll need to include that Assets.car file when you build your ipa, the same way you include your launch images for iOS.
I seriously doubt they'll be updating older versions of AIR to fix this issue, because starting this month Apple now requires all new apps to use the iOS 11 SDKs and support iPhone X resolution, which is only possible with AIR 28 or 29 (and which requires Assets.car for all future builds).