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
Hi niestudio,
I copied the Assets.car file to src folder and getting the below error now while exporting the build.
Copy link to clipboard
Copied
I think the right location is the "bin" folder (the same place where the "xxx-app.xml" file is located).
Doesn't Flash Builder have a place to specify additional assets, anyway?
Copy link to clipboard
Copied
I could solve the Assets.car file issue. However getting a new issue while exporting the build. Can someone please help. Thanks.
Copy link to clipboard
Copied
Interesting, I don't have a bin folder, maybe that's why it works in my src folder.
Have you tried cleaning your project? Project > Clean…
This often helps when I see weirdness like that
Copy link to clipboard
Copied
Never mind, I got the issues resolved. Did a clean setup and everything worked as excepted.
However, I am unable to install the iOS build on a real device. I assume that's because of the provisioning profile issue. And workaround to the provisioning profile is below?
Workaround Steps:
1) Unzip the application IPA
unzip -q MyApp.ipa
2) Extract the current entitlements
codesign -d --entitlements :entitlements.plist "Payload/MyApp.app"
3) Delete the unsupported beta-reports-active entitlement
/usr/libexec/PlistBuddy -c "Delete :beta-reports-active" entitlements.plist
4) Remove the current signature
rm -rf "Payload/MyApp.app/_CodeSignature"
5) Sign the app using the updated entitlements. Make sure that your distribution certificate is in your keychain
codesign -f -s "<App ID>" --entitlements entitlements.plist Payload/MyApp.app
6) Zip the re-signed IPA. The new Ad Hoc app that you'll be able to install is MyApp-resigned.ipa
zip -qr MyApp-resigned.ipa Payload/
Copy link to clipboard
Copied
I have one last question. When I have to publish the app to App Store, am I going to use the original .ipa which was exported by Flash Builder or the one which I resigned for testing the .ipa on a real device?
Please suggest. With the provisioning profile workaround I could give out the .ipa for testing and we are ready to push the update to App Store.
Thanks!
Copy link to clipboard
Copied
I'm not sure, I opted to do the adhoc build with 112 and the app store build with 122 and upload it directly to testflight.
not the best workflow, but it worked for me.
cheers
Copy link to clipboard
Copied
niestudio OMA2k chris.campbell We use AppBlade for adhoc devices testing so I created a build with 122 did the signature change and uploaded the build to AppBlade and completed the testing. My question is which build do I upload to App Store the one without signature change or the one with signature change?
Copy link to clipboard
Copied
sashir82552880 wrote
niestudio OMA2k chris.campbell We use AppBlade for adhoc devices testing so I created a build with 122 did the signature change and uploaded the build to AppBlade and completed the testing. My question is which build do I upload to App Store the one without signature change or the one with signature change?
You don't need to change the signature for an "ipa-app-store" build. You can upload it with the Entitlements block so you can test with TestFlight, and then, when you're done, submit for review that very same build you just tested.
Copy link to clipboard
Copied
Amrita, the terse postings here about the issue aren't great.
I think developers would like to be reassured that the issue is properly understood and will be fixed in a timely fashion.
The tedious way to debug without ad-hoc distribution is testing via iTunes connect, but I guess that's only possible if the app is going to be released on the Appstore.
I hope that Adobe can loosen up on the communication and form a paragraph or two rather than a short sentence.
Copy link to clipboard
Copied
We are currently using AIR 25 to package our app, and got rejected for using the following private APIs:
UNLegacyNotificationTrigger, _IOPSCopyPowerSourcesInfo, _IOPSGetPowerSourceDescription, _IOPSCopyPowerSourcesList"
Is there a solution that doesn't include upgrading to air 29?
Copy link to clipboard
Copied
I'd be surprised if Adobe provided any solution for older Air versions. They haven't quite got Air 29 working correctly yet for Ad-hoc distribution.
I would backup your project and try and move to Air 29.
Copy link to clipboard
Copied
We have making client app using Adobe AIR 18 and submitted our to App store and its working fine for more than 2years but on recent updates we are unable to submit the App and its getting rejected due to Non Public API error which is given below. after which we tried using Adobe AIR 24 and Adobe AIR 29.0.0122 but both got rejected with same error, so try to give us some solution so that we can Post the App in App Store.
"" From Apple
2. 5 Performance: Software Requirements
Hello xxxxx,
We are writing to let you know the results of your appeal for your app.
The App Review Board evaluated your app and determined that the original rejection feedback is valid. Your app does not comply with:
Performance 2.5.1
We understand that you are taking steps to address the 2.5.1 issue, however, we still find that your app uses or references the following non-public APIs:
_IOPSCopyPowerSourcesInfo
_IOPSCopyPowerSourcesList
_IOPSGetPowerSourceDescription
To resolve this issue, it would be appropriate to update to the most recent version of Adobe Air, as Adobe has released an update for Adobe Air that removes the non-public API.
We hope you will consider making the necessary changes to be in compliance with the App Store Review Guidelines and will resubmit your revised binary.
Copy link to clipboard
Copied
Strangely, even if I knew there was an issue with AIR and iOS, I made a build with AIR 27 two days ago and it was approved yesterday. Someone had the same experience? Perhaps Apple changed something on their side?
I'm on Mac OS High Sierra 10.13.4, with Xcode 9.3 and AIR SDK 27.
The app uses Citrus Engine and many libs (Starling, Feathers, TweenMax...) and somes ANEs :
Copy link to clipboard
Copied
Apple review is a bit random.
Copy link to clipboard
Copied
Is there a way to overlay Flex and AIR SDK with provided 122 build? I use this instruction on Mac Overlay Adobe AIR SDK on Adobe Flex SDK | Adobe Flash Builder with AIRSDK_Compiler.dmg downloaded from Shared Files - Acrobat.com , but get errors during compilation like Error: Unable to locate specified base class 'spark.components.Application' for component class 'Main'.
Maybe I'm doing anything wrong?
Copy link to clipboard
Copied
Built with beta version 29.0.0.122 on Adobe Animate CC. Submitted to apple for review.
Will try to remember to post back here if it is all good, but if you hear nothing it's all gone well
Copy link to clipboard
Copied
New AIR 29 app has now been accepted by Apple (mine had 2 ANE’s).
Thanks for the quick turnaround @chris and adobe.
Regarding the Assets.cab. Its better for us to have a format Apple generate/approve. That way we don’t have to wait for an adobe air update when Apple require a new icon size.
Copy link to clipboard
Copied
Hi Developers,
App Store submission issue has been fixed. Please download the AIR SDK from Download Adobe AIR SDK. Kindly let us know in case you face any issues.
Thanks,
Ankit | Adobe AIR Engineering
Copy link to clipboard
Copied
I can't install AdHoc apps generated with this version.....
Thanks
Copy link to clipboard
Copied
Hello,
With the new SDK, it's no longer possible to install the app directly on a device during development phase.
The error message is :
Install failed!
Install error message:
Installation Error: ApplicationVerificationFailed.
(we use FDT to develop and publish apps).
Copy link to clipboard
Copied
We are also seeing that problem:
Apr 13 08:19:11 iPad installd[48] <Notice>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Installing <MIInstallableBundle ID=***; Version=***, ShortVersion=***>
Apr 13 08:19:11 iPad profiled[120] <Notice>: (Note ) MC: Provisioning profiles changed
Apr 13 08:19:11 iPad securityd[88] <Error>: secTaskDiagnoseEntitlements MISSING keychain entitlements: no stored taskRef found
Apr 13 08:19:11 iPad installd[48] <Error>: SecTrustEvaluate [leaf IssuerCommonName SubjectCommonName]
Apr 13 08:19:11 iPad profiled[120] <Notice>: (Note ) MC: Updating MIS trust...
Apr 13 08:19:12 iPad installd[48] <Notice>: MIS: entitlement 'aps-environment' has value not permitted by provisioning profile '***'
Apr 13 08:19:12 iPad installd[48] <Error>: 0x16e12f000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 142: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.4pCMjg/extracted/Payload/***.app : 0xe8008016 (The executable was signed with invalid entitlements.)
Apr 13 08:19:12 iPad installd[48] <Error>: 0x16e12f000 -[MIInstaller performInstallationWithError:]: Verification stage failed
Apr 13 08:19:12 iPad mobile_installation_proxy[174] <Error>: 0x16e247000 __MobileInstallationInstallForLaunchServices_block_invoke222: Returned error Error Domain=MIInstallerErrorDomain Code=13 "Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.4pCMjg/extracted/Payload/***.app : 0xe8008016 (The executable was signed with invalid entitlements.)"
Copy link to clipboard
Copied
I am using Flash Builder 4.7.
Today, I downloaded AIR SDK 29.0.0.122 from the offical page - https://www.adobe.com/devnet/air/air-sdk-download.html.
I applied air sdk 29 as normal and built the binary (.ipa) using air 29.0.0.122.
I built ipa as adhoc but can not installed on the device.
When ipa was built as adhoc with air 27 or 28, it was successfully installed on the device.
What's wrong?
Please let me know how to solve it.
Where can I download air 29.0.0.112?
Can app built with 29.0.0.112 be approved by Apple ?
Copy link to clipboard
Copied
Using the Air 29.0.0.122 version of the SDK & a certificate for distribution, debugging is not possible with the following error.
[iOS 11.2.6]
Error occurred while installing the application:
Installation Error: APIInternalError.
[iOS 9.3.5]
Error occurred while installing the application:
Installation Error: ApplicationVerificationFailed.
There is no error when packaging as a release build(adhoc, distribution), but it can not be installed on a device.
# I used iFunbox.(iOS 9.3.5 : -402620394, iOS 11.2.6 : -402653081)
# Using a certificate for development and a provisioning file is fine.
However, using version Air 29.0.0.112 has no problem.
# I tested it with a basic Flex mobile project provided by Flash Builder.(no ane, no swc)
Thanks.
Copy link to clipboard
Copied
I tested ipa built with a certificte and provisioning for development using air 29.0.0.122.
I tried to install ipa for development on the device - iPhone 6 Plus ( ios 10.2 ) and iPhone X ( ios 11.1.2 )
but failed to install.
The console log is the following.
Please help me!
I have a big issues in my game but am not updating it.
기본 21:02:41.615742 +0900 installd entitlement '<private>' has value not permitted by provisioning profile '<private>'
기본 21:02:41.615862 +0900 installd entitlement '<private>' has value not permitted by provisioning profile '<private>'
기본 21:02:41.616187 +0900 installd 0x16f10f000 +[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:]: 147: Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.n9JRdT/extracted/Payload/*****.app : 0xe8008016 (The executable was signed with invalid entitlements.)
기본 21:02:41.616274 +0900 installd 0x16f10f000 -[MIInstaller performInstallationWithError:]: Verification stage failed
기본 21:02:41.616749 +0900 assertiond Client relinquished <BKTerminationAssertion: 0x104300540; "FBSApplicationTerminationAssertion" (Unconditional); 49:(null) id:…2D89E200EBE2>
기본 21:02:41.616868 +0900 assertiond -[BKAssertion dealloc] - <0x104300540>
기본 21:02:41.661295 +0900 installd *****.*****.*****:7:5:2:0:Fail (End) : Install (New)
기본 21:02:41.661833 +0900 lsd (null):5:1:2:0:MobileInstallation returned nil for file:///var/mobile/Media/PublicStaging/*****.ipa/
기본 21:02:41.662326 +0900 mobile_installation_proxy (null):5:1:2:0:_LSInstallationManager install:withError finished
기본 21:02:41.662680 +0900 mobile_installation_proxy Connection invalidated to installationCallbackInterface
기본 21:02:41.662782 +0900 mobile_installation_proxy 0x16b2cb000 handle_install: Installation failed: Error Domain=MIInstallerErrorDomain Code=13 "Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.n9JRdT/extracted/Payload/*****.app : 0xe8008016 (The executable was signed with invalid entitlements.)" UserInfo={LibMISErrorNumber=-402620394, LegacyErrorString=ApplicationVerificationFailed, SourceFileLine=147, FunctionName=+[MICodeSigningVerifier _validateSignatureAndCopyInfoForURL:withOptions:error:], NSLocalizedDescription=Failed to verify code signature of /private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.n9JRdT/extracted/Payload/*****.app : 0xe8008016 (The executable was signed with invalid entitlements.)}