airsdk / Adobe-Runtime-Support

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

iOS 13 Undefined symbols for architecture arm64 #235

Open rajeshadc opened 4 years ago

rajeshadc commented 4 years ago

Exact error message as below: Undefined symbols for architecture arm7: "_UISceneDidDisconnectNotification", referenced from: _block_invoke in lAirAdColony.a ld: symbol(s) not found for architecture arm7 Compilation failed while executing : ld64

Using Adobe flex SDK: 33.0.2.338 Mac os version: 10.14.5 Xcode version: 11.2.1 iOS : 13

I am trying to build the universal IPA but its giving above error.

tuarua commented 4 years ago

SDK: 33.0.2.338 is built against iOS 12.1 UISceneDidDisconnectNotification was added in iOS 13 https://developer.apple.com/documentation/uikit/uiscenediddisconnectnotification

So you can't use APIs marked as 13.0+ with an older SDK 12.1

Try using latest AIR Beta which has been compiled against 13.0

marchbold commented 4 years ago

Or alternatively try providing a version of the iOS SDK via the platformsdk packaging option.

(some more information here: https://airnativeextensions.github.io/tutorials/iOS-SDK)

rajeshadc commented 4 years ago

I tried using beta build but also giving the errors for android and iOS both as below: Android error: "Unsupported platform: '-platform Android-ARM64'. Must be one of [default, Android-ARM, Android-x86, iPhone-ARM, appleTV-ARM, appleTV-x86, iPhone-x86, MacOS-x86, MacOS-x86-64, Windows-x86, Windows-x86-64]" Even-though adding the armv8 setting in the adt.cfg file.

iOS error: "framework not found CoreServices for architecture armv7 Compilation failed while executing : ld64"

I can't use the packaging option as I need the ANE supported with iOS-13.

rajeshadc commented 4 years ago

Any comments on the above errors with the beta version? Also, can you let us know ETA for the new Adobe air release with ios-13 support?

ajwfrost commented 4 years ago

Hi @rajeshadc

On the error with the "unsupported platform" Android-ARM64, what are you actually doing there? This is something I'd only expect to see when creating an ANE.. but with AIR 33.x you shouldn't see that listed as an unsupported platform, sounds like something fundamental is wrong. If you just run "adt" on its own, what do you see under the 'ARCH_OPTIONS' list? And if you run the below command, you should see that list of ANE platforms: adt -package -target ane bob application.xml -platform bob Worth then double-checking: adt -version

On the iOS issue: what do you get from running the below command: file [SDK_PATH]/lib/aot/stub/CoreServices.framework/CoreServices

We had a few issues raised by QA last week when putting together the new AIR SDK release but it should be out this week...

thanks

rajeshadc commented 4 years ago

@ajwfrost Thanks for the quick reply. I think I have resolved the issues with the beta for both android and iOS. Those issues were occurring because the old flex SDK and beta flex SDK didn't merge properly. I will let you know if any error occurs while testing the apps.

rajeshadc commented 4 years ago

@ajwfrost I was trying to test the Android and iOS apps but both apps are not working. They are crashing on the app launch and showing notification as "Adobe AIR Beta Release. Not for distribution." So, is that mean apps don't work with beta air SDK?

ajwfrost commented 4 years ago

@rajeshadc that's probably version 33.1.0.37 ..? yes we had a major issue on that if you didn't have a license file in place.. please try with the latest beta which is 33.1.0.43, it should work with that version I trust!

rajeshadc commented 4 years ago

@ajwfrost I am using - Adobe AIR Pre-Release [BETA] - version 33.1.0.43. Even though I am getting the same error. Anyways, I will check with a production release build once your team will release the build. Please let me know once you release the 33.1.0.0 version.

ajwfrost commented 4 years ago

@rajeshadc Crashing on launching with 33.1.0.43 is unexpected! We'll be pushing out the official 33.1 release shortly (was hoping to tie it in with a website update but that part may be a little delayed) so please try again with that, if you still get it crashing then we could take a look with your app or send in the logcat output from Android?

thanks

rajeshadc commented 4 years ago

I just want to confirm here I'm overriding the beta flex SDK 33.1.0.45 with the existing Flex SDK. this way is correct, right?

ajwfrost commented 4 years ago

@rajeshadc hmm... terminology needs to be clarified! We don't provide a Flex SDK, we provide the AIR SDK. If you're using Flex then you probably already have a Flex SDK that can be downloaded from Adobe (4.6 and earlier) or Apache (most recent is 4.16 I think). And once you have that SDK, then you can download the "AIR SDK for Flex developers" which is basically our SDK with the new compilers removed, so that you can continue using the Flex compiler (special cases to generate the glue code needed by Flex apps).

So it may be that you're just doing this the wrong way round. Start with the Flex SDK from Adobe/Apache, and then extract the AIR SDK for Flex developers over the top of this (on a Mac this can't just be done by simple copying apparently as that would replace the whole contents of a folder rather than doing a deep copy/replace just of the files within it..)

