IOS开发 xcode5.1 App打包ipa与真机发布

苹果的证书繁锁复杂,制作管理相当麻烦。作为一个初学者,一开始都会觉得头乱如麻,在这里我对它进行一部分整理。(特别是当Xcode升级到5.1后,这方面的资料比较缺乏)

基本概念

首先要先明确几个概念。

1.app ids:苹果用于识别开发者所开发的app的唯一标识。

2.开发者证书:(分为开发和发布两种,类型为ios Development,iosDistribution),这个是最基础的,不论是真机调试,还是上传到appstore都是需要的,是一个基证书,用来证明自己开发者身份的;

3.Provisioning Profiles,这个东西是很有苹果特色的一个东西,我一般称之为PP文件,该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成,真机调试时需要在PP文件中添加真机的udid;是真机调试和上架必备之珍品;

机制

苹果因为自己的封闭体系,初次接触的开发者使用其服务的时候,会觉得非常繁琐。它不会允许你随意发布和安装程序(封闭体系)。苹果为了达到让你不能随意安装app的目的,用了这么一个机制。你要到官网上的MemberCenter里.

1.你要给你的app绑定app ids,在这个过程中需要填写Bundle,非常重要,你的app中也包含这样一个bundle,两者必须一样,后面再细说。

2.将你准备测试的程序添加到测试设备中去(devised)。

3.开发者本身需要注册开发证书(上传秘钥那一套)。

这样三者合一,就用到了苹果特有的一个文件类型ProvisioningProfiles。该文件将appID,开发者证书,硬件Device绑定到一块儿,在开发者中心配置好后可以添加到Xcode上,也可以直接在Xcode上连接开发者中心生成。不管是真机测试,appstore上架,都不可缺少。

而生成描述文件(Provisoning Profiles)这个过程,就好比你用的证书给这个程序签了名(这是你所开发的程序),同时写明了它能到哪些设备中去运行。

生成provisioningprofile 时,可以选择app storeios ,appdevelopment,Ad Hoc 三种profile ,分别对应着上架store storeios;开发者真机测试(设备直接连机器那种);还有就是设备连不了机器,所以远程打包ipa后安装的那种.

 有了这玩意,你才能有下一步。

真机调试过程

拿将将程序真机调试为例子。分为两种情况 iOS profile 分2种,第1种是development profile,用来给你(开发人员)做真机测试的;第2种是发布profile,发布profile又分发布到app store的(这里不提及)和发布测试的ad hoc profile。

1.development profile

测试人员能将机器直接拿到你面前来的,你可以直接通过xcode将程序run进测试机器的时候。如果你的tester(团队测试人员、客户)都能将测试设备拿到你面前,直接插到你的mac开发机上,你可以直接将程序“灌”进去,那有开发证书就够了,不需要ad hoc证书。

1.1进入申请界面 

 打开iOS Dev Center,选择Sign in,登陆(至少99美元账号),登陆之后在网页右边找到Certificates,Identifiers & Profiles,选择certificates

 

1.2:申请本地证书

1.2.1:申请本地秘钥

申请证书必须在我们的电脑上先申请一个证书,找到  

                               

点击"其他",找到“钥匙串”:

                             

选择从颁发机构申请证书,注意下面的红色框,必须选择那一个才可以:

                           

点击后看到:

                                     

如果选择 “存储到磁盘”,那么“用户邮件地址” 随便填一个就好,点击“继续”:

                                     

“存储为:”可以给证书命名,选择一个位置,点击“存储”:

                                     

这样在桌面就生成了一个证书。

注意这一个本地证书可以同时用来生成“开发证书”和“发布证书”。

 

下面只介绍“发布证书“的申请,申请”开发证书“步骤相同,就是换一个选项 

1.2.2在开发者账号里申请证书             

我们进入99美元开发账号看到:

                        

点击 Certificates, Identifiers & Profiles,进入页面看到:

                                             

如果要申请开发证书就选择 Development,如果要申请发布证书,就选择 Production,步骤都是选择“+”号后添加证书:

                                                   

点击“+”后看到:

                                                   

如果是选择 “开发证书”,点击第一个红框

                                  

如果是选择 “发布证书”,点击第二个红框

                                            

选择好后,点击“continue”:

                                                       

点击后出现                                               

选择“Choose File” 将刚刚申请的保存在本地的证书上传:

                                                      

                                                      

上传好后,点击“Generate” 就可以生成证书了。

 

