AppsFlyerFramework在Xcode 15.3下的构建验证问题解析
问题背景
近期开发者在使用Xcode 15.3构建包含AppsFlyerFramework(版本6.13.0及6.13.1)的项目时,遇到了一个严重的构建验证问题。当尝试将应用归档并上传至App Store Connect时,系统会报错:"Invalid Bundle. The bundle MyApp.app/Frameworks/AppsFlyerLib.framework does not support the minimum OS Version specified in the Info.plist"。
问题本质
这个问题的核心在于框架的Info.plist文件中声明的MinimumOSVersion(9.0)与框架二进制文件中实际编译的最低系统版本要求(16.0)不一致。Xcode 15.3引入了一个新的严格验证机制,会检查这两者是否匹配。
技术细节分析
-
版本不匹配:通过分析AppsFlyerFramework的二进制文件,可以看到它实际上要求iOS 16.0作为最低系统版本,但框架的Info.plist文件中仍然声明支持iOS 9.0。
-
Xcode 15.3的变化:Xcode 15.3加强了对动态框架的验证,要求所有嵌入的动态框架的MinimumOSVersion必须与项目设置一致或更高。这是苹果为了确保应用在所有支持的系统版本上都能正常运行而引入的额外检查。
-
影响范围:这个问题不仅影响直接使用AppsFlyerFramework的开发者,还影响了依赖Xcode Cloud使用"最新版本"策略的持续集成流程。
临时解决方案
虽然等待官方修复是最佳选择,但对于急需发布的开发者,可以考虑以下临时方案:
-
降级Xcode:回退到Xcode 15.2版本可以绕过这个问题。
-
手动修改Info.plist:在归档后手动修改构建产物中的Info.plist文件,将MinimumOSVersion从9.0改为16.0。但这种方法不适合自动化构建流程。
-
使用本地SPM包:创建一个本地Swift Package,引用修改后的框架版本。
官方修复进展
AppsFlyer团队已经确认这个问题,并计划在3月25日发布的6.13.2版本中修复。修复方案可能会采用以下两种方式之一:
- 将Info.plist中的MinimumOSVersion更新为16.0,与二进制文件保持一致
- 重新编译框架以真正支持iOS 9.0(如果技术上可行)
开发者建议
- 对于非紧急项目,建议等待官方修复版本发布
- 如果必须使用Xcode 15.3,可以考虑临时移除AppsFlyerFramework或使用替代方案
- 关注AppsFlyer官方渠道获取最新更新信息
这个问题凸显了依赖第三方框架时可能遇到的风险,建议开发团队在项目中建立更完善的依赖管理策略,包括对关键依赖项的监控和应急方案准备。
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考



