libcocos2d tvOS.a(bio_lib.o)'不包含bitcode

时间:2015-11-09 16:44:15

标签: xcode xcode7 tvos apple-tv bitcode

为AppleTV项目编译cocos2d-js时收到此错误:

  

ld:' / Users / pepa / Library / Developer / Xcode / DerivedData / GameXY-gwkkxwmtiilmalhdxfdjgqdfhedy / Build / Products / Debug-appletvos / libcocos2d   tvOS.a(bio_lib.o)'不包含bitcode。你必须重建它   bitcode启用(Xcode设置ENABLE_BITCODE)或获取更新   来自供应商的架构arm64的库   clang:错误:链接器命令失败,退出代码为1(使用-v查看调用)

我相信我只包含了为启用了bitcode的AppleTV目标而构建的库。但编译器仍在抱怨。是否提示告诉哪个库错过括号中的bitcode? (bio_lib.o)

如果是这样,你会知道它属于哪个库吗?我在电脑上找不到它。 我在这里使用预建的二进制文件:https://github.com/elvman/cocos2d-x-3rd-party-libs-bin/tree/tvos

2 个答案:

答案 0 :(得分:2)

使用后续步骤:

  1. 安装git,make,autoconf,automake,libtool。如果您使用的是Homebrew,可以通过以下方式完成:

    brew install git make autoconf automake libtool

  2. 克隆存储库:

    git clone https://github.com/cocos2d/cocos2d-x-3rd-party-libs-src.git

  3. 转到cocos2d-x-3rd-party-libs-src/build并更改文件tvos.ini中的2行:

    cfg_build_release_mode="-O3 -DNDEBUG -fembed-bitcode"

    cfg_build_debug_mode="-O0 -g -DDEBUG -fembed-bitcode"

  4. 运行构建脚本:

    build.sh -p=tvos --libs=curl --arch=arm64,x86_64 --mode=release

  5. 更新libcurl.a加密和ssl库

答案 1 :(得分:1)

对于那些来这里尝试使用Bitcode为iOS构建cocos2d-x(3.10)的人来说没问题。我是根据user1675169(https://stackoverflow.com/a/33969215/129202)的答案做到的,但当然我替换了build.sh行中的os,我不得不逐个替换所有这些:

  • libtiff.a
  • libwebp.a
  • libchipmunk.a
  • libjpeg.a
  • libpng.a
  • libfreetype.a

我需要一段时间才能更换每一个人。根据您在cocos2d-x项目中使用的内容,您可能还需要替换其他库。可能最终cocos2d-x 3.11将首先与所有这些库重新编译,并且首先启用了bitcode。

重新编译行可能如下所示:

build.sh -p=ios --libs=tiff --arch=arm64,x86_64 --mode=release

最后,我能够在启用bitcode的情况下预编译整个libcocos2d。我还没有尝试过将其发送到iTunes Connect,但我想它最终可能会有效。