M1静态库和动态库报错

M1静态库和动态库报错

之前在intel电脑上

模拟器用的是x86_64模拟器的app也是一样的

真机用的是arm 64

所以之前静态库就需要打两个包

然后再合并

现在M1的就不一样了

M1就是arm64

模拟器用的就是arm64

所以之前用intel的电脑上打包的就不能用了

因为之前intel电脑上是x86_64架构的

但是之前的真机是arm64理论上来说应该也是可以的

但是Xcode会判断一下

真机走真机的包

模拟器走模拟器的包

所以说才会报错

那问题找到了

最好的解决办法就是

重新打包

打包成XCFramework就可以了

.a

1
xcodebuild -create-xcframework -library <path> [-headers <path>] [-library <path> [-headers <path>]...] -output <path>

demo

1
xcodebuild -create-xcframework -library youpath/TestFramework.a -headers youpath/TestFramework -library youpath/TestFramework.a -headers youpath/TestFramework -output youpath/TestFramework.xcframework

framework

1
xcodebuild -create-xcframework -framework <path> [-framework <path>...] -output <path>

demo

1
xcodebuild -create-xcframework -framework Release-iphoneos/TestFramework.framework -framework Release-iphonesimulator/TestFramework.framework -output TestFramework.xcframework

还有一种方法

就是用让模拟器用Rosetta模式启动

不是Xcode

是模拟器