SPM集成firebase-ios-sdk真机安装报错-402620375 无法修改签名配置
问题描述
通过SPM(Swift Package Manager)集成firebase-ios-sdk完成后,应用在模拟器上可正常运行,但安装到真机设备时触发如下报错:
Unable to install "AppName" Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402620375 User Info: { DVTErrorCreationDateKey = "2022-06-17 13:19:08 +0000"; IDERunOperationFailingWorker = IDEInstalliPhoneLauncher; } -- The code signature version is no longer supported. Domain: com.apple.dt.MobileDeviceErrorDomain Code: -402620375
网上同类问题的通用解法是在Target配置中把对应依赖的嵌入规则修改为Embed and Sign,但当前配置界面该设置项为不可编辑状态,配置界面如下:
解决方案
Xcode默认会锁定SPM引入依赖在General标签页的嵌入签名配置,无法直接修改,按以下步骤操作即可修复问题:
- 打开项目配置,选中报错对应的App Target,切换到
Build Phases标签页 - 展开已有的
Embed Frameworks阶段,删除其中所有通过SPM引入的Firebase相关依赖 - 点击Build Phases顶部的+号按钮,选择
New Copy Files Phase新建拷贝文件阶段,将该阶段的Destination选项设置为Frameworks - 在新建的Copy Files阶段中点击+号,仅添加业务实际用到的Firebase动态框架,不要引入静态库、测试模块等非必要产物,勾选每个添加项右侧的
Code Sign On Copy复选框 - 切换到
Build Settings标签页,搜索CODE_SIGNING_ALLOWED,确认主Target的iOS真机构建配置下该值为YES,使用的开发/分发证书在有效期内、信任状态正常 - 按下快捷键
Shift + Command + K清理项目构建缓存,删除真机上已安装的旧版本App,重新执行编译安装即可
如果操作后仍然报错,删除原有SPM依赖重新添加,添加时仅勾选业务需要的Firebase子模块,不要全量勾选所有Firebase产物,避免将带旧版签名格式的调试、测试框架打包进安装包。
内容的提问来源于stack exchange,提问作者Fabian Thanner
相关产品推荐
相关产品推荐