One day I'd like to make this update/merge process a whole lot easier..!!

ajwfrost commented 4 years ago

@rajeshadc are you okay to download the latest release and trying this again? We just pushed out 33.1.. thanks

rajeshadc commented 4 years ago

@ajwfrost Thanks for the updates. I tried with the newly released Adobe Air SDK 33.1.1.50 for flex. IPA and APK are generated successfully(using script) but after installing it in the devices and launching the app, it is getting crashed or showing a black screen. I have overridden/merged the Adobe Air SDK to the existing 'apache-flex-sdk-4.16.1-bin'. I am using mac os v10.15.3. I am not sure, is that merged correctly or not? but APK and IPA generated successfully. For Android error logs are: I/air.com.adcolony.ADCTestAA: VerifyError: Error #1053: Illegal override of Transform in mx.geom.Transform. I/air.com.adcolony.ADCTestAA: at spark.primitives.supportClasses::GraphicElement/validateProperties()[D:\flex_sdk\Sources\flex-sdk\frameworks\projects\spark\src\spark\primitives\supportClasses\GraphicElement.as:3546] I/air.com.adcolony.ADCTestAA: at spark.components::Group/validateProperties()[D:\flex_sdk\Sources\flex-sdk\frameworks\projects\spark\src\spark\components\Group.as:938] I/air.com.adcolony.ADCTestAA: at mx.managers::LayoutManager/validateProperties()[D:\flex_sdk\Sources\flex-sdk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:601] I/air.com.adcolony.ADCTestAA: at mx.managers::LayoutManager/doPhasedInstantiation()[D:\flex_sdk\Sources\flex-sdk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:787] I/air.com.adcolony.ADCTestAA: at mx.managers::LayoutManager/doPhasedInstantiationCallback()[D:\flex_sdk\Sources\flex-sdk\frameworks\projects\framework\src\mx\managers\LayoutManager.as:1191]

For iOS logs: I can't find iOS logs as it was obfuscated.

Can you please help with this?

ajwfrost commented 4 years ago

@rajeshadc So that part is a problem we just found out about, where Flex overrides the Transform class and the runtime doesn't like an override that doesn't exactly match the initial function signature... We are debating the best approach here:

  1. revert the geometry APIs and provide the object-pooling capabilities via a new set of functions vs
  2. just allow these overrides within the runtime. This is simple, but may not be the cleanest approach when we look at interoperability with Flex..

So please hold off and we'll drop a new SDK within the next couple of days.. apologies for this!

rajeshadc commented 4 years ago

@ajwfrost Thanks for updates. I will be waiting for the new SDK release.

rajeshadc commented 4 years ago

@ajwfrost is the new SDK released with the fix of the mentioned issue above?

ajwfrost commented 4 years ago

Hi @rajeshadc - yes, the Transform classes were reverted such that Flex apps work with the 33.1.1.63 release, with a caveat on iOS that that AOT process can cause an issue. There's a patch file on issue #258 that should help with that though..

rajeshadc commented 4 years ago

@ajwfrost I have tried to build the Android APK and iOS IPA both built successfully with latest Air SDK. But in case of Android apk it is only generated with arm64-v8a architecture folder in it, not arm7. So apk is unable to install on the arm7 architecture devices. Getting following error : INSTALL_FAILED_NO_MATCHING_ABIS. is this only support 64 bit arch from now? or I am doing something wrong while building the APK?

ajwfrost commented 4 years ago

For Android, we can only build single-architecture APK files. So you'll need to create an APK with ARMv7 support, then increment the version number slightly and generate one for ARMv8. These can then be uploaded together to the Play Store.

thanks

rajeshadc commented 4 years ago

ANE will remain the same right in both the scenario?

ajwfrost commented 4 years ago

Yes assuming the ANEs are packaged correctly with both 64- and 32- bit versions, which they generally all are now (with the exception of Milkman which aren't updated to 64- bit).

The APK creation process within ADT looks inside the ANE file and picks out the bits that it needs...

thanks

rajeshadc commented 4 years ago

Thanks, @ajwfrost for your valuable help.