为iOS构建webrtc库时出错

为iOS构建webrtc库时出错,ios,xcode,webrtc,libjingle,ninja,Ios,Xcode,Webrtc,Libjingle,Ninja,我一直在尝试按照谷歌的指示(以及相关链接)为iOS构建webrtc。尽管我记得,在过去,通过类似的步骤,我已经能够构建它,但现在的情况已经不是这样了 以下是我所做的步骤: 下载先决条件: $git克隆 $export PATH=`pwd`/depot_工具:“$PATH” 下载回购协议: $export GYP_DEFINES=“OS=ios” $fetch webrtc_ios 准备构建: $cd webrtc/src $export GYP_DEFINES=“构建_与_libjingle=1

我一直在尝试按照谷歌的指示(以及相关链接)为iOS构建webrtc。尽管我记得,在过去,通过类似的步骤,我已经能够构建它,但现在的情况已经不是这样了

以下是我所做的步骤:

  • 下载先决条件:

    $git克隆

    $export PATH=`pwd`/depot_工具:“$PATH”

  • 下载回购协议:

    $export GYP_DEFINES=“OS=ios”

    $fetch webrtc_ios

  • 准备构建:

    $cd webrtc/src

    $export GYP_DEFINES=“构建_与_libjingle=1构建_与_chromiu=0 libjingle\u objc=1”

    $export GYP_DEFINES=“$GYP_DEFINES OS=ios target\u arch=armv7”

    $export GYP\u GENERATOR\u FLAGS=“output\u dir=out\u ios”

    $export GYP_交叉编译=1

    $gclient runhooks

  • 建造:

    $ninja-C out_ios/调试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

    有什么想法可能是错误的,或者我如何解决这个问题吗

    致以最良好的祝愿,
    Antonis

    一年前,我还想用谷歌的指令建立图书馆,但我没能做到。发生了许多错误,我最终在谷歌上搜索了一些构建脚本。最后我找到了。执行以下步骤,您将成功构建它:

    • 安装命令行工具,但在终端中粘贴此命令:
      xcode选择--Install
    • 克隆脚本:
      git克隆https://github.com/lunastorm/webrtc-ios.git
    • 在终端中输入git repository并使用以下命令运行脚本:
      make-j4
      where
      j4
      标记CPU内核的数量(如果我错了,请纠正我)。这可能需要一段时间,所以自己准备一杯咖啡
    • 构建将首次失败,但不要担心,只需删除脚本下载的文件夹即可。我会在编辑中写下哪些
    • 查找对构建iOS应用程序有效的代码签名标识。在终端中键入
      security find identity
      。在
      仅有效标识下选择一个
    • 打开全局配置文件src/build/common.gypi并搜索文本“CODE\u SIGN\u IDENTITY”。用开发者信息替换
      'code\u-SIGN\u-IDENTITY[sdk=iphoneos*]:“iPhone开发者”
      ,即
      'code\u-SIGN\u-IDENTITY[sdk=iphoneos*]:“iPhone开发者:Josip Bernat(2V3DKW6SDC)
    • 使用
      make-j4
      再次运行脚本,希望它能构建WebRTC.framework

    非常感谢您的回复Josib B。今天早上,我也成功地使用了与您建议的类似的解决方案进行了构建,没有任何问题()。所以我迫在眉睫的问题得到了解决,但我仍然想知道官方设施出了什么问题。我通常试图避免使用包装器构建脚本,因为它们往往有问题,并且通常落后于webrtc官方构建工具。您能在您的src目录中尝试此脚本吗?webrtc/build/ios/build\u ios\u libs.sh。我还发现步骤中缺少“gclient sync”。请检查您是否也这样做。谢谢您的评论。请注意,我已经很久没有发布这个问题了。现在,我正在使用谷歌的官方指南进行无问题构建,网址为: