无效的Bundle,捆绑包包含不允许的嵌套捆绑,包含不允许的文件'Frameworks'
我添加了一个共享框架来共享应用程序和手表扩展之间的代码。 后来我删除了共享框架,因为它导致了很多问题。 我可以在iPhone上构build和运行我的应用程序并观看。 但是,当我提交到应用程序商店,我看到这两个错误:
错误ITMS-90205:“Invalid Bundle。'xxx WatchKit Extension.appex'中的包包含不允许的嵌套包。
错误ITMS-90206:“Invalid Bundle。'xxx WatchKit Extension.appex'中的包包含不允许的文件”Frameworks“。
我已经尝试了所有在stackoverflow( this , this , this )上提到的解决scheme,他们都没有为我工作。 我该如何解决这个错误? 来自苹果的错误消息确实没有给我一个线索,我应该。
我还是不完全明白是什么原因引起的,但是我偶然发现了一个解决了这个问题的答案。
https://github.com/CocoaPods/CocoaPods/issues/4203
具体而言,2015年10月12日由mikehouse发布的post是解决问题的方法。
将以下运行脚本添加到所有您embedded的扩展目标。 在我的情况下,我不得不将运行脚本作为构build阶段添加到我的“今日”扩展程序和我的Apple Watch应用程序扩展中。
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" if [[ -d "Frameworks" ]]; then rm -fr Frameworks fi
“ITMS-90206”错误已在本文中解决: validation错误:无效的包。 包中包含不允许的文件'Frameworks'
在WatchKit扩展的Build选项中,需要将设置从Yes更改为No:
Embedded Content Contains Swift Code: No
以上不适合我。
Embedded Content Contains Swift Code: NO
没有为我做任何事情。
我使用dynamic框架来体验这个问题。 我的dynamic框架包含其他dynamic框架,使得可以有:
Embedded Content Contains Swift Code: YES
而是让其他dynamic框架将其设置为否。 但是,我不得不设置
Always Embed Swift Standard Libraries: NO
在构build阶段。
将这个设置为YES生成的frameworks
文件夹导致上传到ITC失败。
我有一个框架,build立以下的构build设置:
Always Embed Swift Standard Libraries: YES
Allow Non-Modular includes in Framework Modules: YES
所以我改变了两个NO
并再次构build框架。
Always Embed Swift Standard Libraries: NO
Allow Non-Modular includes in Framework Modules: NO
我添加了新的框架构build到我的项目,所以它上传到iTunes连接成功。