Xcode中NSBroadcastUploadExtension未生成PlugIns文件夹或嵌入.appex文件的问题求助
兄弟,我之前在Xcode 16.2版本里搞NSBroadcastUploadExtension的时候也踩过几乎一模一样的坑,结合自己的解决经验和Xcode的特性,给你梳理几个最靠谱的排查点和解决办法:
先盯紧主App的嵌入配置
打开主App的Target设置,切到General标签页,拉到Frameworks, Libraries, and Embedded Content这块。你得确认你的Broadcast Upload Extension已经被加到这个列表里,而且Embed选项要设成Embed & Sign——要是没加的话,点+按钮从列表里选你的扩展target添进去就行。这一步是最容易漏的,很多人加完扩展就忘了给主App配置嵌入。检查Build Phases里的Copy Files阶段
进主App的Build Phases标签,看看有没有专门的Copy Files阶段是给扩展用的。如果没有,就点+按钮新建一个Copy Files Phase,把Destination改成PlugIns,再把扩展的.appex产物拖到这个阶段里。另外你说的“Code Sign on Copy”变成文本框的问题,大概率是这个Copy Files阶段的配置损坏了,直接删掉重建一个就会变回正常的复选框。签名配置必须和主App完全匹配
Xcode 16对签名的要求比之前严,你得确保扩展的Bundle ID是主App的子ID(比如主App是com.xxx.myapp,扩展就得是com.xxx.myapp.broadcast),而且签名团队、Code Signing Identity、Provisioning Profile这些配置,扩展和主App必须完全一致,不管是开发还是发布环境都不能错。清缓存再重新编译
Xcode的缓存有时候会抽风,先按Command + Shift + K清Build文件夹,再按Command + Option + Shift + K彻底清派生数据,之后先单独编译扩展target,再编译主App。编译完去Products文件夹里找到主App的.app包,右键Show in Finder,再右键.app包选Show Package Contents,应该就能看到PlugIns文件夹和里面的.appex文件了。
额外提一句:要是上面的方法都不管用,你可以去检查主App和扩展target的
Build Settings里的ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES选项,确保两者的设置一致,Swift标准库的嵌入配置有时候也会影响扩展的打包。
内容来源于stack exchange




