Xcode12 遇到lipo error 错误 same architectures (arm64) and can't be in the same fat

1,448 阅读1分钟

第一:执行lipo -create 命令后,发现报错了,如下图:

第二:然后执行查看模拟器架构命令,发现原来模拟器包里面包含了arm64架构,如下:

lipo -info /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphonesimulator/xxxSDK.framework/xxxSDK
Architectures in the fat file: /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphonesimulator/xxxSDK.framework/xxxSDK are: arm64 x86_64

第三:于是要把模拟器包里面的arm64架构移除掉,然后执行了lipo -remove arm64命令,如下:

lipo -remove arm64 /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphonesimulator/xxxSDK.framework/xxxSDK -output /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphonesimulator/xxxSDK

第四:然后执行lipo -create 命令合并真机和模拟器静态库命令,如下:

❯ lipo -create /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphoneos/xxxSDK.framework/xxxSDK /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphonesimulator/xxxSDK -output /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphoneos/xxxSDK

第五:然后对终于合并成功的framework,执行lipo -info 查看架构命令,发现合并后的framework是armv7 x86_64 arm64三种架构,那这个问题就解决了,Good,具体如下:

❯ lipo -info /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphoneos/xxxSDK
Architectures in the fat file: /Users/xxx/Library/Developer/Xcode/DerivedData/xxxSDK-gnfuvntudubpnbdpvilwlubruoha/Build/Products/Release-iphoneos/xxxSDK are: armv7 x86_64 arm64