Ошибка построения библиотеки webrtc для iOS

Я пытался создать webrtc для iOS, следуя указаниям Google по адресу http://www.webrtc.org/native-code/ios (и связанные ссылки). Хотя я вспоминаю, что с помощью аналогичных шагов я смог построить его в прошлом, это уже не так.

Вот шаги, которые я сделал:

  1. Скачать предварительные условия:

    $ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git

    $ export PATH = `pwd` / depot_tools:" $ PATH "

  2. Скачать репо:

    $ export GYP_DEFINES = "OS = ios"

    $ fetch webrtc_ios

  3. Подготовить сборку:

    $ cd webrtc / src

    $ export GYP_DEFINES = "build_with_libjingle = 1 build_with_chromium = 0 libjingle_objc = 1"

    $ export GYP_DEFINES = "$ GYP_DEFINES OS = ios target_arch = armv7"

    $ export GYP_GENERATOR_FLAGS = "output_dir = out_ios"

    $ export GYP_CROSSCOMPILE = 1

    $ gclient runhooks

  4. Телосложение:

    $ ninja -C out_ios / Debug-iphoneos AppRTCDemo

Все в порядке, пока последняя команда не работает с /bin/sh: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc: Нет такого файла или каталога:

ninja: Entering directory `out_ios/Debug-iphoneos'
[3/1664] CC obj/chromium/src/third_party/boringssl/src/crypto/bio/boringssl.bio_mem.o
FAILED: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc -MMD -MF obj/chromium/src/third_party/boringssl/src/crypto/bio/boringssl.bio_mem.o.d -DV8_DEPRECATION_WARNINGS -DCLD_VERSION=2 -DDISABLE_NACL -DCHROMIUM_BUILD -DCR_CLANG_REVISION=247874-1 -DUSE_LIBJPEG_TURBO=1 -DENABLE_CONFIGURATION_POLICY -DSYSTEM_NATIVELY_SIGNALS_MEMORY_PRESSURE -DDONT_EMBED_BUILD_METADATA -DFIELDTRIAL_TESTING_ENABLED -DDISABLE_FTP_SUPPORT=1 -DV8_USE_EXTERNAL_STARTUP_DATA -DBORINGSSL_IMPLEMENTATION -DBORINGSSL_NO_STATIC_INITIALIZER -DOPENSSL_NO_ASM -DUSE_LIBPCI=1 -DUSE_OPENSSL=1 -DDYNAMIC_ANNOTATIONS_ENABLED=1 -DWTF_USE_DYNAMIC_ANNOTATIONS=1 -Igen -I../../chromium/src/third_party/boringssl/src/include -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS9.0.sdk -O0 -gdwarf-2 -fvisibility=hidden -Wnewline-eof -miphoneos-version-min=7.0 -arch arm64 -Wendif-labels -Wno-unused-parameter -Wno-missing-field-initializers -Wno-selector-type-mismatch -Wheader-hygiene -Wno-char-subscripts -Wno-unneeded-internal-declaration -Wno-covered-switch-default -Wstring-conversion -Wno-c++11-narrowing -Wno-deprecated-register -Wno-inconsistent-missing-override -Wno-shift-negative-value -Wno-bitfield-width -Wno-unused-function -Wno-unused-variable -m32 -arch i386 -pipe -no-cpp-precomp -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/include/ -m32 -arch i386 -pipe -no-cpp-precomp -isysroot /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk -I/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator9.0.sdk/usr/include/ -std=c99 -Xclang -load -Xclang /Volumes/store/code/webrtc/src/third_party/llvm-build/Release+Asserts/lib/libFindBadConstructs.dylib -Xclang -add-plugin -Xclang find-bad-constructs -fcolor-diagnostics -fstack-protector-all -Wno-undefined-bool-conversion -Wno-tautological-undefined-compare  -c ../../chromium/src/third_party/boringssl/src/crypto/bio/bio_mem.c -o obj/chromium/src/third_party/boringssl/src/crypto/bio/boringssl.bio_mem.o
/bin/sh: /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/gcc: No such file or directory

По какой-то причине ниндзя считает, что мы строим для симулятора, и даже если бы мы это сделали, это был бы неправильный путь для получения gcc. Обратите внимание, что в моей системе установлен XCode 7.

Есть идеи, что может быть не так или как я могу обойти это?

С наилучшими пожеланиями, Антонис

1 ответ

Год назад я также хотел создать библиотеку, используя инструкции Google, но не смог. Произошло много ошибок, и я закончил поиском сценария сборки. В конце концов я нашел этот скрипт. Сделайте следующие шаги, и вы успешно его построите:

  • Установите инструменты командной строки, но вставьте эту команду в терминал: xcode-select --install
  • Клон скрипта: git clone https://github.com/lunastorm/webrtc-ios.git
  • Войдите в репозиторий git в Терминале и запустите скрипт с помощью следующей команды: make -j4 где j4 отмечает количество ядер процессора (поправьте меня, если я не прав). Это может занять некоторое время, поэтому приготовьте себе чашку кофе
  • Сборка не удастся в первый раз, но не волнуйтесь, просто удалите папки, которые скачал скрипт. Я напишу, какие из них в редактировании
  • Найдите свой код подписи кода, который действителен для создания приложений iOS. Тип security find-identity в терминале. Выберите один под Valid identities only
  • Откройте файл глобальной конфигурации src/build/common.gypi и найдите текст "CODE_SIGN_IDENTITY". замещать ‘CODE_SIGN_IDENTITY[sdk=iphoneos*]‘: ‘iPhone Developer’ с вашей информацией разработчика, т.е. ‘CODE_SIGN_IDENTITY[sdk=iphoneos*]‘: ‘iPhone Developer: Josip Bernat (2V3DKW6SDC)’
  • Запустите скрипт снова, используя make -j4 и, надеюсь, он создаст вам WebRTC.framework
Другие вопросы по тегам