美文网首页iOS 开发工具
xcrun: error: SDK "iphoneos

xcrun: error: SDK "iphoneos

作者: 王煜仁 | 来源:发表于2018-11-03 14:18 被阅读60次

    今天在终端使用编译脚本编译一个ipa文件包的时候,遇到题目中的错误,在此记录一下处理过程,作为后续学习使用。

    一、环境

        MAC

    二、工具

        终端

    三、编译脚本

    $ sudo xcrun --sdk iphoneos assetutil --info /path/Assets.car > /tmp/Assets.json

    上面的脚本是做什么用的呢?这个是在终端在xcode的环境下将ipa包文件中的Assets.car文件反编译为json格式文件,具体Assets文件是什么,请自行查找了解。

    四、从ipa包的处理流程

    a)、首先是将ipa包文件解压,如下图:

    解压test.ipa包

    a-1)、解压的方式有两种:

        1、在test.ipa添加后缀.zip(即 test.ipa.zip)
        2、按照图中的方式直接解压
        解压后会得到一个Payload文件,文件中是test.app文件

    b)、打开终端,执行以下指令

    $ cd /Users/userName/Downloads/Payload 

    将Payload文件拖到终端就可以显示上面的路径了

    c)、执行指令

    $ find . -name 'Assets.car'

    ./test.app/Assets.car

    执行以上指令,会打印一个路径,该路径就是替换上面加粗path用的

    d)、执行脚本

    $ sudo xcrun --sdk iphoneos assetutil --info ./test.app/Assets.car > /tmp/Assets.json

    以上指令就是将test.app文件下的Assets.car文件编译为Assets.json文件
    箭头(>) 右侧的路径就是最终生成文件存放的路径,可自行指定
    d-1)、执行以上脚本可能会遇到错误xcrun: error: SDK "iphoneos" cannot be located,这个错误是没有指定编译环境造成的

    解决方法:给Xcode命令行工具指定路径

    $ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer/

    //查看sdk路径

    $ xcrun --sdk iphoneos --show-sdk-path

    //查看所有可用sdk

    $ xcodebuild -showsdks

    如果电脑有多个不同版本的xcode(Xcode1, Xcode2....),请指定需要用到的xcode

    全部执行完毕后,在重新执行脚本指令就可以在tmp文件下查看生成的json文件

    d-2)、如果执行上面的脚本运行没有错误,就可以在tmp文件下直接查看生成的json文件了

    mark:

    1、如何查看tmp文件
    打开Finder,使用快捷键command + shift + G,然后输入  /tmp  就可以

    2、什么时候会用到这种操作

    一般ipa上架后可能会出现一些错误,导致线上产品在部分系统版本的手机上会出现闪退问题,此时可能的原因有多种,这里的操作是查看图片文件存在的问题,比如图片使用了16-bit or P3 assets,在iOS9.3以上没问题,所以要往下兼容,需要改成8-bit sRGB assets(表现的结果是图片引用会出现问题)

    如有不足,欢迎指出。Thanks Regards.

    相关文章

      网友评论

        本文标题:xcrun: error: SDK "iphoneos

        本文链接:https://www.haomeiwen.com/subject/ouekxqtx.html