关于发布辞書(v6.6.0)到App Store Content时报错的问题

报错信息:

App Store Connect Operation Error
ERROR ITMS-90205: “Invalid Bundle. The bundle at ‘MOJiDict.app/PlugIns/NewWidgetExtension.appex’ contains disallowed nested bundles.”

App Store Connect Operation Error
ERROR ITMS-90206: “Invalid Bundle. The bundle at ‘MOJiDict.app/PlugIns/NewWidgetExtension.appex’ contains disallowed file ‘Frameworks.'”

从上面的信息可以了解到:扩展应用(NewWidgetExtension.appex)包含了不被允许的嵌套包。

框架配置图:

原扩展应用的框架配置(图1):

通过原有扩展应用发现,嵌套方式均为Do not Embed。

新扩展应用的框架配置(图2):

该处的BackendConfigRawSwift.xcframework框架被Embed & Sign。

发现线索:

1.发布APP时,显示的包信息,其中New Widget扩展应用下面有一条记录,显示的正是BackendConfigRawSwift.xcframework;

2.stackoverflow平台上有网友反馈:扩展应用不支持自定义框架embed,他只能被引用;(附链接:https://stackoverflow.com/questions/30361864/invalid-bundle-the-bundle-contains-disallowed-nested-bundles-contains-disallow/60264963#60264963?newreg=09a539d9ff2c44f2bca729c9c2d63926

3.对比图1、图2:发现只有图2中的NewWidgetExtension扩展应用多出了一个Embed项;

通过以上发现基本上可以确定:扩展应用不支持Embed框架(自定义或系统),他只能被引用(设置Do not Embed即可)。

总结:

扩展应用,不支持Embed框架(不管是自定义还是系统框架),只能被引用(需设置为Do not Embed);同时,Embed框架的操作只能交给主项目。