4

我正在尝试从 google webrtc 源代码构建 AppRTCDemom 示例,我正在关注自述文件,但是在尝试了这个“gclient runhooks”之后,我得到了:

“key_id gyp 变量需要明确设置,因为有多个代码签名密钥,或者没有”

有人可以说发生了什么吗?这里缺少什么?

tks

4

2 回答 2

5

Gp-coder 的解决方案对我来说只是解决问题的一半。在做出他推荐的更改后,我在另一个文件中遇到了另一个类似的错误:

AssertionError:身份的多个代码签名身份:iPhone Developer

此断言发生在以下文件中:

webrtc/trunk/tools/gyp/pylib/gyp/xcode_emulation.py

奇怪的是,断言之后的行将采用列表中的第一个代码签名身份,因此解决方案就像在第 793 行注释掉断言一样简单。假设您实际上想要第一个代码签名身份。如果不是,请将第 796 行的结果数组上使用的索引更改为您需要的任何索引。

我最终写了一篇博客文章,其中包含这些更改以及使完整构建工作所需的其他一些更改。

于 2013-11-16T05:40:35.703 回答
3

问题是您是否拥有多个 iOS 开发者密钥。在 libjingle_examples.gyp 文件的第 271 行中,有问题的行上方有此注释。

 # Total HACK to give a more informative message when multiple
 # codesigning keys are present in the default keychain.  Ideally
 # we could pick more intelligently among the keys, but as a
 # first cut just tell the developer to specify a key identity
 # explicitly.

'key_id%': (security find-identity -p codesigning -v | grep "iPhone Developer" | awk \'{print $2}\')

直接运行命令时:

security find-identity -p codesigning -v | grep "iPhone Developer" | awk '{print $2}'
555XXXX6DA325E6097E5301381XXXXXXD35D620E
315XXXX6B19AD10A0F4567XXXX03B1BXXXXXXXXX

它列出了两个开发者 ID,这是问题所在,所以我编辑了 libjingle_examples.gyp 第 271 行并添加| head -1了让它只返回 1 个键,在这种情况下是顶部或第一个键。我还仔细检查了 Xcode 以确保最上面的键是我当前的键。

过去几个月我一直在这个领域工作,iOS 上的 webrtc 并不容易。为了解决这个问题,我添加了一个 github repo,其中包含一个使用 webrtc 的 iOS 应用程序的工作示例。

https://github.com/gandg/webrtc-ios

该站点也引用了 google 代码站点,因此它应该是一个有用的起点。

于 2013-10-29T16:49:09.800 回答