iOS双应用共享Cocoa Touch Framework后无法通用设备构建问题
解决Generic iOS Device无法构建含共享Cocoa Touch Framework的iOS App问题
我之前在提取共享Framework时也遇到过一模一样的问题,给你几个实用的排查和解决方向:
检查Framework的架构设置
打开Framework的项目,进入Build Settings,找到Architectures和Valid Architectures选项:- 确保
Architectures设置为Standard Architectures (arm64, armv7)(或者根据你的需求调整,但要和主App一致) - 把
Build Active Architecture Only在Release模式下设置为NO(Debug模式可以保持YES),这样Framework会构建所有支持的架构,满足Generic Device的通用构建需求
- 确保
确认部署目标兼容性
检查Framework的Deployment Target是否低于或等于两个主App的部署目标。如果Framework要求的iOS版本比主App高,Generic Device构建时会出现兼容性错误,调整到一致或更低即可。验证Framework的嵌入配置
回到主App的项目设置,进入General标签:- 确保共享Framework同时出现在
Linked Frameworks and Libraries和Embedded Binaries列表中。如果只链接没嵌入,真机/模拟器能运行,但通用构建会失败。
- 确保共享Framework同时出现在
清理项目缓存
有时候缓存会导致奇怪的构建问题,执行以下操作:- 按下
Command + Shift + K清理当前项目 - 按下
Command + Option + Shift + K清理Derived Data - 重启Xcode后再尝试构建Generic Device
- 按下
检查签名与配置文件
在Framework和主App的Build Settings中,确认Code Signing Identity和Provisioning Profile设置一致(如果使用Xcode自动管理签名,设置为Automatic即可)。通用构建对签名的校验更严格,不匹配的签名会直接导致构建失败。排查构建脚本问题
如果Framework的Build Phases里有自定义脚本(比如剥离模拟器架构的脚本),检查脚本是否在Generic Device构建时执行了错误的操作。可以暂时禁用脚本,看看是否能正常构建,再逐步调整脚本逻辑。
内容的提问来源于stack exchange,提问作者feldeOne
相关产品推荐
相关产品推荐

