You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Xamarin项目添加iMessageExtension后上传IPA遇ITMS-90685错误求助

解决Xamarin iOS iMessage Extension上传时的CFBundleIdentifier冲突问题

针对你遇到的ERROR ITMS-90685: "CFBundleIdentifier Collision. There is more than one bundle with the CFBundleIdentifier value 'xamarin.ios.xamarin-framework' under the iOS application 'appName.iOS.app'."错误,这是Xamarin项目添加iMessage扩展后常见的框架重复嵌入问题,给你几个针对性的解决步骤:

1. 调整项目构建参数

  • 打开Visual Studio for Mac,分别选中主iOS项目和iMessage Extension项目
  • 右键选择选项 → iOS构建 → 附加参数
  • 在附加参数中添加:--linkskip=xamarin.ios.xamarin-framework,这个参数会让构建过程跳过重复嵌入该框架的操作
  • 保存设置后重新编译项目

2. 修正扩展项目的框架引用属性

  • 右键点击iMessage Extension项目 → 引用 → 找到Xamarin.iOS框架
  • 将它的复制本地(Copy Local)属性设置为False——主应用已经嵌入了这个核心框架,扩展不需要重复嵌入
  • 同理检查其他第三方框架,确保扩展项目里的框架引用都设置为不复制本地

3. 彻底清理后重新构建

  • 点击顶部菜单栏生成 → 清理所有,清空现有构建缓存
  • 手动删除项目目录下的bin和obj文件夹,包括扩展项目对应的这两个目录
  • 重启Visual Studio for Mac,重新生成整个解决方案后再打包IPA

4. 验证Info.plist配置

  • 确认主应用和扩展的Info.plist里的CFBundleIdentifier确实是你设置的com.company.appname和com.company.appname.imessageextension,没有误写为冲突的xamarin.ios.xamarin-framework
  • 检查扩展的Info.plist中NSExtension→NSExtensionAttributes下的MessagesApplicationExtensionBundleIdentifier是否正确指向扩展自身的Bundle ID

如果以上步骤无效,可以用命令行手动排查重复框架:

unzip your-app.ipa
cd Payload/appName.iOS.app
find . -name "*.framework" -exec defaults read {} Info.plist CFBundleIdentifier \;

这个命令会列出IPA内所有嵌入框架的Bundle ID,你可以直观看到哪个部分重复嵌入了xamarin.ios.xamarin-framework,再回到项目中针对性调整。

内容的提问来源于stack exchange,提问作者Luís Miguel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.27 09:41:41