XCode发布App到调试机

XCode发布App到调试机



今天我们介绍如何用XCode发布我们开发的App到我们自己的机子上(如何发布到App Store不在本文讨论范围内)。我们将用XCode写一个小的测试程序,分别在模拟器和真机上测试。注意在真机测试前,你必须先购买苹果的iOS开发者证书(99刀)。具体购买流程可以参考这里:http://blog.csdn.net/htttw/article/details/7939405

我们以iPod为例介绍。




1.

首先我们要创建一个本机密钥。不过还需要先设置一下Key Chain Access。打开Applications/Utilities/Key Chain Access的Preferences,将Certificates中的OCSP和CRL都关闭,如下所示:





2.

然后打开Key Chain Access:





选择Keychain Access菜单的Certificate Assistant/Request a Certificate From a Certificate Authority...,如下所示:




3.

输入你的邮件和名称,注意选择Save to disk,并把Let me specify key pair information勾选上,然后点Continue:





4.

保持Key Size和Algorithm默认就可以了,点击Continue,选择保存位置。至此我们的本机密钥已经生成完毕,是一个以.certSigningRequest结尾的文件:





5.

下面我们要将这个密钥文件上传到苹果服务器:

登陆到 developer.apple.com,在右边有一个 “iOS Provisioning Portal”:




点进去,如下所示:




选择左边栏第二项Certificates,然后点Request Certificate申请一个Certificate,如下所示:



然后点击Choose File,选择我们之前创建好的本机密钥文件,之后点Submit:






6.

片刻之后刷新本页,就会在原来空的Development Certificates中生成一个新的Certificate:



注意到右边Status里显示的是Pending Issuance,因为我们还没有下载WWDR,点击“click here to download now”即可下载。下载完成后双击该文件,点Add开始安装:





Add之后再次刷新之前的页面,现在Download链接出现了:



下载这个文件,是一个.cer文件。





7.

双击下载的.cer文件,同样点Add开始安装:






下面我们要开始添加设备了:


8.

打开XCode,然后连接iPod到计算机,XCode会自动弹出Organizer窗口,如果版本匹配的话就会如下所示:




复制设备的Identifier(40位的十六进制数)。




9.

回到之前的IDP Provisioning Portal页面,选择左边栏第三个的Devices:




点击Add Devices,如下:




输入Device Name和Device ID(前者开发者可以自定,后者即先前在XCode中获取的设备的Identifier),然后点Submit





10.

设备注册完成后,回到之前的IDP Provisioning Portal页面,选择左边栏第四个的App IDs(一般一个App ID对应一个应用程序):




点击New App ID,如下所示:




填写App ID时,Description部分可以由开发者随意填写,但只能是字母或数字(空格也不行);而“Bundle Identifier”的填写则相当重要,如果此信息填写不正确,则无法完成真机测试应用程序。这里具体有两种写法。具体看下苹果公司提供的一个用例“com.domainname.appname”。命名需要按照此规范填写。第一个“.com”是必须按照苹果公司给的样式填写的,而“domainname”则需要用户自定义填写,这部分信息可以由开发者随意填写,但苹果公司推荐用公司的域名。最后一部分则表示你需要测试的应用程序的名字,比如用XCode创建了一个叫app的应用程序,那么这部分就填写app。当然也可以用“*”号代替,则表示该App ID可以用于任何com.domainname.*的程序。本文推荐使用第二种。如下图所示:  



之后点Submit即可。





11.

App ID创建完成后,回到之前的IDP Provisioning Portal页面,选择左边栏第五个的Provisioning(这个Provisioning会告诉XCode是否允许将应用程序下载到真机上):



由于我们之前没有创建过Provisioning,因此是空的



点击New Profile,Profile Name可以任意(同样只能是字母或数字),同时勾选之前创建的Certificates,在下拉框中选择之前创建的App ID,并勾选之前创建的Devices,然后点Submit:





稍等片刻,刷新页面,就会出现新生成的Profile文件,点击Download下载该Profile文件,是一个.mobileprovision文件:



12.

打开XCode,双击刚才下载的.mobileprovision文件,就会在XCode的Organizer窗口中看到如下结果,说明我们之前生成的Profile是合法的:





至此,我们的调试机与XCode之间的连接设置完毕。





下面我们用XCode新建一个测试程序,放在我们的iPod上运行:


13.

我们创建一个Single View Application,名称是Test:








14.

在主页面添加一个按钮,点击它之后就会弹出一个Alert窗口,代码如下:

  1. -(IBAction)btnAlert:(id)sender  
  2. {  
  3.     NSString * str = @"您按下了Press按钮";  
  4.       
  5.     UIAlertView * alterview = [[UIAlertView alloc] initWithTitle:@"" message:str delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];   
  6.       
  7.     [alterview show];     
  8.     [alterview release];     
  9. }  


界面文件如下:






15.

将按钮和btnAlert连接起来。注意到第14步中的代码在XCode中是错误的,提示“release is unavailable ....”



解决办法如下:

单击左边栏的顶层项目目录,在中间栏的Targets栏选择Test,设置右边的Objective-C Automatic Reference Counting为NO(可以在右上角搜索):





16.

在XCode左上角选择iPhone 5.1 Simulator(默认是iPad 5.1 Simulator):




点左边的三角按钮运行,可能会弹出下面的对话框:




只要在终端输入下面的命令就不会再弹出该对话框了:

[plain] view plain copy
  1. sudo /usr/sbin/DevToolsSecurity --enable  



17.

模拟器中的结果如下:

点击按钮,弹出Alert对话框:







18.

下面终于到了最激动人心的时刻了,我们要下载到我们的iPod真机上运行:

首先要设置Test-Info.plist中的Bundle identifier为你在第10步创建的Bundle identifier,必须要一致,否则真机无法运行!




然后在项目设置中选择Code Signing Identity(也可以在左上角搜索),改为“iPhone Developer”:






19.

然后在XCode左上角选择你的真机设备,如下所示:




点左边的三角按钮就开始下载到真机运行了:

不过可能还会弹出下面的对话框:



选择Always Allow就可以一劳永逸了。



真机运行结果:

初始界面:




按下了Press按钮:




同时我们的真机上也已经安装好了test:




至此,从申请证书到下载到真机运行的完整流程介绍完了,大家也可以试一试哦~~



以上内容可以参考:

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

和 

http://iphone.tgbus.com/dev/iosdev/201205/20120516171253.shtml


写的都非常详细。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值