求知 文章 文库 Lib 视频 iPerson 课程 认证 咨询 工具 讲座 Modeler   Code  
会员   
 
  
 
 
     
   
分享到
打包iOS应用程序
 

作者:jopen,发布于2012-10-18,来源:OPEN经验库

 

如果想要将做的iOS应用程序装到自己的iOS设备上测试、或者装在别人的iOS设备上,或者想发布到App Store里,先要给应用签名。签名就要有证书,这就需要申请证书的过程了。

把自己的应用程序装到设备中,主要有以下几种方式:

① 把iOS设备与电脑连起来,这样在Xcode的左上角就可以选择这个设备,之后直接点击Run,程序就被装在这个iOS设备了。这个主要用于在真机上测试程序。前提是Xcode中添加了包含这个设备信息的Profile。

② 使用Xcode将应用程序以Ad Hoc方式打包,导出ipa文件,然后用iTunes等工具将应用安装到iOS设备中。这种方式所用的Profile文件要是Ad Hoc类型,并且包含指定设备的信息。导出的ipa文件也只能安装到指定的设备中。

③ 将应用程序发布到App Store上,待苹果审核通过后,其他人就可以下载安装了。

这篇博客主要讲第二种方法。PS:本人使用的是Xcode 4.4.1,测试时间是2012年9月上旬。Xcode版本不同可能操作也会不同。另外,苹果开发者网站也可能以后改版,操作流程也可能会变。

1、先要注册一个iOS开发者账号,不再详述。

2、运行浏览器,登录https://developer.apple.com/,并进入iOS Dev Center:

进入后,单击右上角的Log in,输入开发者账号和密码。

3、验证成功后,在页面的右边会出现如下选项:

单击最上面的iOS Provisioning Portal,我们申请证书、管理证书、管理设备等操作就是在这个页面中进行的。如下图:

4、运行电脑中的“钥匙串访问”应用程序(英文名:Keychain Access),它一般在“实用工具”目录下。这个程序在证书申请、给应用签名的过程中起着很大的作用。签名时的很多问题都出在这个应用中,比较典型的是

CodeSign error: Certificate identity XXX appears more than once in the keychain. The codesign tool requires there only be one.

后面会给出一般的解决办法。

5、在菜单中依次选择 证书助理——从证书颁发机构请求证书…:

在打开的窗口输入电子邮件和常用名称,并选择存储到磁盘以及让我指定密钥对信息:

单击继续,在打开的窗口设定文件名称和位置,点击继续,密钥大小选择2048位,算法选择RSA:

点击继续,则在之前设定的位置生成了.CSR的签名文件。默认名称是CertificateSigningRequest.certSigningRequest。

6、回到浏览器,在页面中依次选择Certificates——Distribution——Request Certificate:

在打开的页面选择要上传的CSR文件,提交。

7、此时正在审核刚才上传的文件,你可以单击click here to download now下载WWD intermediate certificate。

8、刷新页面,下载证书并安装,此时会自动加到钥匙串访问程序。

9、创建App ID。在浏览器的页面左边选择App ID:

然后在右边选择New App ID,如下图:

在Description输入你的应用的描述,Bundle Identifier是应用的代码标识,例如可以输入com.company.demoapp。如果你有Team ID,那么这个ID会自动加在Identifier前边。注意:

① 由于现在苹果还没提供App ID删除功能,所以Description最好也是唯一的,否则后边用到的时候会很麻烦。

② 在Xcode 4.4.1中,如果查看工程的Bundle Identifier,会发现对应于前边的demoapp部分是不可改的,所以在输入Bundle Identifier时可以就用Xcode中给定的,这样可以省去很多不知道的麻烦。

③ 建议申请一个最后字段为“ *”的ID,这样可以用同样的ID,提交一套应用程序,而无需为每个应用都申请单独的ID。

10、添加设备。如果你希望导出的ipa只能安装在指定的设备,则要将这些设备添加到上图中左侧的Devices中。先要获取iOS设备的标识符(不是序列号),可以将设备与iTunes相连,选择这个设备,会先显示序列号:

此时单击序列号,就会出现标识符:

11、回到浏览器的页面,在左边单击Device,然后选择Add Devices:

在打开的页面中添加设备。别忘了Submit。

12、现在可以制作Profile了。在浏览器的页面中单击Provisioning——Distribution:

然后选择New Profile:

在这个页面中,输入Profile Name,选择App ID。前边的Distribution Method有两个选择:App Store与Ad Hoc,前者表明你想将程序发布到应用商店,用这样的Profile导出的ipa所有设备都能安装;后者表明只允许将应用安装在指定的设备上,选择Ad Hoc后,需要在下方选择授权的设备,就是之前你指定的。

为了好区分Profile,本人在输入的Profile Name加了后缀,_App_Store以及_Ad_Hoc,这样就比较直观了。

13、新创建的Profile提交上去之后,稍等一会,刷新页面,就可以下载这个Profile了,下载成功后,双击就自动加到Xcode中了(本人的Xcode一直在运行)。

14、配置应用程序。用Xcode运行已经写好的工程,设置其Bundle Identifier:

然后,选择签名所用的Profile,如下图,找到Code Signing,找到其中的Release:

上图中蓝色的那行,点击与工程名对应的那一列,选择Profile文件,这里选择的是Ad Hoc类型的:

15、在Xcode左上角的设备选择iOS Device,然后在菜单栏依次找到Product——Archive,如果一切顺利,会显示Build Success:

然后会自动打开Xcode的Organizer的Archives,你可以给他们重命名:

16、选择刚才生成的那个存档,单击右边的“Distribute…”按钮:

在打开的页面选择Ad Hoc:

单击Next,在下一步选择Code Signing Identity,本人选的是与Ad Hoc相对应的:

之后继续Next,设好名称和保存的位置,再继续就可以生成ipa文件了。

17、用iTunes将生成的ipa安装到设备中。为了测试这个ipa文件,可以多试几台设备。

常见问题:

CodeSign error: Certificate identity XXX appears more than once in the keychain. The codesign tool requires there only be one.

这个问题是很让人头疼的,问题出在钥匙串访问这个程序中,运行这个程序,将重复的Certificate identity删掉可能还是不管用,因为据说,Mac中的删除并不一定真的删除了,但肯定是看不见了。本人昨天晚上折腾了一个小时,将上面的打包过程重 复了好几次都不管用,后来重启了电脑,居然搞定了。


 
分享到
 
 
     


android人机界面指南
Android手机开发(一)
Android手机开发(二)
Android手机开发(三)
Android手机开发(四)
iPhone消息推送机制实现探讨
手机软件测试用例设计实践
手机客户端UI测试分析
手机软件自动化测试研究报告
更多...   


Android高级移动应用程序
Android应用开发
Android系统开发
手机软件测试
嵌入式软件测试
Android软、硬、云整合


领先IT公司 android开发平台最佳实践
北京 Android开发技术进阶
某新能源领域企业 Android开发技术
某航天公司 Android、IOS应用软件开发
阿尔卡特 Linux内核驱动
艾默生 嵌入式软件架构设计
西门子 嵌入式架构设计
更多...