问题记录贴
记录--公司打包的一键报警SDK在上架时报错重复包名和无效包_苹果商店
这是其他App集成了我们的SDK上架报的错。网上很多用脚本修改什么的,显然不太合适,毕竟我要从根本上解决这个问题让其他人可以直接使用。
我们的项目是基于webRTC的,所以集成了这个包,前同事在打包时将这个包包含在了SDK中而且公开该包。使用SDK的时候又集成了一次webRTC,所以导致bundle重复。而且90205和90206的错误表示嵌套包是不被苹果商店允许的。

解决办法

只能从包中把嵌套的包去除(生成SDK时不要暴露该包,打的包里可以调用第三方的库,只要不暴露出来形成嵌套包就可以)。

其他问题

其中,我还遇到了其他问题:不包含armv7,包含x86_64。
不包含armv7的问题重新打次包就好了,Targets->Build Setting->Valid Architectures 里默认不修改就可以了(arm64 arm64e armv7 armv7s)。
x86_64是webRTC包含的,去除掉就可以了。下面是去除的方法。
进入WebRTC.framework所在目录,在控制台执行:
lipo -remove x86_64 WebRTC.framework/WebRTC -o WebRTC.framework/WebRTC。
查看库支持的架构
lipo -info WebRTC.framework/WebRTC
控制台打印内容:

Architectures in the fat file: WebRTC.framework/WebRTC are: armv7 arm64 

lipo命令的用法

序言:lipo是管理Fat File的工具, 可以查看cpu架构, 提取特定架构,整合和拆分库文件。

lipo -info xxxx.framework/xxxx或/xxxx.a
查看信息,支持的cpu架构列表

lipo -create xxxx xxxx -output xxxx
整合成Fat文件

lipo xxxx -thin cpu(armv7/arm64等) -output xxxx
提取特定的cpu架构的thin文件

lipo -remove cpu(armv7/arm64等) xxxx -output xxxx
移除掉特定的cpu架构的文件