问题描述
我已按照以下说明进行操作:https://github.com/brickpop/flutter-rust-ffi和此处:https://mozilla.github.io/firefox-browser-architecture/experiments/2017-09-06-rust-on-ios.html
尽管.a
库和函数可以在Debug(模拟器和真实设备)上按预期工作,但是当我通过TestFlight存档和测试时,Flutter应用程序以灰色背景开始(我读到这意味着一些含义)。一种错误)。
如果我继续删除Rust库的所有调用,则Testflight将正常打开。
注意:我还从XCode中将.a
库添加为链接框架,并将.h
文件包含到项目的bridging-header.h中。
我也有
- 运行
flutter build --release
- 清除了导出数据
- pod缓存
- 甚至重新制作了iOS文件夹 从头开始。
这里还有其他我想念的东西吗?
解决方法
我设法通过创建Flutter插件flutter create -t plugin
使之工作,然后将.a
文件导入了/iOS
文件夹中,并包含了所有锈功能在.h
内的/iOS/Classes
文件中(这些文件是自动创建的)。
然后为.Swift
中/iOS/Classes
文件内的每个rust函数添加一个示例函数
并确保包括
flutter:
plugin:
pluginClass: ApproverRustPlugin
在您插件的.yaml
文件上。
还将这些内容包含在插件.podspec
文件中
s.public_header_files = 'Classes**/*.h'
s.source_files = 'Classes/**/*'
s.static_framework = true
s.vendored_libraries = "**/*.a"
完成所有这些操作。确保在主应用程序.yaml
文件中包含您的插件(假设它与主应用程序位于同一文件夹中)。
dependencies:
flutter:
sdk: flutter
approver_rust:
path: "./approver_rust"