Flurry Analytics iOS打包归档报错:libFlurryWatch缺失armv7架构切片
解决Flurry Watch静态库缺失armv7架构导致的打包链接错误
嘿,这个问题我之前帮同事处理过,本质就是你用的libFlurryWatch_8.4.0.a静态库没有包含armv7架构切片,而你的项目还在尝试编译这个架构,所以链接器报错了。给你几个可行的解决思路:
1. 移除项目对armv7架构的支持(最快解决)
现在市面上几乎没有还在使用armv7架构的iOS/watchOS设备了,直接移除这个架构支持是最省事的:
- 打开Xcode,选中你的项目Target,进入Build Settings标签页
- 搜索
Architectures,找到Valid Architectures,删掉里面的armv7选项 - 再确认下Build Active Architecture Only,在Release模式下可以设为
YES(只构建当前活跃的64位架构),减少编译时间
2. 替换为兼容armv7的Flurry版本(如果必须保留armv7)
如果你的项目一定要兼容armv7设备,那得换个支持该架构的Flurry版本:
- Flurry 8.4.0的Watch库可能已经放弃了armv7支持,你可以尝试降级到更早的版本(比如8.3.x系列),找包含armv7的静态库
- 下载的时候注意选择「Universal」版本的库,确保它包含了你需要的所有架构
3. 用lipo手动合并armv7架构(有现成armv7库的情况)
如果你能找到单独的armv7版本libFlurryWatch.a,可以用Xcode自带的lipo工具合并成通用库:
打开终端,执行以下命令:
lipo -create /path/to/armv7版本的libFlurryWatch.a /Users/Frank/Desktop/Desktop/IOS/FalconTech/FalconTech/Flurry/libFlurryWatch_8.4.0.a -output libFlurryWatch_universal.a
然后把生成的libFlurryWatch_universal.a替换项目里原来的库文件
4. 改用CocoaPods集成(最推荐的长期方案)
手动管理静态库很容易踩架构的坑,用CocoaPods自动管理会省心很多:
- 在项目的Podfile里添加Flurry Watch的依赖:
pod 'Flurry-iOS-SDK/Watch' - 执行
pod install,之后用.xcworkspace打开项目,再尝试打包归档
最后别忘了清理一下项目的构建缓存(Product > Clean Build Folder,快捷键Cmd+Shift+K),再重新构建,避免旧缓存干扰。
内容的提问来源于stack exchange,提问作者Hanqing Zhao
相关产品推荐
相关产品推荐

