New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Failure when delivering .ipa- ITMS-90338: Non-public API usage #2911
Comments
Hi Do they give a list of "private Apple APIs" there? it mentioned there may be a list above this? FYI there was no update at all in any of the iOS code between 50.2.3.6 and 50.2.3.7/50.2.3.8 - the only differences would likely come from the fact that we switched over to using the LLVM linker rather than the Apple one. But it may also be related to how the applications are packaged with reference to the Apple SDKs .. Can you please confirm:
thanks |
Hi :)
|
Okay thanks, this could be a pain... Would you be able to try something please? If you open up a terminal window and
Then if you build your IPA file again, and submit it, I would be interested in the result... And it would then also be ideal if you were able to send us both IPA files so that we can compare the outputs of the LLVM-based linker (that you'd used originally) and the 'classic' LD64 linker from Apple. Let me know if you need an upload link sent over.. thanks |
(with 50.2.3.8 + Xcode15) When I built using the above method, there were no issues on submission! |
That's kind of good to hear, but implies we have an issue with the LLVM linker that Apple are spotting.. thanks |
Okay, I sent the file via your link. |
Thanks .. there's quite a few differences between those executables! In terms of symbols.. the ld64-based one has loads of extra symbols in there! And that's the one generated by Apple, so I'm a little surprised that the llvm-based one is being rejected. The Apple message seemed to suggest there could be one of two things wrong:
Presumably (1) is something that can be eliminated by just running the IPA manually, can I check that this does actually work for you? Which may mean it's down to (2), although given the symbols that we can see there, I don't know what they may be finding that's "private" -> is there a way to ask them for more information on this? We'll do a bit more digging here to see if we can minimize the differences in output between the linkers, but without knowing exactly what we're aiming for, it may be tricky! thanks |
: Sure. I installed IPA(failing version) directly from a USB connection to my device and had no problems running it.
: I'm not sure, but I'll give it a try. |
I have same problem Air SDK : 50.2.3.7 |
same here.. tks guys :) |
Same issue with Air sdk 50.2.3.8 on Windows |
Okay so we'll have to switch ADT on macOS so that it tries using ld-classic as the preference. Something is obviously up with the output of these LLVM builds, we'll see if we can work that out in order to get Windows-built binaries to be acceptable to Apple... |
Some good news (finally!) -> Apple have updated their open source code which means we can start looking at building this for Windows.... From experience, I don't think this is going to be a quick task, so we'll go with the short term fix to make the binaries build with ld-classic on macOS, and then get this released as soon as possible... thanks |
Thanks a lot @ajwfrost so just make sure I got it right: this issue (Non-public API usage) can't be solved now and we need to wait for the upcoming release ? and compiling on a mac also has this issue ? |
@idanasher if you're distributing through the App Store, then yes it seems we have this problem - on our Windows build we don't really have a workaround, unless your binary doesn't need any Xcode 14 based frameworks, in which case we should be able to get things working with the earlier ld64 executable that Adobe created. On macOS, we are switching back to using the Apple-deployed linker, so for 50.2.3.x you can apply the workaround in the SDK to link ld64 to the ld-classic binary from Xcode 15, see above (#2911 (comment)) 50.2.4.1 is coming out shortly which automatically uses ld-classic on macOS. For a proper solution for Windows though, yes it's going to take a bit of time to get the Apple ld64 version working.. thanks |
Thanks Andrew. on my mac, with AIR 50.2.3.8. have not implemented the above workaround yet, Should I perform the workaround or maybe it is another issue I have ? I use all latest ane's from distriqt. |
Are you using the latest Animate for this by any chance? We've found an issue with their 2024 update which is screwing up the code signatures... can you check your adt.log file (or run the AIR SDK Manager with "Troubleshooting" tab..) thanks |
Yes, im using Adobe Animate 2024. |
Ah okay .. so the workaround hopefully is to open the Keychain Access app (not the passwords thing!), select the "login" keychain on the left and "My Certificates" tab, and then File -> "Import items..." - then browse for and import the certificate file that you used for signing within Animate (presumably a .p12 file). It should ask for your certificate's store password, but once that's done, it should appear in that list with a '>' character to indicate it's got the private key in the keychain store. Basically - Animate 2024 switched to a later JRE which means our internal codesigning doesn't work, we then use the 'native' codesign app on the macOS machine, and despite you giving it a .p12 file, it needs to have the certificate present with the local keychain in order to sign it. Once you've done the import, you may then see a request for your login password so that Animate/ADT can access your keychain store to use this to sign the IPA. Convoluted, sorry! We are looking at how we can work around this better... |
Hi @ajwfrost on my mac, I have removed Animate 24 and installed Animate 23.0. |
Hmm.. it's definitely "ell dee sixtyfour" rather than a one or an "i" character? Worth checking what you get from a terminal with that - and did you copy/paste in the path to ld-classic from the instructions, or did you find it on the local machine? It assumes you have Xcode 15 installed in a normal path.. Try from a terminal:
Or of course, update to 50.2.4.1 where this should be resolved... thanks |
Answering your questions:
I am now downloading 50.2.4.1 and I will try with it now. (and let you know) Btw, How can I be notified when a new air version is released ? Thanks |
Ah - so with Xcode 14.3 it's enough to link to "ld" rather than "ld-classic"
If you go to https://github.com/airsdk/Adobe-Runtime-Support/discussions, there's a pinned post at the top left "AIR SDK Announcements", where we put a new message each time we release. But the simplest thing is to get hold of the AIR SDK Manager which will check for updates when it's opened... |
Problem Description
After updating the Air SDK and uploading the .ipa, I received the following email from Apple.
Any help in resolving this problem would be appreciated.
Known Workarounds
Downgrade to Air SDK to 50.2.3.6
The text was updated successfully, but these errors were encountered: