一、报错描述
今日打包上传到AppStore时,报了以下错误:
ERROR ITMS-90206:"Invalid Bundle. The bundle at 'XXX.appex' contains disallowed file 'Frameworks'."
报错截图如下:
二、问题分析
将报错翻译一下,意思是说:无效的包。此包的xxx.appex
中包含Frameworks,而实际不应该包含任何Frameworks的。
具体到我的项目中,BroadCast
是一个Extension
工程。既然报错中有具体路径,我们不妨将上传失败的包导出来,看看包里的xxx.app/Pluglns/XXX.appex
中是否包含Frameworks。
三、定位问题
将XXX.ipa
包后缀改成.zip
,然后解压缩--找到XXX.app
--显示包内容--选中XXX.appex
--显示包内容,最后如下图所示:
果然,在对应的路径找到了不应该出现的Frameworks目录!
四、问题解决
猜想:可能是extension工程包含了Frameworks之后,会和主工程造成重复包含,所以报这个错误。
解决步骤:
1、在Build Settings中设置主工程的Always Embed Swift Standard Libraries设为YES
2、在子工程的Always Embed Swift Standard Libraries设为NO
到此,大功告成!