原文:http://blog.sina.com.cn/s/blog_68e753f70100r3w5.html

真机调试iphone应用程序

1、真机调试流程概述

1)       真机调试应用程序,首先需要有一个苹果开发者帐号,才可创建证书请求CSR;

2)       打开应用程序钥匙串访问(keychain access)请求证书;

3)       登录iDP Portal “certificates”栏目中提交证书请求;

4)       确认提交后,刷新页面自动生成.cer文件,将它下载到本地;

5)       双击.cer文件,即把证书放到了钥匙串访问中;

6)       通过itunes或者xcode(organizer)获取设备的UDID;

7)       再回到iDP Portal“Devices”栏目中开始注册设备,并填写设备UDID和设备的用户名相关信息;

8)       完成设备注册后,进入iDP Portal“app IDs ”栏目,申请app ID,填写app ID的描述信息和与应用程序绑定的相关信息;

9)       完成app ID申请后,再进入到iDP Portal“provisioning”栏目,完成provisioning文件名称、证书名称、所要注册设备以及app ID的填写,这些选项均会在前几个步骤完成;

10)      如果完成应用程序的开发和调试工作,即可进入发布程序的iDP Portal“distribution”栏目,开始发布应用程序。但发布应用程序所创建的证书请求与真机测试不同,但基本流程相同;

真机调试应用程序大体流程如下图所示:

2、真机调试流程详述

2.1、请求证书

首先,打开keychain access创建证书请求(应用程序实用工具中),如下图所示:

钥匙串访问 图2-1

选择“钥匙访问串”“证书助理”“从证书机构请求证书”选项,打开“证书助理”对话框,如下图所示:

证书助理 图 2-2

填写相关信息,将请求选择为“存到磁盘”和“让我指定密钥信息”单击“继续”。选择存储路径。最后生成证书请求文件.certSigningRequest。

2.2、提交证书

生成请求证书文件后,登录到IDP provisioning portal页面,选择certificate栏目,请求证书,单击request certificates按钮,如下图所示:

请求证书 图 2-3

进入到创建开发证书页面,选取已创建的 “. certSigningRequest”,选择“submit”。如下图所示:

生成证书 图 2-4

刷新页面后,单击“download”按钮,将证书(.cer文件)保存在本地。

2.3、注册(安装)证书

下载完成后,双击.cer文件,安装证书。完成后可在keychain access中显示。如若证书安装成功,则会显示绿色字样——“该证书有效”,如果证书创建失败,则显示红色字样——“该证书无效”。当证书无效时,后面第三节中会讨论到问题的产生原因和解决办法。

2.4、获取设备UDID

打开xcode,选择window,打开 organizer 对话框,复制设备UDID,这里一定要连接设备,否则无法获取设备UDID信息(也可从itunes中获取,但无法复制)如下图所示:

organizer 图 2-5

2.5、注册设备

获取到设备后UDID后, 回到IDP provisioning portal页面,选择certificate栏目,单击“add Devices”按钮,注册设备,如下图所示:

注册设备 图 2-6

进入到填写设备信息页面,第一个是设备的名字(可按开发者意图填写),第二个是设备的UDID,将需要注册的设备的UDID拷入。如下图所示:

注册设备 图 2-7

2.6、注册app IDs

完成设备注册后,跳转到“app IDs”页面中注册app ID,单击“New app ID”,如下图所示:

创建app ID 图 2-8

填写app ID时,其信息的描述部分可以由开发者随意填写,但其中不要包括特殊字符,如“@”、“*”等;而“bundle identifier”的填写则相当重要,如果此信息填写不正确,则无法完成真机测试应用程序。这里具体由两种写法。具体看下苹果公司提供的一个用例“com.domainname.appname”。命名需要按照此规范填写。第一个“.com”是必须按照苹果公司给的样式填写的,而“domainname”则需要用户自定义填写,这部分信息可以由开发者随意填写,但苹果公司推荐用公司的域名。最后一部分则表示你需要测试的应用程序的名字,比如创建xcode文件时,创建了一个叫app的应用程序,那么这部分就填写app。当然也可以用“*”号代替,则表示可以用于任何iphone程序的测试。本文推荐使用第二种。如下图所示:

app ID信息图 2-9

2.7、生成provisioning文件

确认生成app IDs后,选择进入“provisioning”页面,单击“New provisioning file”,创建provisioning文件,第一填写的是profile的名字,可以按开发者意愿填写,其次证书选择刚已创建好的.cer文件,选择app id,最后选择你将要注册的设备。单击确认后,完成profile文件的创建,刷新页面后,下载.mobleProvisioning文件。

