-
-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
feat(ios): use/support/build xcframeworks #12026
Conversation
Tests:
|
1c5f847
to
970413a
Compare
@vijaysingh-axway This is the xcframeworks only changes. I addressed your initial feedback re: Xcode 11 built xcframeworks in a lazy/dumb way - checking for the Xcode 12+ dir name and falling back to the Xcode 11 folder name (rather than try and get fancy with parsing Info.plist). If we see an xcframework built on Xcode 11 missing arm64, we'll exclude arm64 on app simulator builds just as we would for a non-xcframework based native module. |
@@ -6,7 +6,7 @@ | |||
*/ | |||
#import <TitaniumKit/TiModule.h> | |||
|
|||
#ifdef USE_TI_CONTACTS | |||
#if defined(USE_TI_CONTACTS) && (!TARGET_OS_MACCATALYST || IS_SDK_IOS_14) |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I see that TARGET_OS_MACCATALYST is getting used. I guess it is not removed intentionally to save time. I think it is fine.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Contacts API is available in Mac Catalyst 14+. So I intentionally guarded here like this.
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
@sgtcoolguy Changes looks good. I have left few comments. Basically questions. Can you look in that? Thanks!
@sgtcoolguy couple notes from me using this.
|
Fixes TIMOB-28072
…xcframeworks Modules built before xcframework support do not have an arm64 sim arch/target To avoid having to break all modules, we'll try and exclude arm64 from sim builds This will eventually break if app is built on arm64 apple silicon and a new xcframework based module hasn't been shipped.
- preserve symlinks in module xcframeworks/zips
970413a
to
692b1c0
Compare
@ewanharris I've incorporated your feedback. Updated the line for the framework search path sniffing, and right before we create-xcframework we'll wipe the destination if it exists to avoid the "couldn't be copied" error. |
JIRA: https://jira.appcelerator.org/browse/TIMOB-28116
Description:
This is required for #11955
These are the changes to move to using xcframeworks for APS, tiverify, TitaniumKit and for native modules.
This includes changes to the libraries:
Xcode minimum is bumped to 11 as that is required for xcframework support.
This PR does build/include the built maccatalyst binaries in the xcframeworks. It does not enable macOS as a target platform. #11955 will be used for that.
Note that to avoid breaking existing native modules we will selectively exclude arm64 from simulator builds of apps if we detect a native module that is not an xcframework - or is built with Xcode 11 and is missing arm64 simulator binaries.
If the developer is running an arm64 Mac build of Node (there are none yet officially!), and a native module is assumed to not have arm64 sim support, we'll error out with a message about it. (the "fix" there is for us/them to rebuild the native modules using Xcode 12 w/ xcframework support)
TODO