Xcode7真机测试的问题

作者: 我真的真的是文艺青年 | 来源:发表于2015-11-24 10:24 被阅读254次

    问题:    Xcode升级到7以后正常调试是没有问题的,但是在Archive的时候会出现一个包含标题的提示行错误

    “(null): URGENT: all bitcode will be dropped because ‘xxxx’ was built without bitcode. You must rebuild it with bitcode enabled (Xcode setting ENABLE_BITCODE), obtain an updated library from the vendor, or disable bitcode for this target. Note: This will be an error in the future.”


    从上面的错误可以看出,这是因为一个第三方的库不兼容,工程中开启了ENABLE_BITCODE(升级之后自动转换的),这个第三方库在编译的时候是没有ENABLE_BITCODE。


    解决方法

    1:直接换成enable bitcode的第三方库;

    2:将工程中的ENABLE_BITCODE设置成false就可以了,如下图所示


    下面是一些关于bitcode的介绍

    1.对于bitcode的官方解释是

    Bitcode is an intermediate representation of a compiled program. Apps you upload to iTunes Connect that contain bitcode will be compiled and linked on the App Store. Including bitcode will allow Apple to re-optimize your app binary in the future without the need to submit a new version of your app to the store.

    说的是bitcode是被编译程序的一种中间形式的代码。包含bitcode配置的程序将会在App store上被编译和链接。bitcode允许苹果在后期重新优化程序的二进制文件,而不需要重新提交一个新的版本到App store上。

    当提交程序到App store上时,Xcode会将程序编译为一个中间表现形式(bitcode)。然后App store会再将这个botcode编译为可执行的64位或32位程序。再看看这两段描述,都是放在App Thinning(App瘦身)一节中,可以看出其与包的优化有关了。

    2.实际上,在Xcode 7中,我们新建一个iOS程序时,bitcode选项默认是设置为YES的。我们可以在”Build Settings”->”Enable Bitcode”选项中看到这个设置。不过,我们现在需要考虑的是三个平台:iOS,Mac OS,watchOS。

    对于iOS,bitcode是可选的;对于watchOS,bitcode是必须的;而Mac OS是不支持bitcode。

    所以,如果我们的工程需要支持bitcode,则必要要求所有引入的第三方库都支持bitcode。

    通过本文对bitcode的概念及配置情况的简要介绍,希望iOS开发人员在工程运行中遇到类似的情况,可以根据上文的介绍更有效的找到原因并及时处理。

    相关文章

      网友评论

        本文标题:Xcode7真机测试的问题

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