多个小组件开发上传ipa问题

一、错误日志

Invalid Mach-O header. The __swift5_entry section is missing for the “Payload/xx.app/PlugIns/xxxExtension.appex” extension bundle, which prevents the extension from running. You can run the otool command against your binary to ensure there’s a __swift5_entry section. (ID: xxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxxxx)

二、问题源头

因为项目一次性开发了10个小组件需要更新版本,10个小组件创建的时候都是用的File -> New -> Target,但是只留了一个 WidgetBundle 作为 main 主入口,10个组件都放到同一个 WidgetBundle 里面引用


10个组件.png
代码目录结构.png

以上,本地开发调试,以及打包安装调试都OK,但提审 上传ipa的时候,报错了。
Invalid Mach-O header. The __swift5_entry section is missing for the “Payload/xx.app/PlugIns/xxxExtension.appex” extension bundle。

三、解决方法

只保留一个target,然后将10个小组件的Widget Struct 文件复制到此target下。修改后的目录结构:


修改后的目录结构.png

第一次做小组件开发,不确定实现多个小组件是这种方法好,还是有其他的方法。历经半个月从没有接触过swiftUI到开发完10个小组件,中间也经历过几个坑(定时刷新,多个组件的实现,组件按钮的点击传参,ipa上传的“Invalid Mach-O header.”错误等等)。但是,办法总比困难多。

因为自己在网上也没有找到这个问题的解决方法,特意把错误的日志信息贴文章里面,方便检索。如果有类似问题的,可以联系我一起探讨。

小组件样式.jpg
小组件样式.jpg
小组件样式.jpg
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容