发布包 SVGKit 引起的bug锦集

1,Couldn't find platform family in Info.plist CFBundleSupportedPlatforms or Mach-O LC_VERSION_MIN for CocoaLumberjack

Snip20180514_1.png

CocoaLumberjack.framework框架中包含.dSYM,打包时会与上传到iTunes connect的包冲突,所以如下图删除.dSYM文件就不会报错了

Snip20180514_2.png

2,ERROR ITMS-90087: "Unsupported Architectures. The executable for Welfares.app/Frameworks/CocoaLumberjack.framework contains unsupported architectures '[x86_64, i386]'." An unknown error occurred.

Snip20180514_6.png

SVGKit插件依赖CocoaLumberjack.framework,该框架中包含了x86_64、i386、arm64、armv7 架构,iTunes connect上传ipa时,苹果不允许包含x86_64、i386框架,所以要剔除后,留下仅包含arm64、armv7 架构的CocoaLumberjack.framework,才能正常审核。

(1)查看CocoaLumberjack.framework包含的平台:


Snip20180514_3.png

如图进入CocoaLumberjack所在的文件夹,终端输入

$ lipo -info CocoaLumberjack

路径正确,终端会输出:
Architectures in the fat file: CocoaLumberjack are: i386 x86_64 armv7 arm64

(2)剔除i386 x86_64架构
注:先保存一份原有的,以免剔除有误,备用

在查看包含平台的文件夹下,终端输入:

$ lipo CocoaLumberjack -thin arm64 -output CocoaLumberjack_arm64

命令的意思是从原有CocoaLumberjack中抽离出来arm64架构生成新文件,但是源文件还是包含x86_64、i386、arm64、armv7 ,只是新文件只包含arm64一个架构

回车之后文件夹下回多出来一个文件如图:


Snip20180514_4.png

同样,在同目录下,终端输入:
$ lipo CocoaLumberjack -thin armv7 -output CocoaLumberjack_armv7

回车之后文件夹下回多出来一个文件如图:


Snip20180514_5.png

合并arm64与armv7生成新CocoaLumberjack,并替换掉原来的CocoaLumberjack
还是在之前的目录下,终端输入:

$ lipo -create CocoaLumberjack_armv7 CocoaLumberjack_arm64 -output CocoaLumberjack

此时CocoaLumberjack之前的含有x86_64、i386、arm64、armv7 架构已经被替换成只含有arm64、armv7 两个架构,即已经剔除了x86_64和i386,删除掉CocoaLumberjack_arm64与CocoaLumberjack_armv7

终端输入$ lipo -info CocoaLumberjack验证,
如果终端输出
Architectures in the fat file: CocoaLumberjack are: armv7 arm64 说明剔除成功

重新编译打包,就可以上传到iTunes connect了

----------------- 更新线 -------------------------

用 SVGKit 坑还是蛮多的,记录一下
1,开发版本,最好用没有剔除过的,源CocoaLumberjack.framework 框架,否则模拟器运行不了项目
2,发布版本,用剔除过来的,记得更换framework过程中,target的配置细节,
(1)添加 CocoaLumberjack.framework


image.png

(2)删除 CocoaLumberjack 的 dSYM 文件


image.png

你可能感兴趣的:(发布包 SVGKit 引起的bug锦集)