airsdk / Adobe-Runtime-Support

Report, track and discuss issues in Adobe AIR. Monitored by Adobe - and HARMAN - and maintained by the AIR community.
200 stars 11 forks source link

AIR 50.2.5.1 "Asset validation failed" on TestFlight iOS #3230

Open GemeXP opened 4 months ago

GemeXP commented 4 months ago

Hello I updated my AIR SDK to version 50.2.5.1 (since Apple requires SDK version 17) and after that I get an error when I try to send the application to TestFlight. Can you please tell me what is going wrong? Tried using 50.2.4.1 - same error. There is no such error when using version 50.2.3.4 I am assembling a build on Windows 10, I found the same problem and this was solved by assembling on an iMac, but unfortunately I do not have the opportunity to compile on it. https://github.com/airsdk/Adobe-Runtime-Support/issues/2375#issuecomment-1911660666

{

 NSLocalizedDescription = "Asset validation failed";

 NSLocalizedFailureReason = "The app contains one or more corrupted binaries. Rebuild the app and resubmit. (ID: 09ca79cf-032f-4aff-8421-4d8c4ebe6f95)";

 "original_server_error" =     {

     code = "STATE_ERROR.VALIDATION_ERROR.10";

     detail = "The app contains one or more corrupted binaries. Rebuild the app and resubmit.";

     id = "09ca79cf-032f-4aff-8421-4d8c4ebe6f95";

     status = 409;

     title = "Asset validation failed";

 };

}

ajwfrost commented 4 months ago

Hi

Just to confirm: you are getting this message with an IPA build that's created with AIR SDK 50.2.5.1 and 50.2.4.1, but it is accepted if you use 50.2.3.4...

But for all of these, are you just using a Windows machine? I wasn't quite sure on your comment re the possibility of packaging on a mac..?

FYI our relevant updates around this area are likely to be:

So basically your build is accepted on Windows if using the Adobe "ld64" linker which kind of makes sense; the only issues is that this doesn't cope with some of the third party libraries used in ANEs, plus there may be instabilities on older iOS versions if using symbols that have moved between different dylibs across different iOS releases.

I'm not sure why the Apple servers think it's corrupted when built with LLVM's linker but we've seen similar/related kinds of issues from them checking the binaries. But we're looking to support Windows builds by having them carry out the final linker step on a mac, if you don't have a mac available then we had been looking at whether hosted services could support this, but that may not be the cheapest option..

If you wanted to take the risk of those issues using the older Adobe ld64 binary, then it should be possible to just copy the "ld64.exe" binary from the older (50.2.3.4) release over the top of the LLVM ld64 binary in 50.2.5.1 etc. This could work fine, but it depends really on what ANEs you've got. The file is in path "lib/aot/bin/ld64/".

thanks

GemeXP commented 4 months ago

Just to confirm: you are getting this message with an IPA build that's created with AIR SDK 50.2.5.1 and 50.2.4.1, but it is accepted if you use 50.2.3.4...

Yes, if I try to build an IPA using AIR SDK 50.2.4.1 or 50.2.5.1 then TestFlight returns the error - "The app contains one or more corrupted binaries. Rebuild the app and resubmit."

We used AIR SDK 50.2.3.4 and everything worked well, but now TestFlight returns an error - "SDK version issue. This app was built with the iOS 16.4 SDK. All iOS and iPadOS apps must be built with the iOS 17 SDK or later"

But for all of these, are you just using a Windows machine? I wasn't quite sure on your comment re the possibility of packaging on a mac..?

Yes, I’m building IPA on my computer with Windows 10. I don’t have a Mac OS.

If you wanted to take the risk of those issues using the older Adobe ld64 binary, then it should be possible to just copy the "ld64.exe" binary from the older (50.2.3.4) release

I tried this. The build fails with an error -"ld: unknown option: -platform_version". "Compilation failed while executing : ld64"

Could this be related to the version of Windows? Is it worth trying, for example, to build via Windows 11? What version of Windows are you using?

ajwfrost commented 4 months ago

Ah I see...

I don't know whether it's related to Windows versions at all, I think it's more about the LLVM linker and the binaries that are used in terms of the AIR runtime and ANE libraries etc...

So I suspect we need to make some adjustments so that people can have all the options and configure things as needed...

This will have to be a new release...