Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/ios/97.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 如何修复应用程序加载程序错误:包无效。包裹。。。包含不允许的文件“框架”_Ios_Swift_Xcode - Fatal编程技术网

Ios 如何修复应用程序加载程序错误:包无效。包裹。。。包含不允许的文件“框架”

Ios 如何修复应用程序加载程序错误:包无效。包裹。。。包含不允许的文件“框架”,ios,swift,xcode,Ios,Swift,Xcode,我有一个带有三个Swift自定义框架的Swift项目。该应用程序成功构建并运行,但当我尝试使用应用程序加载器上载到iTunes Connect时,三个框架都出现以下错误: 错误ITMS-90206:包无效。位于“XXX.app/Frameworks/YYY.framework”的捆绑包包含不允许的文件“Frameworks” 如中所述,我已在框架中将“嵌入式内容包含Swift代码”设置为否,在应用程序中设置为是,但此错误仍然存在 这三个框架都是我自己的,我正在认真考虑重新设计项目,以避免完全使用

我有一个带有三个Swift自定义框架的Swift项目。该应用程序成功构建并运行,但当我尝试使用应用程序加载器上载到iTunes Connect时,三个框架都出现以下错误:

错误ITMS-90206:包无效。位于“XXX.app/Frameworks/YYY.framework”的捆绑包包含不允许的文件“Frameworks”

如中所述,我已在框架中将“嵌入式内容包含Swift代码”设置为否,在应用程序中设置为是,但此错误仍然存在

这三个框架都是我自己的,我正在认真考虑重新设计项目,以避免完全使用框架,但这是我现在想要避免的一件琐事

我没有用椰子荚


关于如何解决这个错误有什么想法吗?

所以这不是一个好的答案,但我就是这么解决的:


我创建了一个新项目并复制了我所有的文件——在一个没有框架的平面结构中,编辑只是为了删除相关的导入语句。现在可以上传了。因此,框架结构是问题的根源。不确定Swift嵌入式自定义库的想法是否刚刚被打破,或者我做错了什么,所以仍在寻找更好的答案…

所以这不是一个好答案,但我就是这么解决的:


我创建了一个新项目并复制了我所有的文件——在一个没有框架的平面结构中,编辑只是为了删除相关的导入语句。现在可以上传了。因此,框架结构是问题的根源。不确定是否Swift嵌入式定制库的想法刚刚被打破,或者我做错了什么,所以仍在寻找更好的答案…

对我来说,解决这个问题的关键是,除了始终_EMBED_Swift_STANDARD_libraries=NO,此外,设置嵌入式内容包含除主应用程序目标之外的所有目标的内置设置。必须清除衍生数据,但在那之后一切都很好


对我来说,解决这个问题的关键是,除了始终为所有目标设置嵌入\u SWIFT\u标准\u LIBRARIES=NO外,还为除主应用程序目标之外的所有目标设置嵌入的\u CONTENT\u CONTAINS\u SWIFT=NO内置设置。必须清除衍生数据,但在那之后一切都很好

在的SE-0133中,有一个关于嵌入式内容\u包含\u设置的说明:

新的生成设置ALWAYS\u EMBED\u SWIFT\u STANDARD\u库将替换已弃用的EMBEDDED\u CONTENT\u CONTAINS\u SWIFT设置。这一新设置表明,无论目标是否包含Swift代码,Xcode都应始终将Swift标准库嵌入已设置的目标中。使用此设置的典型场景是目标直接使用或嵌入另一个包含Swift代码的产品。26158130

这意味着ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES已取代EMBEDDED_CONTENT_CONTAINS_SWIFT,因此您需要在扩展目标中将以前的ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES更改为NO。

在的SE-0133中,有关于EMBEDDED_CONTENT_CONTAINS_SWIFT设置的说明:

新的生成设置ALWAYS\u EMBED\u SWIFT\u STANDARD\u库将替换已弃用的EMBEDDED\u CONTENT\u CONTAINS\u SWIFT设置。这一新设置表明,无论目标是否包含Swift代码,Xcode都应始终将Swift标准库嵌入已设置的目标中。使用此设置的典型场景是目标直接使用或嵌入另一个包含Swift代码的产品。26158130


这意味着ALWAYS\u EMBED\u SWIFT\u STANDARD\u LIBRARIES已经取代了EMBEDDED\u CONTENT\u CONTAINS\u SWIFT,因此您需要在扩展目标中将以前的ALWAYS\u EMBED\u SWIFT\u STANDARD\u LIBRARIES更改为NO。

查看此解决方案:谢谢@Jake,是的,我也尝试过了-恐怕运气不好,错误仍然存在。在这里查看我的答案-查看此解决方案:谢谢@Jake,是的,我也尝试了此解决方案-恐怕运气不好,错误仍然存在。在这里查看我的答案-自Xcode 8.3以来已弃用。见@Mesird的答案。谢谢。从Xcode 8.3开始就不推荐了。见@Mesird的答案。谢谢