MDo*_*dis 5 ffi ios rust dart flutter
尽管.a库和函数在调试(模拟器和真实设备)上按预期工作,但当我通过 TestFlight 存档和测试时,Flutter 应用程序以灰色背景开始(我读到这意味着某种错误)。
如果我继续删除 Rust 库的所有调用,则 Testflight 会正常打开。
注意:我还从 XCode 添加了该.a库作为链接框架,并将该.h文件包含到项目的 bridging-header.h 中。
我也有
flutter build --release我在这里还缺少其他东西吗?
我设法通过创建一个 Flutter 插件来使其工作,flutter create -t plugin然后将文件导入.a到文件夹中,并在文件中/iOS包含所有rust 函数(这些函数是自动创建的)。.h/iOS/Classes
.Swift然后为文件中的每个 rust 函数添加一个示例函数/iOS/Classes
并确保包含
flutter:
plugin:
pluginClass: ApproverRustPlugin
Run Code Online (Sandbox Code Playgroud)
在您的.yaml插件文件中。
还将这些包含在插件.podspec文件中
s.public_header_files = 'Classes**/*.h'
s.source_files = 'Classes/**/*'
s.static_framework = true
s.vendored_libraries = "**/*.a"
Run Code Online (Sandbox Code Playgroud)
一旦所有这些都完成了。确保在主应用程序.yaml文件中包含您的插件(假设它与主应用程序位于同一文件夹中)。
dependencies:
flutter:
sdk: flutter
approver_rust:
path: "./approver_rust"
Run Code Online (Sandbox Code Playgroud)
以供参考:
Pod::Spec.new do |s|
s.name = 'approver_rust'
s.version = '0.0.1'
s.summary = 'A new flutter plugin project.'
s.description = <<-DESC
A new flutter plugin project.
DESC
s.homepage = 'http://example.com'
s.license = { :file => '../LICENSE' }
s.author = { 'Your Company' => 'email@example.com' }
s.source = { :path => '.' }
s.public_header_files = 'Classes**/*.h'
s.source_files = 'Classes/**/*'
s.static_framework = true
s.vendored_libraries = "**/*.a"
s.dependency 'Flutter'
s.platform = :ios, '9.0'
# Flutter.framework does not contain a i386 slice.
s.pod_target_xcconfig = { 'DEFINES_MODULE' => 'YES', 'EXCLUDED_ARCHS[sdk=iphonesimulator*]' => 'i386' }
s.swift_version = '5.0'
end
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2282 次 |
| 最近记录: |