Bitrise部署iOS时OneSignal扩展与主应用版本不匹配求助
解决Bitrise部署iOS应用时ITMS-90473版本不匹配问题
核心问题原因
OneSignalNotificationExtension扩展的CFBundleVersion和CFBundleShortVersionString与主应用不一致,Apple虽允许部署成功,但会触发合规性提醒邮件。
具体解决步骤
统一版本号配置源
创建共享的.xcconfig配置文件,集中管理版本号,让主应用和扩展target共用同一配置:- 新建
VersionConfig.xcconfig文件,写入:MARKETING_VERSION = 7.0.0 CURRENT_PROJECT_VERSION = 6723 - 在Xcode中,给主应用和OneSignalNotificationExtension的target都添加这个配置文件(路径:Project -> Info -> Configurations)。
- 进入每个target的Build Settings,找到
Versioning区域,确认Marketing Version和Build Number是基于配置文件的取值。
- 新建
修复Bitrise workflow配置
如果用Bitrise的版本自动更新步骤,确保步骤覆盖所有相关target:- 使用
Set Xcode Project Build Number步骤时,在Target names字段中同时填入主应用和OneSignalNotificationExtension的target名称; - 若步骤支持
All targets选项,直接勾选该选项,避免遗漏扩展target。
- 使用
手动校验Xcode项目配置
打开Xcode,逐一检查两个target的Build Settings:- 确认
CFBundleShortVersionString(对应Marketing Version)的值完全相同; - 确认
CFBundleVersion(对应Build Number)的值完全相同; - 执行
Cmd+Shift+K清理项目缓存,重新归档测试,排除旧缓存干扰。
- 确认
检查CocoaPods引入的扩展版本
如果OneSignal是通过CocoaPods引入:- 检查Podfile,确保没有固定OneSignalNotificationExtension的版本号导致版本脱节;
- 执行
pod install后,手动查看Pods/OneSignalNotificationExtension/Info.plist中的版本号,若不一致则手动修改,再重新归档部署。
内容的提问来源于stack exchange,提问作者James B
相关产品推荐
相关产品推荐

