You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何为Flutter iOS插件手动添加.xcframework并解决真机运行异常问题

解决方案

方案1:podspec直接配置私有SPM依赖(推荐)

CocoaPods 1.10及以上版本原生支持直接引入SPM依赖,无需手动导出framework,自动处理架构、签名适配问题,避免本地维护的各类兼容性问题。
在你的插件.podspec中添加如下配置即可:

# 替换为你的私有SPM仓库地址和对应版本号
s.dependency 'MyDependency', :git => 'https://你的私有SPM仓库地址.git', :tag => '1.0.0'

配置完成后进入项目ios目录执行pod install即可,私有仓库的权限认证直接在Xcode中配置对应的Git访问凭据即可。

方案2:本地引入xcframework修复方案

你当前的问题主要是手动拷贝的xcframework架构不全、podspec配置缺失导致的真机适配失败,按以下步骤修正:

  1. 导出完整的xcframework
    不要直接拷贝示例项目编译缓存中的xcframework,该文件仅包含你当前编译目标的架构,需要单独从SPM仓库导出全架构xcframework,导出后执行以下命令验证架构完整性:
# 验证真机架构
lipo -info MyDependency.xcframework/ios-arm64/MyDependency.framework/MyDependency
# 验证模拟器架构
lipo -info MyDependency.xcframework/ios-arm64_x86_64-simulator/MyDependency.framework/MyDependency

两个命令分别输出arm64和x86_64 arm64即为正常。
2. 修正podspec配置
替换你原有的配置为以下内容:

s.preserve_paths = 'MyDependency.xcframework/**/*'
s.vendored_frameworks = 'MyDependency.xcframework'
s.xcconfig = {
  'OTHER_LDFLAGS' => '-framework MyDependency',
  'ENABLE_BITCODE' => 'NO', # 若你的依赖支持bitcode可删除该行
  'FRAMEWORK_SEARCH_PATHS' => '$(PODS_ROOT)/#{s.name}/'
}
s.platform = :ios, '12.0' # 替换为依赖支持的最低iOS版本
s.pod_target_xcconfig = {
  'ONLY_ACTIVE_ARCH' => 'NO',
  'CODE_SIGN_IDENTITY[sdk=iphoneos*]' => 'iPhone Developer'
}
  1. 清理缓存重新编译
    进入项目ios目录执行以下命令清理旧缓存:
pod deintegrate && rm Podfile.lock && pod install

打开Xcode按Shift+Command+K清空构建缓存后再运行真机测试即可。


内容的提问来源于stack exchange,提问作者siega

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 00:24:00