Comments (1)
I have some details here that might make it worth while reopening this.
iOS does not support shipping dylibs on the appstore, only macos does. Docs are here, Swift forum discussion here
For iOS we need to convert it to a universal library using lipo
and then bundle the library, the module map and the header as a framework.
It may be worthwhile to do this for static libraries to produce static frameworks as well. It means simpler code in cargo-swift but it also allows for the inclusion of xcprivacy manifests which Apple has started warning about and will be required in the future.
I was taking a crack at hand hacking the xcframework with frameworks but was getting issues in Xcode, the Swift wrapper could not see the uniffi header symbols, I was wondering if these docs might be related to the issue I was seeing. Some useful context, The framework and binary must have the same name, ie RustModule.framework
must contain the RustModule
binary, otherwise xcodebuild -create-xcframework
will fail with an error code of 70. The path it attempts to copy matches that naming. Might be worth filing a rdar to just copy the contents, but I don't have high hopes that it would ever get addressed.
If we can get dynamic frameworks working it would be awesome to include a step to generate dsyms for them so stack traces can be decoded on platforms like Crashlytics, Bugsnage, etc
from cargo-swift.
Related Issues (20)
- Xcode Cloud warnings from the included .swift file HOT 6
- Use askama templates
- Add --macro flag to initialize a project without udl files HOT 1
- Add more example projects
- Upload to AppStore - ITMS-90426: Invalid Swift Support HOT 7
- Automatically choose correct UniFFI version HOT 1
- Test all valid combinations of command line arguments in end-to-end tests
- Cargo.lock not up-to-date
- Unsafe flags in swiftSettings rejected by Xcode HOT 4
- cannot be used as a dependency of this target because it uses unsafe build flags. HOT 1
- Build failure for aarch64-apple-ios HOT 2
- Project doesn't compile (Rust 1.70)
- How to pass different feature flags for each platform? HOT 2
- Mismatch Between uniffi_contract_version and bindings_contract_version in uniffi 0.26 HOT 3
- running `cargo swift init` and `cargo swift package` fails HOT 9
- Handling varying APIs by OS HOT 1
- Error while generating swift bindings HOT 2
- How can i set minos
- Build error `No such file or directory` HOT 2
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from cargo-swift.