选择“Download”。

这时,我们在本地生成的证书就没用了,可以删除。

 

我们返回到证书的界面可以看到我们申请的证书:

一般申请一个 发布证书(IOS Distribution),一个开发证书(IOS Development)就够用了。

 

找到下载的文件,双击它,添加到钥匙串里就好了。在这一步里,如果钥匙串拒绝添加,直接将其拖进钥匙串就行:

这样证书就申请完毕了,有了证书后,接下来可以申请各种各样的描述文件供开发使用

 



 

 

1.3、添加App ID 

选择Identifiers->App IDs,在右侧选择添加按钮添加 

选择 “Identifiers”的 “App IDs”,点击“+”

 

出现以下界面:

·              App ID Description 是一个App ID的描述,就是一个名字,这个名字可以随便取

·              App ID Prefix 苹果已经帮我们填了,不需要我们填,可以看出,它是一个团队的ID

 

下一步,选择        App ID Suffix

App ID Suffix 有两个选项:

 

·              Explicit App ID :顾名思义,这里要填一个明确的 App ID

什么意思呢?可以这么来解释:我们做项目时的Bundle Identifier (Bundle ID)是用来标示我们的app的。我们的App ID也是用来标示我们的app的。这两个有什么联系呢?Explicit App ID 就是要我们确定一个唯一的 Bundle ID,用来标示我们的 app,使它有一个固定的身份。可以发现,当提交应用到苹果时,如果我们一开始没写 Explicit App ID,苹果会自动帮我们生成一个与我们发布时填的一样的 Bundle ID 到我们的 App ID中。

      填写  Explicit App ID 的格式为:com.company.appName

 

·              Wildcard App ID:顾名思义,这里要填一个通配符 App ID 。意思就是,我们只需要填一个在所有应用都能试用的 App ID 就好了。

      填写  Wildcard App ID 的格式为:com.company.* 

 

申请真机调试的时候,不是为了某一个应用去调试,而是为了所有的应用去调试,必须能适应每一个app,所以我们选择 Wildcard App ID

com.company.* 的company 一般写公司的名字,也可以按需要写

 

可以发现,选择 Explicit App ID 会比 Wildcard App ID 多几个服务选项可以选,不过我们是真机调试,所以无所谓,将能选的勾上,选择“Continue”就好。

 

 

看到如下界面,点击“Submit”后就可以生成App ID了

1.4、添加设备(Devices 

如图,点击“+”,一个99美元账号只能申请100个设备。

 

Name 自己取一个设备的名字,UDID约等于设备的身份证,可以在xcode中查看

查看UDID

打开xcode,选择“Windows”的“organizer”:

选择设备看到 “identifier”,这个就是我们设备的 UDID,将其复制,可以填入上上图显示的 UDID中。

当你的机子第一次用于开发时,可以看到,显示的灯是“灰色”的,可以点击“use for developer” 来作为开发机。点击了“use for developer”后,可以发现你的灯变成了黄色的了。

如果一个手机本来就是开发机一个手机可以安装多个开发用的描述文件)或者越狱的手机,那么它刚插进去就是绿灯。但是绿灯并不代表就能用,必须安装相适应的描述文件。如图就是一个没有安装相应描述文件的开发机。

填好 name 和 UDID后,点击continue 就可以看到如下界面,点击“Register”就可以在苹果上登记了。

               

     

      下面还可以选择添加多台设备,本人表示智商不够,不会,99美元账号可以添加100台设备,299美元的账号本人不晓得。。 

