Xcode11打包导出不成功 IPA processing fa

作者: 瞌睡树懒 | 来源:发表于2019-10-08 17:25 被阅读0次

    咱接着来说IPA processing failed 打包失败的问题哈哈哈
    如果不知道看上个文章https://www.jianshu.com/p/27d780350211
    看见这个大佬的文章又写的 作者:进阶的coder 来源:掘金
    再先说下Xcode11新特性
    深色模式
    如果没有任何配置的话,升级后,APP的很多配置会随着深色浅色模式的修改而改动。但是对于我司来说,目前还没有任何资源去适配深色模式。解决方案苹果已经提供。本质上来说是在代码层面屏蔽深色模式。

    image.png
    我这直接就给隐藏了
    还有解决方案:
    在plist文件里新增属性User Interface Style 数据格式为string。值设置为Light。
    拓展:
    1.当然如果你要求强制适配深色模式就把值改为Dark。如果需要根据用户的设置而改变,那就别设置这个属性直接删掉就好了。
    2.当上面的属性设置为Light或者Dark后,你的状态栏文字颜色就会随着你的
    Status bar style属性的改变而改变。这个属性可以在Plist文件里设置,也可以在General里设置如下:
    image.png

    3.这里需要注意:
    plist文件的里这个属性(View controller-based status bar appearance)一定要设置会NO。如果不设置或者设置会YES。都会导致User Interface Style与Status bar style这个两个配置失效。
    上边解决的作者:进阶的coder

    继续说IPA processing failed
    不只是前几天 现在也是一脸懵逼的点开show logs 如下


    image.png

    点开后就是 上个文章的那个文本里一堆。。
    我是企业打包 上传AppStore我尝试好像没问题。其他的打包方式都会报这个错。
    目前网上找到的解决方案跟解释都没能解决我这个问题。
    1.有人说是如果APP不支持ipad,就不要勾选ipad。
    2.有人说是部分第三方库导致的,更新一下就好了。(我觉得不是 就算是的话还一个一个的去弄么 一个大项目里边儿会又很多吧)
    解决方案
    熟悉编译与系统原理的朋友,面对这个问题应该很好解决,不走xcode的打包就好了。现在把步骤解释如下:
    1.先把项目的环境配置好,例如你要打developer包,就先在项目里把相应的描述文件跟证书配置好,然后command +B(编译)。编译完成后,找到项目文件夹里的.app文件。
    2.选中该文件,show in finder。然后压缩。压缩完成后把压缩包后缀改为ipa。
    这样就完成了,该分发分发,该重签名重签名。

    这个方法比较麻烦并且会出现最后安装报错的情况APIinternalError...
    之后在[@Leoeoo] 大神的告诉下说是
    iOS13苹果取消了32位系统的支持,SDK包含i386 x86_64架构
    所以我就根据大神的提示看了下IDEDistribution.standard.log
    就找到了


    image.png

    由于大神那时还没回复我用:lipo -remove x86_64 NIMSDK -o NIMSDK 删掉
    所以我就在自己搜寻了下剔除掉x86_64, i386这两个架构SDK
    网上看的一种不保险的的方法是在程序里加一个脚本,剔除禁止的架构 好像也是可以的(是可以,但是真机下就不行了 会报错 下面会说 )()
    主要操作流程如下
    解决办法:TARGETS->Build Phases->点击加号选择New Run Script Phase->然后复制粘贴下面代码


    image.png
    # Type a script or drag a script file from your workspace to insert its path.
    APP_PATH="${TARGET_BUILD_DIR}/${WRAPPER_NAME}"                                           
    
    # This script loops through the frameworks embedded in the application and
    
    # removes unused architectures.
    
    find "$APP_PATH" -name '*.framework' -type d | while read -r FRAMEWORK
    
    do
    
    FRAMEWORK_EXECUTABLE_NAME=$(defaults read "$FRAMEWORK/Info.plist" CFBundleExecutable)
    
    FRAMEWORK_EXECUTABLE_PATH="$FRAMEWORK/$FRAMEWORK_EXECUTABLE_NAME"
    
    echo "Executable is $FRAMEWORK_EXECUTABLE_PATH"
    
    EXTRACTED_ARCHS=()
    
    for ARCH in $ARCHS
    
    do
    
    echo "Extracting $ARCH from $FRAMEWORK_EXECUTABLE_NAME"
    
    lipo -extract "$ARCH" "$FRAMEWORK_EXECUTABLE_PATH" -o "$FRAMEWORK_EXECUTABLE_PATH-$ARCH"
    
    EXTRACTED_ARCHS+=("$FRAMEWORK_EXECUTABLE_PATH-$ARCH")
    
    done
    
    echo "Merging extracted architectures: ${ARCHS}"
    
    lipo -o "$FRAMEWORK_EXECUTABLE_PATH-merged" -create "${EXTRACTED_ARCHS[@]}"
    
    rm "${EXTRACTED_ARCHS[@]}"
    
    echo "Replacing original executable with thinned version"
    
    rm "$FRAMEWORK_EXECUTABLE_PATH"
    
    mv "$FRAMEWORK_EXECUTABLE_PATH-merged" "$FRAMEWORK_EXECUTABLE_PATH"
    
    done
    

    结束打包 完美解决~~~ (此事件应该画上句号了)但是
    没想到 真机跑的时候我又出现了(不知道你们啊)

    image.png

    所以先找找看吧 就找到了new build system(我记得我以前弄过)
    Xcode菜单栏选择File-- Workspace Setting,把new build system(Defalt)切换到 Legacy Build System 在模拟器上运行就OK!


    image.png

    以为OK了 又出现了


    image.png
    image.png

    一些错误就迷茫了~ 如果有大佬知道怎么继续解决告诉我下😂
    后来想反正都是删这个东西
    看来还是得用大神的方法 那咱就继续操作 https://www.jianshu.com/p/0145916f2139
    一个一个删吧
    还是得需要记录下的~

    image.png
    先找到那个log 所用的API是那个 我的是这个
    各种架构解释:
    模拟器32位处理器测试需要i386架构,(iphone5,iphone5s以下的模拟器)
    模拟器64位处理器测试需要x86_64架构,(iphone6以上的模拟器)
    真机32位处理器需要armv7,或者armv7s架构,(iphone4真机/armv7, ipnone5,iphone5s真机/armv7s)
    真机64位处理器需要arm64架构。(iphone6,iphone6p以上的真机)
    解决办法
    删除SDK中的i386,x86_86架构
    我当前使用到了NIMSDK.framework这个SDK,假设NIMSDK.framework存放的目录是:
    /Users/leo/Desktop/testDir/NIMSDK.framework
    1.使用终端进入到SDK内部
    cd /Users/leo/Desktop/testDir/NIMSDK.framework
    2.查看当前支持的架构
    lipo -info NIMSDK
    可以看到NIMSDK当前支持的架构:
    Architectures in the fat file: NIMSDK are: i386 x86_64 armv7 arm64
    3.删掉i386,x86_86
    lipo -remove i386 NIMSDK -o NIMSDK
    lipo -remove x86_64 NIMSDK -o NIMSDK
    

    弄好了弄了一次之后打包还是不行 我就又看啊~
    原来还是这个 是另个API 周而复始 我删了4个
    抱着满怀期望打包成功了 成功了不行啊 我就看了下真机可以不 也OK (反正我司暂时不需要模拟器)
    可算
    画上句号了~~~!!!!!!!!!!!!
    有帮到你的话先点个赞吧哈哈~

    还有个Xcode11:隐蔽的点点点 我这个我给去掉了是10的时候就去了?


    image.png

    要隐藏这些点点点,看下图:只需要不勾选这个选项就好了。


    image.png

    相关文章

      网友评论

        本文标题:Xcode11打包导出不成功 IPA processing fa

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