一、错误日志
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
网友评论