React Native项目使用MapLibre执行iOS本地EAS构建时签名文件冲突报错
React Native项目使用MapLibre执行iOS本地EAS构建时签名文件冲突报错
我之前碰到过类似的场景,模拟器运行正常但本地EAS构建iOS报错,很大概率是签名缓存残留或者旧项目的签名资产干扰导致的,结合你的情况(之前用过MapBox且正常),可以按下面的步骤逐一排查:
- 先清理EAS的本地构建缓存:执行
eas build:clear-cache命令,EAS有时候会缓存旧的签名配置,清掉后重新构建试试。另外也可以清理bun的包缓存,执行bun pm cache clean避免依赖缓存的问题。 - 检查项目的签名配置:打开你的
eas.json文件,查看previewprofile里的iOS签名设置。如果是用自动签名,确认当前使用的开发者账号和之前MapBox项目的账号是否一致?如果不一致,可能会出现签名资产不匹配的情况;如果是手动指定证书路径,检查路径里的证书、描述文件是否有效,有没有和旧项目的重复。 - 清理Xcode的签名相关缓存:
- 打开Xcode,删除DerivedData:点击
Xcode菜单 ->Preferences->Locations,找到DerivedData的路径,手动删除整个文件夹; - 检查钥匙串访问:打开Mac的「钥匙串访问」,搜索和开发者账号相关的证书、Provisioning Profile,删除过期或者重复的条目,避免签名时系统选错资产。
- 打开Xcode,删除DerivedData:点击
- 清理iOS依赖缓存:因为你之前用过MapBox,可能Pod里残留了旧的依赖配置。执行
pod deintegrate先卸载所有Pod,然后删除Podfile.lock和Pods文件夹,再执行npx pod-install重新安装依赖,确保MapLibre的依赖是干净的,没有和MapBox的依赖冲突。 - 重新生成签名资产:如果上面的步骤都没用,执行
eas credentials命令,选择iOS平台和preview环境,重新生成证书和描述文件,覆盖之前的配置,确保构建时用的是最新的签名资产。
备注:内容来源于stack exchange,提问作者Marius
相关产品推荐
相关产品推荐

