美文网首页
【转】Xcode 与 bitcode 的几个小知识点

【转】Xcode 与 bitcode 的几个小知识点

作者: 棒棒德 | 来源:发表于2020-12-04 12:57 被阅读0次

    原文链接:

    https://mp.weixin.qq.com/s/l8ZkUdxl4y4e-qKg95G3Bw

    开启 Enable Bitcode 配置后,不会触发额外的代码优化

    根据官方文档,在 Build Settings 页面开启 Enable Bitcode (ENABLE_BITCODE) 选项后,会在 Archive 时,在支持的平台和架构上生成 bitcode 代码。

    注意:只有通过 Archive 模式导出并提交到 App Store 时,才可能被苹果进行进一步的代码优化。

    BITCODE_GENERATION_MODE

    BITCODE_GENERATION_MODE 是 Xcode 定义的一个枚举值。

    它存在两种可能值:marker 和 bitcode。

    marker 代表编译的二进制文件只包含 size 等于 1 的 marker进行占位。

    bitcode 代表编译的二进制文件包含真正的 bitcode 信息。

    {

    Name="BITCODE_GENERATION_MODE";

    Type=enum;

    Values= (

    "marker",

    "bitcode",

    );

    DefaultValue= marker;

    }

    CLANG_BITCODE_GENERATION_MODE

    CLANG_BITCODE_GENERATION_MODE 是 Xcode 的隐藏配置项。

    该配置项只在开启 ENABLE_BITCODE 配置,并且编译目标的架构属于 arm64, arm64e, armv7, armv7s, armv7k 之一时才会生效。

    当开发者开启 Enable Bitcode (ENABLE_BITCODE) 选项后,会在 Archive 时,传入编译参数 -fembed-bitcode。

    其它情况下,会传入编译参数 -fembed-bitcode-marker。

    // Generate bitcode options - not visible in the build settings.

    {

        Name="CLANG_BITCODE_GENERATION_MODE";

        Type= Enumeration;

        Values= (

    none,

    marker,

    bitcode,

    );

        DefaultValue="$(BITCODE_GENERATION_MODE)";

        Architectures= ( arm64, arm64e, armv7, armv7s, armv7k );

        Condition="$(ENABLE_BITCODE) == YES";

        CommandLineArgs= {

    marker = (

    "-fembed-bitcode-marker",

    );

    bitcode = (

    "-fembed-bitcode",

    );

    }

    }

    LD_BITCODE_GENERATION_MODE

    与 CLANG_BITCODE_GENERATION_MODE 类似,唯一的区别是两个配置分别影响 编译 和 链接 两个阶段。

    // Bitcode options

    {

        Name="LD_BITCODE_GENERATION_MODE";

        Type= Enumeration;

        Values= (

    marker,

    bitcode,

    );

        DefaultValue="$(BITCODE_GENERATION_MODE)";

        Architectures= (

    arm64e,

    arm64,

    armv7,

    armv7s,

    armv7k,

    );

        Condition="$(ENABLE_BITCODE) == YES";

        CommandLineArgs= {

    marker = (

    "-fembed-bitcode-marker",

    );

    bitcode = (

    "-fembed-bitcode",

    );

    };

    }

    相关文章

      网友评论

          本文标题:【转】Xcode 与 bitcode 的几个小知识点

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