libcocos2d tvOS.a (bio_lib.o) 'не содержит битового кода

При компиляции cocos2d-js для проекта AppleTV я получаю такую ​​ошибку:

ld: '/ Users / pepa / Library / Developer / Xcode / DerivedData / GameXY-gwkkxwmtiilmalhdxfdjgqdfhedy / Build / Products / Debug-appletvos / libcocos2d tvOS.a (bio_lib.o)' не содержит битового кода. Вы должны перестроить его с включенным битовым кодом (параметр Xcode ENABLE_BITCODE) или получить обновленную библиотеку от поставщика для архитектуры arm64 clang: error: команда компоновщика завершилась неудачно с кодом выхода 1 (используйте -v, чтобы увидеть вызов)

Я считаю, что я включил только библиотеки, созданные для цели AppleTV с включенным битовым кодом. Но компилятор все еще жалуется. Подсказка, чтобы сказать, какая библиотека пропустила битовый код в скобках? (bio_lib.o)

Если да, знаете ли вы, к какой библиотеке он принадлежит? Я не нашел его на своем компьютере. Я использую готовые двоичные файлы отсюда: https://github.com/elvman/cocos2d-x-3rd-party-libs-bin/tree/tvos


person PerfectGamesOnline.com    schedule 09.11.2015    source источник
comment
Библиотека с отсутствующим битовым кодом - libcocos2d tvOS.a.   -  person trojanfoe    schedule 09.11.2015
comment
Забыл упомянуть об этом в описании. Libcocos2d tvOS.a - это подпроект, состоящий из множества библиотек. Один из них вызывает проблему, и ни один из них не называется bio_lib. Это единственное указание, которое я вижу в скобках после имени основной библиотеки.   -  person PerfectGamesOnline.com    schedule 10.11.2015
comment
Я не знаю, что вы от нас ждете?   -  person trojanfoe    schedule 10.11.2015


Ответы (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 и измените 2 строки в файле tvos.ini:

    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

person user1675169    schedule 28.11.2015

Хорошо для всех, кто пытается собрать cocos2d-x (3.10) для iOS с включенным Bitcode. Я сделал это, основываясь на ответе пользователя 1675169 (https://stackoverflow.com/a/33969215/129202), но конечно, я заменил os в строке build.sh, и мне пришлось заменить все это по одному:

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

Мне потребовалось время, чтобы заменить все до единого. В зависимости от того, что вы используете в своем проекте cocos2d-x, вам может потребоваться заменить и другие библиотеки. Вероятно, в конце cocos2d-x 3.11 будет поставляться со всеми этими библиотеками, перекомпилированными с включенным битовым кодом.

Строка перекомпиляции может выглядеть так:

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

В конце концов, я смог предварительно скомпилировать всю libcocos2d с включенным битовым кодом. Я еще не пробовал отправить это в iTunes Connect, но думаю, в конце концов, это может сработать.

person Jonny    schedule 23.02.2016
comment
Просто комментарий: приложение, использующее эту библиотеку, находится в магазине приложений месяц или два. - person Jonny; 03.06.2016
comment
Вы знаете, сталкиваюсь ли я с той же проблемой, если получаю следующее? Я не уверен, какую библиотеку заменить, если да ....... / Build / Products / Debug-iphoneos / libcocos2d_iOS.a (base64-decode.o) 'не содержит битового кода. Вы должны перестроить его с включенным битовым кодом (параметр Xcode ENABLE_BITCODE), получить обновленную библиотеку от поставщика или отключить битовый код для этой цели. для архитектуры arm64 - person Christine Loh; 07.06.2016
comment
Ах, разобрался - base64-decode принадлежит libwebsockets.a. Вышеупомянутая строка сработала для меня (с --libs = websockets) в конечном итоге при компиляции libcocos2d с битовым кодом. - person Christine Loh; 07.06.2016
comment
Кстати, в cocos2d-x 3.11.1 НЕ добавлена ​​поддержка битового кода :-( - person Jonny; 08.06.2016
comment
И что еще хуже, я не могу получить от этого хорошую библиотеку. Они обновили Chipmunk, но похоже, что код Chipmunk 7 находится не на github.com/cocos2d/cocos2d-x-3rd-party-libs-src.git - person Jonny; 08.06.2016
comment
Да, к сожалению, мне пришлось вручную создавать библиотеки с поддержкой битового кода Chipmunk через github.com/slembcke/Chipmunk2D. - person Christine Loh; 11.06.2016