1.5  添加描述文件(provisioning Profiles 

如图点击   “+”

 

选择    “iOS App Developer”,然后“Continue”

 

这里选择我们刚刚生成的 App ID,选好后,点击“Continue”

 

这里选择一个开发证书,有两点要注意:

·              这个证书是我们刚刚自己在本机与苹果开发者网站生成的 开发证书 “Development certificate

·              如果不是刚生成的,这个证书必须在本地的mac的钥匙串中存在(带密钥的证书,不带密钥的依然无效)

如果不想自己在重新生成证书,用别人生成的证书,可以从别人的电脑中导出p12文件,可以参考:如何导出p12文件

选好证书以后,点击“Continue

 

选择设备,设备可以选择全部设备,也可以按需选择你需要的设备:

这里给我们的描述文件取一个名字,这个名字在以后的xcode中是看得到的,所以可以取一个好辨认的名字。取好名字后,选择“Generate”生成描述文件。

 

生成好描述文件后,选择“Download”,双击进行安装(安装后在xcode中可以查看)

·              安装成功后,以前没作为开发机的手机会变成绿色的(以前就是开发机和越狱的手机一直是绿色的,但是不重新申请符合证书的真机调试任然是不能真机调试的)

·              点击“Provisioning Profiles” 看到 “Valid profile” 就是成功安装的意思。

如果没有安装成功,一般是证书或者描述文件的问题,看看证书是不是从自己的机子上生成的,描述文件的配置信息(是否和你的本机存在的带秘钥的证书相匹配,你添加的设备是否包含你现在选择调试的设备)等,如图第一个警告是因为没有证书与描述文件相匹配出现的

配置好后,还不是绿灯,则考虑问题:

·                 设备版本高于XCode所能支持的版本,如XCode4.6.3,能支持的最高版本未iOS6.1,如果你的设备系统大于等于iOS7以上,此时需要   更新至XCode5; 再如:XCode5 不支持ios7.1,如果想开发ios7.1,必须将xcode5 升级到 xcode5.1以上版本; 

例如:

   

 

在真机调试时,不要忘记设置这两个,否则调试失败:

这个必须填:之前写Wildcard App ID 的内容. app的名字

设置好这两个之后再点击运行。

 

2 ad hoc描述文件

   如果tester的iOS设备不能直接让你灌程序,那怎么办?你必须打包(Archive)你的程序,然后发给你的tester,让他通过itunes进行安装,那就需要ad hoc证书了。

      具体的区别:ad hoc证书生成过程,和开发证书生成非常类似,唯一的区别就是 app ids,证书,以及devices打包成Provisioning Profile过程中,在apple service上选择的是生成的是ad hoc文件。

 

 

此外在xcode5.1中,apple 加入了一些新的特性,首先是在(和buildSetting同级的一些东西) 的General里,加入了Team的设置,只要填写对应的Apple ID和应用Bundle ID,Xcode就将自动去寻找对应的Provisioning Profile,并使用合适的Provisioning来进行应用打包。因为有了自动配置和将集成的版本管理放到了菜单栏中,Organizer的地位被 大大削弱了。至少我现在在Organizer中没有找到本机的证书管理和Provisioning Profile管理的地方,唯一开Organizer的理由大概就是应用打包发布时了。

另外,在xcode 5"organizer"里provisioning profile的管理界面已经不再有, 而是改为在menu "Xcode > Preference...> Accounts tab" 里进行管理, 还有一点不同的是你需要在Accounts tab里添加Apple ID with password.

 

在真机调试时,不要忘记设置这两个,否则调试失败:

这个必须填:之前写Wildcard App ID 的内容. app的名字



 

设置好这两个之后再点击运行。

 

 

 1.1 选择ad hoc证书.在“Code Signing”栏,你需要选择之前生成的发布(ad hoc),如下图,


这里要选择“iPhone Distribution”,而不是“iPhone Development”,否则会在下面打包(Archive)步骤报证书错误。

2、编辑“Scheme”,选择菜单:Product -> Edit Scheme,如下图,


红色框部分要选对,注意要分别选iOS Device和Release。

3、打包(Archive),选择菜单:Product->Archive,在organizer窗口可以看到你的程序,


然后点击“share”按钮,进行发布(share)

4、Share

选第一个“iOS App Store Package”,生成.ipa文件,你的Tester使用itunes即可安装。最后一个Archive,需要对方安装xcode。

    1、打开XCode,插上设备,如果XCode不显示设备,而是iOS Device的状态,则检查Targets->iOS ApplicationTarget->Deployment Target中的版本是否与设备版本不匹配

      

   2、选择上图中Build Settings,将Code Signing中的profile设置成上文下载的Provisoning Profile(joanfen),也可设置成Automatic profile中的iPhone Developer,XCode将会自动匹配描述文件

        

   3、检查Bundle ID是否与描述文件所包含的App ID中的Bundle匹配,选择TARGETS->Summary查看,由于我们申请的是通用型App ID,所以Bundle Identifier只需要是com.oschina.打头即可,后面可以随意填写

      

打包过程:



选择弹出的 archives 下的 Distruibute





 

最后,通过 iTuse 完成安装.好了,大功告成!!

 

 

 

 

 

你可能感兴趣的:(ios,ios,xcode,app,store,发布)