app ID信息 图2-9

2.8、安装provisioning文件

下载好provisioning文件后,双击安装文件即可。确认是否将provisioning文件正确安装在设备中,可打开xcode,在organizer对话框中查看。

2.9、配置xcode文件

最后,配置xcode文件,打开plist文件,将“bundle identifier”中的“yourcompany”,改成与公司域名。及需要与app ID一致,如在创建app ID时,创建的是“com.apple.*”,plist文件也相应改成“com.apple.*****”,“*”号部分不需要用户修改。如下图所示:

bundle identifier 图2-10

再选择xcode工程的info,将“code signing identifier”选项选择为已创建好的mobileprovisioning文件。如下图所示:

如果没有,则说明之前某些操作有错误,请按此方法重新创建证书。也可学习参考苹果公司的提供的真机测试相关视频。

3、真机调试注意事项

3.1、keychain access中请求证书

在创建请求证书之前,需要对keychain access简单的设置。打开keychain的偏好设置选项,选择证书,将“OCSP”、“CRL”选择为关闭,优先级选择为 “OCSP”,但一般不需要修改,因为是默认项。如下图所示:

keychain偏好设置 图3-1

3.2、证书无效的问题

        如果出现“该证书无效”时,原因有两个(后者原因本人没有遇到过,猜测,呵呵)。其实质都是与时间有关,第一个是mac电脑设置的时间可能有误,把他调回 至正确时间,再创建证书就应该没有问题,但真机测试可能还会报错,就再请把build文件和application文件夹生成文件一并删除;第二个原因是 证书有效期已过(1年时间)。

3.3、提示证书太多的问题

回到“keychain access”应用程序中,将多余的证书删除即可。其他证书的钥匙是可以保留的,如果删除,待测试其他设备或另一个应用程序的时候,xcode就会报错了,提示你钥匙和证书不匹配。当然你也可以选择将钥匙导出备份出去,以免自己误删除了。右键单击导出需要备份的钥匙即可。

3.3、其他机器真机测试程序

如果需要其他mac电脑上真机测试时,则需要将keychain access中的私钥导出,添加到另外一台mac电脑上。打开keychain应用程序,将私钥右键导出即可,导出私钥时mac会提示你输入钥匙密码。

小结:iphone真机测试应用程序,有三个环节较为重要

1、向keychain access请求证书,创建证书请求文件,即CSR,为的是拿到一个.cer的文件,即证书

2、app ID文件的创建,这个是与你的应用程序绑定的ID号,千万不要认为是apple ID哦,应该是applicaiton ID,也就是你需要调试应用程序,一般这个步骤容易出错,即你的app ID 与你plist文件里的buddle不一致,导致无法真机调试,我比较推荐以“×”号结尾,这样这个app iD可以对应任何的应用程序

3、provision文件的创建,所有的步骤都是为了它,在这里你会选择你的app ID,设备名称等相关信息,它的成功安装,使得你的设备能够真正的真机测试,你可以在xcode organize查看,也可以在设备中看到(设置/通用/描述文件)

再 补充一点:一旦能够做真机测试,如果再拿其他设备测试程序时,不用以上繁琐的步骤,直接注册下该设备,在修改下已创建的profile文件,将另外一个设 备添加进来。最后,安装provision文件。也就是说这一个provision文件可以同时支持多个设备。(如果还是无法测试,那可以参考官方的视频 和文档,很详细,但会稍显不同,因为它是2008年的资料,可能现在有些更改,但大体应当一样)

最后,祝各位成功,精益求精做好的iphone程序,也请各位大侠多多指点,如有错误或者技术交流可以发送邮件至

elite_quan@163.com

bite apple ing ...

