Copy link to clipboard
Copied
Firstly many thanks for AIR 31 Beta. I am glad I am able to run on iOS12 Beta.
Problem Description:
When I use Xcode10 beta to compile with iOS 12 beta SDK I receive compile errors
Steps to Reproduce:
Compile basic Hello World AIR app for iOS 12 beta using Xcode 10 beta 5 and the switch: -platformsdk /Applications/Xcode-beta.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
Actual Result:
ld: library not found for -lstdc++
ld: library not found for -lstdc++
Compilation failed while executing : ld64
If I copy + replace ld from
/Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin
to
/AIRSDK_31Beta/lib/aot/bin/ld64/ld64 I receive the following error:
dyld: Library not loaded: @rpath/libtapi.dylib
Referenced from: /Users/xxxxx/SDKs/AIRSDK_31B/lib/aot/bin/ld64/ld64
Reason: image not found
I have attempted to copy libtapi.dylib from xctoolchain to several folders under the AIRSDK but I still receive the image not found
Expected Result:
I can use -platformsdk switch to compile using Xcode 12 beta
Any Workarounds:
None Known
I have added same bug the the issue tracker https://tracker.adobe.com/#/view/AIR-4198714
Copy link to clipboard
Copied
Awesome, thanks!
Also does that mean that AIR is going to be compiled against IOS 12 SDK?
Copy link to clipboard
Copied
Hello Everyone,
The beta is now live (Adobe AIR 32 Beta | application development - Adobe Labs ) and we would love to hear feedback from all of you. Thanks for your patience.
Regards,
Rohit
Copy link to clipboard
Copied
Unfortunately AIR 32 give an invalid input error, most likely because of out of date ANEs. Updating the ANEs leads to a ton of errors to do with those ANEs. It may take some time to fix those errors before being able to see if the platform switch side of things is improved.
Copy link to clipboard
Copied
Hi Rohit Guglani
I'm afraid there is very little that is actually working with this Beta.
Xcode Version 10.1 (10B61)
OSX Mojave 10.14
Simulator
ld: unexpected token: !tapi-tbd-v3 file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/usr/lib/libc++.tbd' for architecture x86_64
Compilation failed while executing : ld64
ADT command line:
/Users/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/183.4284.36/IntelliJ IDEA 2018.3 EAP.app/Contents/jdk/Contents/Home/jre/bin/java -Dapplication.home=/Users/SDKs/AIRSDK_32 -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx2048m -jar /Users/SDKs/AIRSDK_32/lib/adt.jar -package -target ipa-debug-interpreter-simulator -storetype PKCS12 -keystore /Users/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/183.4284.36/IntelliJ IDEA 2018.3 EAP.app/Contents/plugins/flex/lib/temp_keystore.p12 -storepass /Users/flash/AIR32-TEST/out/production/AIR32-TEST/Main.ipa /Users/flash/AIR32-TEST/out/production/AIR32-TEST/Main-app.xml -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk -C /Users/flash/AIR32-TEST/out/production/AIR32-TEST Main.swf
If I replace ld64 in AIR with the one from Xcode I get this error instead:
An error was encountered processing the command (domain=com.apple.CoreSimulator.SimError, code=164):
Unable to boot device in current state: Booted
Device
When building and packaging with Swift dynamic Frameworks, they are not being signed correctly.
Swift Libraries are v4.2.1 from Xcode10.1
Termination Description: DYLD, Library not loaded: @rpath/libswiftCore.dylib | Referenced from: /private/var/containers/Bundle/Application/5EA277A6-87D8-477F-8760-B352180CCEC9/FreSwiftExample.app/Frameworks/FreSwift.framework/FreSwift | Reason: no suitable image found. Did find: | /private/var/containers/Bundle/Application/5EA277A6-87D8-477F-8760-B352180CCEC9/FreSwiftExample.app/Frameworks/libswiftCore.dylib: code signature invalid for '/private/var/containers/Bundle/Application/5EA277A6-87D8-477F-8760-B352180CCEC9/FreSwiftExample.app/Frameworks/libswiftCore.dylib' | /private/var/containers/Bundle/Application/5EA277A6-87D8-477F-8760-B352180CCEC9/FreSwiftExample.app/Frameworks/libswiftCore.dylib: code signature invalid for '/private/var/containers/Bundle/Application/5EA277A6-87D8-477F-8760-B352180CCEC9/FreSwiftExample.app/Frameworks/libswiftCore.dylib'
Triggered by Thread: 0
Device with -platformsdk
ld: unexpected token: !tapi-tbd-v3 file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture arm64
ld: unexpected token: !tapi-tbd-v3 file '/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture armv7
Compilation failed while executing : ld64
ADT command line:
/Users/Library/Application Support/JetBrains/Toolbox/apps/IDEA-U/ch-1/183.4284.36/IntelliJ IDEA 2018.3 EAP.app/Contents/jdk/Contents/Home/jre/bin/java -Dapplication.home=/Users/SDKs/AIRSDK_32 -Dfile.encoding=UTF-8 -Djava.awt.headless=true -Duser.language=en -Duser.region=en -Xmx512m -jar /Users/SDKs/AIRSDK_32/lib/adt.jar -package -target ipa-debug-interpreter -listen 7936 -storetype PKCS12 -keystore xxx.p12 -storepass -provisioning-profile xxx /Users/flash/Swift-IOS-ANE/framework_src/example-ios/bin-release/device/FreSwiftExample.ipa /Users/flash/Swift-IOS-ANE/framework_src/example-ios/bin-release/device/Main-app.xml -platformsdk /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk -extdir /Users/flash/Swift-IOS-ANE/framework_src/native_extension/ane -C /Users/flash/Swift-IOS-ANE/framework_src/example-ios/bin-release/device Main.swf -C /Users/flash/Swift-IOS-ANE/framework_src/example-ios/ios_dependencies/device . -C /Users/flash/Swift-IOS-ANE/framework_src/example-ios/system . -C /Users/flash/Swift-IOS-ANE/framework_src/example-ios/src Assets.car
Copy link to clipboard
Copied
Re: Swift Libraries
Here is the difference between 4.1.2 and 4.2.1 compiling app using AIR32
Swift 4.1.2 (Correct)
codesign -dv --verbose=4 Payload/*.app/Frameworks/libswiftCore.dylib
Executable=/Users/flash/WebViewANE/example-mobile/bin-release/device/Payload/WebViewANESampleMobile.app/Frameworks/libswiftCore.dylib
Identifier=com.apple.dt.runtime.swiftCore
Format=Mach-O universal (armv7 arm64)
CodeDirectory v=20200 size=108114 flags=0x0(none) hashes=5396+5 location=embedded
Hash type=sha1 size=20
CandidateCDHash sha1=9c9920d7b0c62bc713f6942d2a85c26a11d3f0af
Hash choices=sha1
Page size=4096
CDHash=9c9920d7b0c62bc713f6942d2a85c26a11d3f0af
Signature size=4323
Authority=iPhone Developer: Xxxx Xxxx (XXXXXXXXX)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=22 Nov 2018 at 00:15:02
Info.plist entries=5
TeamIdentifier=ZZZZZZZZZZ
Sealed Resources=none
Internal requirements count=0 size=12
Swift 4.2.1 (code signature invalid)
codesign -dv --verbose=4 Payload/*.app/Frameworks/libswiftCore.dylib
Executable=/Users/flash/Swift-IOS-ANE/framework_src/example-ios/bin-release/device/Payload/FreSwiftExample.app/Frameworks/libswiftCore.dylib
Identifier=com.apple.dt.runtime.swiftCore
Format=Mach-O universal (armv7 arm64)
CodeDirectory v=20200 size=109794 flags=0x0(none) hashes=5480+5 location=embedded
Hash type=sha1 size=20
CandidateCDHash sha1=23ef20561a724732c579bb0b9dac3b7f9cc23a94
Hash choices=sha1
Page size=4096
CDHash=23ef20561a724732c579bb0b9dac3b7f9cc23a94
Signature size=4323
Authority=iPhone Developer: Xxxx Xxxx (XXXXXXXXX)
Authority=Apple Worldwide Developer Relations Certification Authority
Authority=Apple Root CA
Signed Time=22 Nov 2018 at 00:10:35
Info.plist=not bound
TeamIdentifier=ZZZZZZZZZZ
Sealed Resources=none
Internal requirements count=0 size=12
Copy link to clipboard
Copied
Hello el111
Have you tried the workaround mentioned for this error in release notes? Kindly let us know if you are able to reproduce the issue after replacing the ld64 file.
Regards,
Rohit
Copy link to clipboard
Copied
Hi Rohit Guglani
I get the same Swift signature issue using either ld64 included with AIR or swapping out with the one from Xcode
eg rename and them symlink
ln -s /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/ld /Users/SDKs/AIRSDK_32/lib/aot/bin/ld64/ld64
Here is using code sign -vv if I unzip the .ipa and cd to /Frameworks
codesign -vv libswiftCore.dylib
libswiftCore.dylib: invalid Info.plist (plist or signature have been modified)
In architecture: armv7
For historical reference the same thing was observed last year with trying to use swift 4 with AIR beta27.
See post 09/15/2017 19:14:34 GMT
Copy link to clipboard
Copied
Another issue being widely reported is missing _OBJC_EHTYPE_$_NSException symbol when including several 3rd party static frameworks.
This occurs when not setting platformSDK and not using Xcode's ld64
Looks like some private symbols from iOS12 SDK have not been carried over to AIR SDK
Undefined symbols for architecture armv7:
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table6 in FirebaseInstanceID(FIRInstanceIDTokenStore_9d0fbb0494853cdb5d8ac8e6bc99de59.o)
GCC_except_table6 in FirebaseInstanceID(FIRMessagingLog_59180b86a65cd659f592b491157a6262.o)
GCC_except_table2 in FirebaseInstanceID(FIRInstanceIDTokenInfo_c5739a7ba2b0f73df4249014a5adc4c9.o)
GCC_except_table33 in GoogleAppMeasurement(APMSqliteStore_accbeb7e8050488930d8ca5cfb9fd467.o)
GCC_except_table3 in GoogleAppMeasurement(APMScheduler_00cddc24f09fb96f6db6c45de86abff9.o)
GCC_except_table7 in GoogleAppMeasurement(APMScheduler_00cddc24f09fb96f6db6c45de86abff9.o)
GCC_except_table40 in GoogleUtilities(GULAppDelegateSwizzler.o)
Undefined symbols for architecture armv7:
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table47 in Bolts(BFTask.o)
GCC_except_table1 in FBSDKShareKit(FBSDKLikeActionController.o)
ld: symbol(s) not found for architecture armv7
Undefined symbols for architecture arm64:
"_OBJC_EHTYPE_$_NSException", referenced from:
GCC_except_table47 in Bolts(BFTask.o)
GCC_except_table1 in FBSDKShareKit(FBSDKLikeActionController.o)
ld: symbol(s) not found for architecture arm64
Compilation failed while executing : ld64
Copy link to clipboard
Copied
Hello,
These errors are related to latest changes made by Apple. To fix these error you need to repackage the ANE with latest AIR SDK.
If errors shown are related to libstd++ you would need to recompile the ANE.
Regards,
Rohit
Copy link to clipboard
Copied
The error doesn't seem related to the library change from stdc++ to c++, but to a missing object type.
As I mentioned in the starling forum:
Using the AIR 32 beta causes:
Undefined symbols for architecture arm64: "_OBJC_EHTYPE_$_NSException", referenced from: GCC_except_table0 in ...
Attempting to link against the 12.1 iOS SDK causes (eg from here😞
ld: unexpected token: !tapi-tbd-v3 file '/Users/marchbold/work/sdks/ios/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture arm64 ld: unexpected token: !tapi-tbd-v3 file '/Users/marchbold/work/sdks/ios/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture armv7 Compilation failed while executing : ld64
Updating the linker alone, still causes:
Undefined symbols for architecture arm64: "_OBJC_EHTYPE_$_NSException", referenced from: GCC_except_table0 in ...
Then updating the linker AND using the 12.1 iOS SDK is successful.
So I suspect the beta has an old linker and missing some of the iOS frameworks.
I started replacing frameworks in the AIR SDK and found if I update the
CoreFoundation.framework
from the iOS 12.1 SDK (in addition to the linker) then the AIR SDK would start to work correctly again.
I believe this is the framework that normally contains NSException so pretty good guess this is the issue?
Copy link to clipboard
Copied
Hello Michael,
Thanks for the additional details it helped us in isolating the root issue. I have copied few stub files here Adobe Creative Cloud
Kindly copy them in the <AIRSDK>/Lib/Aot folder and let us know if this fixes the issue you are facing.
Regards,
Rohit
Copy link to clipboard
Copied
That looks good regarding the missing NSException error so nice work there!
However I believe the linker is still out of date. I'm still getting:
ld: unexpected token: !tapi-tbd-v3 file '/Users/marchbold/work/sdks/ios/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture arm64
ld: unexpected token: !tapi-tbd-v3 file '/Users/marchbold/work/sdks/ios/iPhoneOS12.1.sdk/usr/lib/libc++.tbd' for architecture armv7
Compilation failed while executing : ld64
when attempting to link against the iOS 12.1 SDK, but if I update the linker, (ie. `cp /usr/bin/ld lib/aot/bin/ld64/ld64` or the one from Xcode) it succeeds.
Copy link to clipboard
Copied
Hello Michael,
Thanks for confirmation on the NSException. Linker would be a known limitation for AIR 32 and we are working on that to be addressed in a later release. Till that time the workaround of replacing the ld from XCode has to be used.
Regards,
Rohit
Copy link to clipboard
Copied
Can you explain to us why you can't update the linker? At least for macOS? It's one of our most common support issues.
Copy link to clipboard
Copied
Hello Michael,
We have been aiming to fix it for both platforms in one go. We do understand the urgency of request.
Regards,
Rohit
Copy link to clipboard
Copied
Hello Michael,
We have released a beta build today containing the fix for linker issues.
Regards,
Rohit
Copy link to clipboard
Copied
Hi Rohit,
I notice that you have also fixed Swift dylibs signing https://tracker.adobe.com/#/view/AIR-4198777
It is marked under "known issues" but I see it actually working as expected now.
Many thanks for that!!
There is one outstanding adt iOS signing related bug that perhaps can be looked at.
Several Entitlements are being applied to Dynamic Frameworks when packaged. This causes ERROR ITMS-90075 on upload to the store.
I have found that an empty Entitlements plist should be used.
I have outlined details in this post and the java to patch - it's a quick fix.
Re: ERROR ITMS-90075 submitting to iTunes with FB & Air 28 using dynamic frameworks
Copy link to clipboard
Copied
Hi Michael,
Is it possible to use the iOS iOS 12 simulators in Animate yet or not ? .. tried the work around - ld64 etc with AIR 32.0.0.83 but still no joy. When I copy the ld file from Xcode 10.1 its only 18k the adobe ld64 is 2.2mb .. is that right ?.
But stuck without the sims , would be great to get this sorted well before xmas ..
Copy link to clipboard
Copied
Hi Rohit Guglani
With the release version I am still getting the same signing error on swift 4.2 or 4.2.1 dylibs I reported 3 weeks ago.
AIR is not code signing these properly. Please confirm you are seeing the same.
It means it is not possible to build Swift based ANEs using Xcode10 with iOS12 SDK features - which was the main reason I created this thread in August.
This is a serious problem and can't wait 3 months to be fixed in AIR33.
Edit: I see in IPASigner the prepareToSignFramework method contains code for reading the hashCode of the dylibs and it has variations for Swift 3 and 4. Perhaps Swift 4.2 has a slightly different offsets.
Edit 2: I have been able to patch adt.jar with the following amendments
IPASigner.java
private int SWIFT_4_2 = 1000;
private int CODE_DIR_HEADERS_4_2 = 104;
...
public void prepareToSignFramework(boolean isDylib, File file)
throws IOException, GeneralSecurityException {
...
if (version < this.SWIFT_4) {
rar.seek(finalPosition + (this.CODE_DIR_HEADERS + this.m_frameworkIdentifier.getBytes().length + 1));
} else if (version >= this.SWIFT_4_2) {
rar.seek(finalPosition + (this.CODE_DIR_HEADERS_4_2 + this.m_frameworkIdentifier.getBytes().length +
1) + this.TEAM_ID_OFFSET);
} else {
rar.seek(finalPosition + (this.CODE_DIR_HEADERS + this.m_frameworkIdentifier.getBytes().length + 1) +
this.TEAM_ID_OFFSET);
}
…
}
The CODE_DIR_HEADERS have a different length in 4.2 (104 not 68)
https://tracker.adobe.com/#/view/AIR-4198777
On a separate note,
It is still required to replace ld64 from Xcode to be able to use iOS Simulator 12.1
ld64 included with AIR still gives !tapi-tbd-v3 errors as per Michael Archbold's post.
Copy link to clipboard
Copied
I have installed new AIR 32 Beta but I still have an error:
dyld: Library not loaded: @rpath/libtapi.dylib
Referenced from: /Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/bin/ld64/ld64
Reason: image not found
/var/folders/dn/s4dgy4sn28b38bvtsd1b8mdw0000gp/T/cmd4234613859577568352.tmp: line 2: 6854 Abort trap: 6 "/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/bin/ld64/ld64" -pie -ObjC -dead_strip -Z -arch x86_64 -syslibroot "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk" -L/usr/lib "/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator12.1.sdk/../../../../../usr/lib/llvm-gcc/4.2.1/libgcc.a" -F"/System/Library/Frameworks" -L"/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib" -o "../aot6715850080660951956.tmp" -exported_symbol _main -x "/Applications/Adobe Flash Builder 4.7/eclipse/plugins/com.adobe.flash.compiler_4.7.0.349722/AIRSDK/lib/aot/lib/libRuntimeInterpreter.x86-simulator-air.a" -lc++ -lSystem -lcrt1.o -lz -lobjc -framework CoreFoundation -framework UIKit -framework MobileCoreServices -framework CoreGraphics -framework Foundation -framework SystemConfiguration -framework AudioToolbox -framework CFNetwork -framework QuartzCore -framework OpenGLES -framework CoreLocation -framework CoreMedia -framework CoreVideo -framework AVFoundation -framework Security -framework GameController -framework CoreMotion -framework AssetsLibrary -framework WebKit -w -filelist "/Users/Sabani/Documents/Adobe Flash Builder 4.7/ShapesInMotionIOS/bin-debug/AOT/AOTBuildOutput243692102487638307.tmp/OBJFilesList.txt" -ios_simulator_version_min 11.0
Compilation failed while executing : ld64
Copy link to clipboard
Copied
So far this seems to be working, actually we didn't have to repackage all of our ANEs, after copying ld and libclang it seems to work. I guess we might repackage the rest of them to be on the safe side. Now we can move forward with iOS 12 features - Thanks!
Copy link to clipboard
Copied
I think we all need to look at this post from Michael at Distriqt, looks like he's spotted the problem ? : -
https://forum.starling-framework.org/topic/air-32-ios-12-issues-resolved
Copy link to clipboard
Copied
Copy link to clipboard
Copied
I build an ipa using AIR SDK 32 and with above changes to linker file. I have also added iPhone SDK 12.1 from path "Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS12.1.sdk". When i publish the app in new iPad Pro (11 inch) my application does not get loaded in fullscreen. In iPad Pro (both 11 inches and new 12.9 inch), we see a rectangular black border around the app, all four sides do not stretch to the edges of the screen.Is there a new default(launch) image for the new iPAD? How do i support fullscreen mode?
Copy link to clipboard
Copied
Hi ,
So are you are using the iOS simulator with Animate ? and you copied over the smaller "ld" file from Xcode 10.1 .. not working for me .
RE launch images :-
I believe it's necessary to include default images for BOTH portrait and landscape for the iPad Pros.
(iPad Pro 10.5)
Default-Portrait-834w-1112h@2x~ipad
Default-Landscape-834w-1112h@2x~ipad
(iPad Pro 12)
Default-Portrait-1024w-1366h@2x~ipad
Default-Landscape-1024w-1366h@2x~ipad
You won't get screen display at the correct resolution unless you use both launch images apparently.
This is good reference for current iOS launch images..
https://wiki.starling-framework.org/manual/ios_launch_images