Cpu type/subtype in slice (arm64e.old) does not match fat header (arm64e) in xxx

当看到这个报错时, 讲道理, 我是没什么思路的

image.png

最开始以为是BaiduTraceSDK要更新, 但这个SDK我们已经很久没更新了, 也不打算更新, 因为更新了也不知道会出什么bug, 那么怎么在不更新SDK的情况下解决这个问题呢?

我看到fat header之后, 就想到一个命令:

lipo命令

当我lipoBaiduTraceSDK之后, 发现它真的是一个fat SDK

image.png

我想, 如果我给他瘦身, 让它只含有arm64e会怎样?

lipo BaiduTraceSDK -thin arm64e -output BaiduTraceSDK-arm64e

于是我得到了一个新的可执行文件

image.png

比原来的可执行文件小多了, 原来的是:

image.png

然后, 我把原来的可执行文件删掉, 将新的"瘦"的SDK的文件名改成原来的文件名, 果然, 代码跑起来了.

但是, 在打ad-hoc包的时候, 又出现了这个问题:

image.png

然后我在想, 是不是太瘦了, 因为iPhone XS以后的机型才是arm64e架构, 那如果是这样的可执行文件的话, 就不能在以前的老机型上跑了, 这肯定是不行的, 于是我又通过lipo的拆分命令, 将可执行文件打成arm64的:

image.png

这样跑代码, 打包, 都没有任何问题了

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

推荐阅读更多精彩内容