iPhone 真机调试应用程序的更多相关文章

  1. 使用未付费的账号真机调试 iOS 程序,过几天后程序一打开就会闪退

    使用未付费的苹果开发者账号真机调试 iOS 程序,过几天后程序一打开就会闪退.   解决办法: 删除 Provisioning Profile,重新配置一次. 终极解决办法:花钱购买苹果开发者账号. ...

  2. XCode - vmware虚拟机安装XCode进行iPhone真机调试

    1.vmware安装黑苹果,然后在appStore安装XCode http://blog.csdn.net/forgot2015/article/details/51104329 2.真机调试证书等申 ...

  3. XCode - 无法对iPhone真机调试的解决方法!

    OSX:10.14 XCode:10.1 真机:iPhone 4S 错误很多啊,并非编译错误,编译已经成功了,但是无法安装到真机,我真不理解啊!!由于真的没有想到能够解决,有的错误没有截图,先看部分错 ...

  4. 在ubuntu下真机调试android程序出现设备没有访问权限

    今天把android的开发环境从windows平台切换到了ubuntu上. java jdk android-adt android-ndk都下好,环境变量都配好之后, 在调试程序的时候,出现设备没有 ...

  5. 移动设备真机调试本地程序的Node.js【无需连wifi】

     前提: 在某些场景下,我们需要调试我们的Node.js,这很简单,很多编辑器都集成了debug模式,但是某些场景下,我们想在移动设备上运行,在本地debug,这也行,只需要链接在同一个内网,通过ip ...

  6. iPhone真机调试流程

    大致流程:绑定设置ID--绑定电脑---绑定appbundle ID mac----钥匙串----证书助理-----从证书机构请求颁发证书-----填写邮件----生成证书到桌面 数据线连接设备--- ...

  7. C#学习日志 day 5 ------ windows phone 8.1真机调试手机应用

    在vs2013中,可以写windows phone 8.1的程序,但是调试时需要用到windows自带的虚拟机hyper-V 正版的系统开启hyper—V的时候不会有问题,但是盗版的系统可能导致系统不 ...

  8. ionic真机调试Android报错 - could not read ok from ADB Server * failed to start daemon * error: cannot connect to daemon

    在使用真机调试Android程序时,报错如下: could not read ok from ADB Server * failed to start daemon error: cannot con ...

  9. 从零开始开发iPhone,教你如何在真机调试iPhone应用程序

    对于真机调试,首先要在苹果网站上注册APP ID,以及购买iPhone Develop Program(iDP) 开发者授权,99美元.然后要创建证书请求CSR,创建步骤如下:设置OCSP和CRL为关 ...

随机推荐

  1. 星际反作弊2.3for-win7-xp-win8-win10

    星际反作弊2.3for-win7-xp-win8-win10 下载地址 http://wj800.com/rar/scfzb.zip

  2. bzoj 3289: Mato的文件管理 莫队+线段树

    题目链接 给一些询问,每个询问给出区间[L, R] , 求这段区间的逆序数. 先分块排序, 然后对于每次更改, 如果是更改L, 那么应该查询区间内比他小的数的个数, 如果更改R, 查区间内比他大的数的 ...

  3. The error indicates that IIS is in 32 bit mode, while this application is a 64 b it application and thus not compatible.

    I was trying to install a new WSS v3 Sharepoint on a 64 bit Windows 2003 server today but the instal ...

  4. TCP的阻塞和重传

    TCP的阻塞和重传 TCP的阻塞和重传机制 网络拥堵 现在网络上大部分的网络请求都是以TCP的方式进行传输的了.网络链路是固定的,各种链路情况也是不一样的.网络拥堵一直是TCP协议设计和使用的时候尽力 ...

  5. MySQL float 与decimal 各中的区别。

    想一个问题: 1/3+1/3+1/3=1.0 0.3+0.3+0.3 =0.9 想一想在小数的世界里要什么表示1/3呢!它的办法就是取一个与1/3十分接近的小数来代替:如上面例子中的0.3来代替1/3 ...

  6. Initialization failed for block pool Block pool(转载)

    2014-06-18 20:34:59,622 FATAL org.apache.hadoop.hdfs.server.datanode.DataNode: Initialization failed ...

  7. java selenium webdriver实战 页面元素定位

    自动化测试实施过程中,测试程序中常用的页面操作有三个步骤 1.定位网页上的页面元素,并存储到一个变量中 2.对变量中存储的页面元素进行操作,单击,下拉或者输入文字等 3.设定页面元素的操作值,比如,选 ...

  8. easyui-layout中的收缩层无法显示标题问题解决

    先看问题描述效果图片: 如上,我的查询条件是放在layout下面的一个可收缩层中,初始是收缩的,title显示不出来的话对使用者很不方便,代码如下: <div id="__MODULE ...

  9. 经验分享:CSS浮动(float,clear)通俗讲解 太棒了,清晰明了

    很早以前就接触过CSS,但对于浮动始终非常迷惑,可能是自身理解能力差,也可能是没能遇到一篇通俗的教程. 前些天小菜终于搞懂了浮动的基本原理,迫不及待的分享给大家. 写在前面的话: 由于CSS内容比较多 ...

  10. ajax异步通讯 遮罩滚动栏,防止并发及误操作

    加入滚动栏的遮罩,滚动栏图片须要自己调整路径 function loading() { var divloading = "<div id=\"loadingdiv\&quo ...