1、编译实体机版本
export CFLAGS="-arch arm64 -miphoneos-version-min=15.0 -isysroot "$(xcrun -sdk iphoneos --show-sdk-path)
export CGO_LDFLAGS="-arch arm64 -miphoneos-version-min=15.0 -isysroot "$(xcrun -sdk iphoneos --show-sdk-path)
CGO_ENABLED=1 GOARCH=arm64 GOOS=darwin CC="clang $CFLAGS $CGO_LDFLAGS" go build -tags ios -ldflags=-w -trimpath -v -o "demo.a" -buildmode c-archive
编译完成之后建议拷贝到一个新的文件夹。为后面合并.a做准备
2、编译模拟器版本
export CFLAGS="-arch x86_64 -miphoneos-version-min=15.0 -isysroot "$(xcrun -sdk iphonesimulator --show-sdk-path)
export CGO_LDFLAGS="-arch x86_64 -miphoneos-version-min=15.0 -isysroot "$(xcrun -sdk iphonesimulator --show-sdk-path)
CGO_ENABLED=1 GOARCH=amd64 GOOS=darwin CC="clang $CFLAGS $CGO_LDFLAGS" go build -tags ios -ldflags=-w -trimpath -v -o "demo.a" -buildmode c-archive
同样编译完成之后建议拷贝到一个新的文件夹。为后面合并.a做准备
3、合并.a文件,制作通用静态库
lipo -create iOS/iphoneos/demo.a iOS/iphonesimulator/demo.a - output SQY/iOS/demo.a
如果你的.a文件在同一个文件夹下,可以使用下面的命令
lipo -create *a(或者a.a b.a c.a) -output xxx.a
然后可以输入命令测试下是否成功 :
lipo -info iOS/demo.a