Skip to content
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

[4.0] Add support of iOS's dynamic libraries to GDNative #40050

Merged
merged 5 commits into from
Jul 3, 2020

Conversation

naithar
Copy link
Contributor

@naithar naithar commented Jul 2, 2020

Same as #39996.

Since iOS platform is not buildable at master at the moment, I've managed to test only library selection in editor.

For iOS platform it is not allowed by AppStore to use .dylib directly, so not loading them at this moment makes sense.
But since the release of iOS 8 developers are allowed to use Frameworks, which essentially are dylibs packed with Info.plist file and additional install_name value set to them.

Because of that .dylibs can be replaced with .framework or .xcframework files built with XCode. They can also be turned into .framework automatically. This way the dynamic library loading will be available for iOS platform.

This repo contains the starter project, allowing the creation of .a, .dylib, .framework or .xcframework, which could be used for GDNative library in project.

I've tested this PR with both statically and dynamically linked libraries in different combinations, running on multiple devices that's available to me.
I've also tested the way .framework generation works and how AppStore handles resulting application.
I haven't found any issues, but I could have missed some edge case.

@naithar naithar force-pushed the feature/ios-gdnative-master-2 branch from 83e8a85 to 294416c Compare July 2, 2020 14:43
@akien-mga akien-mga merged commit 64aa25b into godotengine:master Jul 3, 2020
@akien-mga
Copy link
Member

Thanks!

@naithar naithar deleted the feature/ios-gdnative-master-2 branch July 3, 2020 08:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants