我遇到与this guy,this guy和this guy相同的问题(nota bene,我实际上并不确定他们是否全部都是伙计们,本身。)
他们最终都找到了自己的解决方案,但没有一个适用于我的问题。我在iOS 8应用程序中使用Xcode 6.1并附带扩展名。应用程序和扩展程序都依赖于包含的框架。当我尝试将应用程序提交到商店时,我得到的验证警告是"ERROR ITMS-9000: Invalid bundle. The bundle at 'xxxxx.appex' contains disallowed file 'Frameworks'".
我甚至找不到名为Frameworks的文件。共享框架应该保存在/ Library / Frameworks,这是Apple推荐的保存位置。该项目还使用了Cocoapods,这使我成为唯一可能的罪魁祸首,因为它在配置文件中引用$ FRAMEWORK_PATH(虽然构建文件夹不包含具有该名称的文件或文件夹)。
答案 0 :(得分:10)
对于未来的观众来说,这是一个很好的解决方案:
当您构建自己的iOS框架(我正在使用Xcode 6.1)时,最终产品在框架包本身中包含一个“Frameworks”文件夹。即MyFramework.framework / Frameworks。即使您未指定复制文件/嵌入框架构建阶段,也会发生这种情况。
你要做的是进入框架包,找到空框架文件夹并删除它。这不应以任何方式影响您应用的功能。然后构建您的应用程序并检查嵌入式框架是否按计划没有Frameworks文件夹。
您的存档现在不应包含违规文件夹,错误应该消失!
答案 1 :(得分:4)
我更改了构建设置>包装>在我的扩展程序中定义设置为YES的模块并观察应用目标。对我来说很好。
答案 2 :(得分:4)
就我而言,解决方案如下:
尝试在那里'有问题的目标'创建脚本 - > “构建阶段”然后单击
+
并选择New Run Script Phase
,运行脚本应该跟随所有其他人。插入那里:
cd "${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/"
if [[ -d "Frameworks" ]]; then
rm -fr Frameworks
fi
然后清理项目并尝试再次创建存档。这些答案在以下问题中提供:
我希望这对你有所帮助。
答案 3 :(得分:2)
继续使用此功能,我注意到我的共享扩展程序有一个"嵌入框架"构建阶段,目标设置为"框架"目录。我将其更改为"共享框架"而错误消失了。
但是,另一个错误仍然存在:" ...包含不允许的嵌套捆绑包"。我认为这是原始版本的一种伞错误警告。我将为那个问题打开另一个问题。