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窗口,代码如下:
[cpp] view plaincopy
- -(IBAction)btnAlert:(id)sender
- {
- NSString * str = @"您按下了Press按钮";
- UIAlertView * alterview = [[UIAlertView alloc] initWithTitle:@"" message:str delegate:nil cancelButtonTitle:nil otherButtonTitles:@"确定", nil];
- [alterview show];
- [alterview release];
- }
界面文件如下:
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 plaincopy
- 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
写的都非常详细。
完成