美文网首页
iOS-打包报IPA processing failed错误

iOS-打包报IPA processing failed错误

作者: 翀鹰精灵 | 来源:发表于2022-04-28 12:53 被阅读0次

    XCode 13 打包报错:IPA processing failed,这是我们项目中遇到的问题,通过Xcode直接在手机上Run,是可以正常运行的,但是导出IPA包的时候一直提示报错,网上查阅了一番资料,基本就以下几个方案:

    网上方案千千万,但是针对项目有效可行的除了拼手速的,没有可行方案。拼手速取消Rebuild form Bitcode属于临时应急方案,又不能从根本解决问题,仔细看了下这几个文章,其中有一句话引起了我的注意:项目中使用的SDK支持i386,x86_86这个架构,猜测是iOS13强制不支持模拟器架构打包,应该是某framework的问题 。那就首先查阅项目中的自定义的framework,发现真有两个比较异常的,发现是动态库,假设库名为A.framework,B.frmework,移除这两个库中的其中一个库,最后排查定位B.framework的动态库有问题,至此,首先定位到问题了。

    image.png

    查看b.framewok的目录结构如下,发现b.framework是个动态库,里面还有一个framework包含两个.a静态库:

    image.png image.png

    这种情况一分析就是Framework 嵌套与依赖 或者 静态库&动态库依赖探索 相关的问题了,查阅相关资料发现,文章中动态库依赖静态库的场景有句话引起我的注意:

    image.png

    联想项目中的动态库,感觉有点问题,这里有两种解决思路:
    ① 尝试将b.framework的动态库改为静态库;
    ② 将两个.a的静态库完全打到b.framework的动态库中;

    基于对动态库了解不太熟悉,这里我先选择第一个方案,将b.framework的动态库改为静态库重新打包:

    image.png

    再次将这个b.framework的静态库引入项目中,选择 Do Not Embed 不签名方式,再次重新打包,发现可以正常打包了。

    image.png

    至此这个打包报错问题得到根本解决。这种问题一般都是静态东和静态库相互嵌套引起的,可以着重从这方面入手排查,当然还是得具体问题具体分析,结合项目框架来定位问题。

    END.

    相关文章

      网友评论

          本文标题:iOS-打包报IPA processing failed错误

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