在 Xcode 7 中,苹果改变了自己在许可权限上的策略,此前 Xcode 只开放给注册开发者下载,但 Xcode7 改变了这种惯有的做法,无需注册开发者账号,仅使用普通的 Apple ID 就能下载和上手体验。此前开发者需每年支付 99 美元的费用成为注册开发者才能在 iPhone 和 iPad 真机上运行代码,苹果新的开发者计划则放宽要求,无需购买,只要你感兴趣同样可以在设备上测试 app。

环境情况

相关文档

实际操作中的一些坑

1. Xcode 版本 7.3.1 界面与文档中提及的有些出入:

1)例如在 Account 添加 Apple ID 界面,只有一个 role 类型,显示为 free;开发者帐号的 role 类型显示为 agent:

2)点击进入详情后,点击 creat 按钮时下面列表中即没有生成证书文件,也没有给出任何错误提示。甚至[creat]按钮都消失不可点击了!!当时没管这里,继续下面的步骤。后来在下面的步骤--在项目 target 的 General 页的 Team 中选中刚才 Apple ID 对应的项,并经过验证后,再进来查看,列表中有文件了。

2、在 IntegrationApp-Identity-Team 栏选择 personal team(个人的 Apple ID 账号
) 运行 WebDriverAgentRunner 程序时,会提示 test failed。

错误日志如下

2016-07-10 18:12:32.117 XCTRunner[5797:979556] Running tests...
2016-07-10 18:12:32.248 XCTRunner[5797:979556] The bundle WebDriverAgentRunner couldnt be loaded because it is damaged or missing necessary resources. Try reinstalling the bundle.
2016-07-10 18:12:32.248 XCTRunner[5797:979556] (dlopen_preflight(/var/containers/Bundle/Application/44174EEE-318B-4E82-8782-597C2CC4330D/WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/WebDriverAgentRunner): Library not loaded: @rpath/KissXML.framework/KissXML
  Referenced from: /private/var/containers/Bundle/Application/44174EEE-318B-4E82-8782-597C2CC4330D/WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/WebDriverAgentLib
  Reason: no suitable image found.  Did find:
/private/var/containers/Bundle/Application/44174EEE-318B-4E82-8782-597C2CC4330D/WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/Frameworks/KissXML.framework/KissXML: mmap() errno=1 validating first page of '/private/var/containers/Bundle/Application/44174EEE-318B-4E82-8782-597C2CC4330D/WebDriverAgentRunner-Runner.app/PlugIns/WebDriverAgentRunner.xctest/Frameworks/WebDriverAgentLib.framework/Frameworks/KissXML.framework/KissXML'

排查到问题是在 WebDriverAgentRunner 下运行时,缺少这 3 个 framework:WebDriverAgentLib.framework、KissXML.framework、RoutingHTTPSever.framework。加上后运行成功。

3.在 IntegrationApp-General-Team 栏选择 personal team(个人的 Apple ID 账号
) 运行 IntegrationApp 程序,提示警告

 An App ID with Identifier 'com.facebook.xctweb-driver-agent' is not available. Please enter a different string.

错误原因是这个 bundle ID 已经被别人提前占用了.这种错误一般发生在运行别人的项目时,处理办法是更换 bundle,删除或增加一些字母即可解决。


↙↙↙阅读原文可查看相关链接,并与作者交流