由于 iOS 编译的特殊性,为了方便开发者在模拟器调试,很多 SDK 将i386
、x86_64
、armv7
、arm64
几个平台都合并到了一起。在开发阶段都没有问题,但生产编译上传到 App Store 时,需要将i386
和x86_64
两个平台的库删除,否则无法正常提交审核。
以环信Hyphenate.framework
为例,具体操作如下:
-
先把
Hyphenate.framework
拷贝一份; -
从
Hyphenate.framework
剥离出armv7
和arm64
的库// armv7 lipo Hyphenate.framework/Hyphenate -thin armv7 -output Hyphenate_armv7 // arm64 lipo Hyphenate.framework/Hyphenate -thin arm64 -output Hyphenate_arm64
-
将
armv7
和arm64
的库打包lipo -create Hyphenate_armv7 Hyphenate_arm64 -output Hyphenate
-
修改文件名
mv Hyphenate Hyphenate.framework
-
以上操作后,使用新的
Hyphenate.framework
替换到项目中,然后重新编译就行了。
PS:注意最后得到的包必须真机编译运行,并且工程要设置编译二进制文件General
->Embedded Bunaries
。