gpt4 book ai didi

ios - 将静态库(Rust .a)导入到 iOS 中的 Flutter 项目

转载 作者:行者123 更新时间:2023-12-03 11:47:48 25 4
gpt4 key购买 nike

我已按照 here 中的说明进行操作和 here
虽然.a库和函数在调试(模拟器和真实设备)上按预期工作,当我通过 TestFlight 存档和测试时,Flutter 应用程序以灰色背景开始(我读到这意味着某种错误)。
如果我继续删除 Rust 库的所有调用,那么 Testflight 会正常打开。
注意:我还添加了 .a库作为来自 XCode 的链接框架,我已经包含了 .h文件到项目的 bridging-header.h。
我也有

  • 运行 flutter build --release
  • 清除派生数据
  • Pod 缓存
  • 甚至重新制作了iOS文件夹
    从头开始。

  • 还有什么我在这里想念的吗?

    最佳答案

    我设法通过创建 Flutter 插件使其工作 flutter create -t plugin然后我导入了 .a /iOS 上的文件文件夹并包含 全部 .h 上的 Rust 函数里面的文件 /iOS/Classes (这些是自动创建的)。
    然后为 .Swift 中的每个 rust 函数添加一个示例函数文件在 /iOS/Classes并确保包括

    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"
    以供引用:
    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

    关于ios - 将静态库(Rust .a)导入到 iOS 中的 Flutter 项目,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64064580/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com