-
-
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
[TIMOB-25927] Add Swift support for native modules, move SDK-core into "TitaniumKit.framework" #9983
Conversation
Generated by 🚫 dangerJS |
Is this a continuation of #9798? Does it include the same changes (plus a whole lot more)? |
Yep, it does! Although I begin to feel that we may need to fix some memory issues around JSCore that haven't even been reported so far. |
@hansemannn I wasn't suggesting we should have closed #9798 In fact, I think it would be more useful/easier to review and track if we had major parts of this PR separated:
|
Its super hard to remove ticore/krollthread once we moved the core to a framework. I am still unsure we will even be able to do the framework change, since it will be a semi-hard task to migrate old modules properly. |
@sgtcoolguy I thought about this quite long so far: How do we minimize the impact of removing core-classes from modules in favor of a framework? Right now, developers import core-classes via #import "TiApp.h"
import "TiUtils.h" etc. This is possible, because we have "ghost" headers inside We could still write a migration script that goes through the module's classes and scans for the "blacklisted" headers that are now part of the core-framework. Would this be a practical way? Sorry, I just need someone to talk to about this 😄. |
@hansemannn
I get that the framework change may cause native module breakage, which we should work on in a PR that handles the move to a framework. But we should be able to remove TiCore via the old PR you closed. And I assume removing KrollThread would be similar. As far as the framework changes around imports, that's outside my knowledge right now. |
Rebased and reworked from |
JIRA: https://jira.appcelerator.org/browse/TIMOB-25927
🗓 Scheduled for Q3/Q4
Overview
Replaces the Titanium iOS Core with framework based alternative that is required if we want to deal with native modules that use Swift libraries, as we cannot bake Swift frameworks into static libraries and Swift frameworks do not allow non modular imports. Especially not with our (currently) hacky solution that attempts to reference symlinks from the application data directory. The following tasks represent the base of this effort.
SDK Tasks
IS_XCODE_*
). Can we useOTHER_C_FLAG=$(inherited) -DISXCODE_*
?Module / CLI Tasks
validateModules
step)