ipa文件,即 iOS 应用的安装包文件,扩展名为 .ipa。能否正确的打包 ipa文件,是决定了 ipa文件上传到App Store后能否被正确安装的关键。
应用的 ipa文件可以使用两种方式生成:
xcodebuild exportArchive -exportFormat ipa
来完成鉴于第 2 种方式简单快速,也是大部分用户都使用的,所以这里只要说明第 2 种方式
这篇文章送给同为菜鸟的你,如果里面有很菜的东西,大牛请自动忽略。
很简单,任何人只要跟苹果设备打交道,必须要有Apple ID。要想打包ipa,同样也必须要有Apple ID,没有的自己注册去。注册教程参见我的这篇文章Apple ID申请教程
开发者账号的获取有三种途径:
注册账号之后,可以去苹果的开发者中心管理账号,证书,provision profiles等等。还可以添加测试设备等。
选择Certificates, Identifiers & Profiles(左边第二项),申请证书、App ID、设备等配置都在此处。见下:
以上是对应开发的不同版本对应的不同的配置,我上架的是手机版,所以就选择了iOS Apps 中的Certificates
关于Certificate、Provisioning Profile
可以参考这篇文章看看他们之间的关系
Certificate(证书)就是app在打包的时候必须签名,苹果iOS系统在安装app之前会验证Certificate,否则不会通过安装。
Provisioning Profile简单来说就是包含Apple ID,证书,和设备ID等各种信息的集合体。一般来说,在打包ipa的时候,必须配置Provisioning Profile。
选择App IDs ——>点击+创建一个新的App ID
其中有两项需要你自己填:
第一个Name,用来描述你的AppId,这个随便填,没有什么限制,最好是项目名称,这样方便自己辨识(不允许中文哦);
第二项Bundle ID (App ID Suffix),这是你appid的后缀,这个需要仔细。因为这个内容和你的程序直接相关,后面很多地方要用到,最好是com.yourcompany.yourappname的格式,我用的是项目中的Bundle ID(反正这样是最保险的)
第三项App Services,默认会选择2项,不能修改,只需要选择上自己需要的服务即可,不知道在哪里看到说是必须要选上推送,否则后面就没有办法修改了,但是我自己测试的是可以修改的。如果不放心的同学可以选择上哦!
然后点击Continue确认没有错的话直接点击Submit后点击Done即完成App Id的创建
这儿需要一个Mac系统。以下内容以OS X Yosemite系统为例,另外版本差别不是很大。
首先打开应用程序-实用工具-钥匙串访问(KEY CHAIN),在证书助理中,选择”从证书颁发机构求证书”,如下图:
在下图所示的界面,你的电子邮件地址:填你申请idp的电子邮件地址,常用名称,默认就好,CA空,选择存贮到磁盘,点击”继续”:
选择保存的位置,比如选择桌面。下一步点击完成,你就可以看到你的桌面多了一个CertificateSigningRequest.certSigningRequest的证书请求文件。注:CSR文件尽量每个证书都制作一次,将常用名称区分开来,因为该常用名称是证书中的密钥的名字。
登陆到开发者中心,找到证书配置的版块,选择
,点击右上角的加号:
发布证书和开发者证书需要操作两次,分别创建,开发者证书用于真机调试,发布证书用于提交到AppStore。
然后下一步,会提示创建CSR文件,也就是证书签名请求文件。
直接选择我们上一步保存在桌面的CertificateSigningRequest.certSigningRequest。提交上去后就会生成一个cer证书,如图所示,有效期为一年。
点击DownLoad,双击安装。(如果安装不上,可以直接将证书文件拖拽到钥匙串访问的列表中)
到这一步证书还没凑全,想提交AppStore还需要PP证书。
点击Provisioning Profiles,然后点击右上角的加号。
该流程也需要进行两次,分别创建开发用的PP证书和发布的PP证书。
下一步的选择项里会自动检测匹配你的AppID,另外下拉项中还可以选择wildCard格式。
注意:wildCard格式的证书没有推送,PassCard等服务的应用,慎重选择。 继续,这里有一个区别,因为PP证书的开发者证书需要真机调试,所以我们需要绑定真机,这里因为之前我添加过一些设备,所以这里就可以直 接全选添加,如果没有的话,需要将真机的udid复制出来在此添加,在发布PP文件中,是没有这一步的。
之后就是输入一个PP证书的名字了,然后生成,下载保存,双击就添加到Xcode中,这样在真机调试或者发布时,就可以分别有不同的PP证书与其对应。【其实可以不用下载保存,具体原因后面会介绍到】
之后就是输入一个PP证书的名字了,然后生成,下载保存,双击就添加到Xcode中,这样在真机调试或者发布时,就可以分别有不同的PP证书与其对应。【其实可以不用下载保存,具体原因后面会介绍到】
如果前面添加了Apple ID账号,进入这个界面,会看到有选项给你选的。
我这里有2个账号。一个是开发者,一个不是。
选择个人账号之后,很明显没有签名,也就是对应这个Apple ID账号在你的Mac本地是没有对应的Provisioning Profile的。Provisioning Profile是需要去开发者中心配置的,具体怎么配置网上有教程
配置完成之后从网上下载下来保存安装到本地的。
保存安装的方法有两种:
当然我的这个个人账号不是开发者,那就更不谈配置Provisioning Profile了,所以“Fix Issue”没有什么卵用。
换一个有效的账号,“Fix Issue”之后警告消失了!表明你可以用这个账号进行签名打包。
不论用上面哪种方法安装Provisioning Profile,安装完成之后,可以在这里/Users/XXXXX/Library/MobileDevice/Provisioning Profiles找到相应的文件,如果以后换了台Mac,发现不能签名了,可以直接拷贝这些文件过去。
前期的准备工作终于算是搞完了~!!!!!!
证书签名
在Xcode7之前,真机调试和打包ipa是必须要签名的。但是Xcode7出来了,真机调试不需要签名了。打包ipa也可以不需要签名,那岂不是可以绕过苹果安装app了??想得美,如果不签名打包的ipa是不能安装的!!!打包可以不需要签名,但是要想安装的话,必须签名。签名打包
就是在编译的过程中加入证书签名,那肯定是需要去Xcode中配置的,目前网上有方法能实现企业级证书打包签名不需要在编译时,而在编译之后。因此现在打包有两种方式:
- 在Xcode中配置code sign,实现签名打包ipa。适用于企业级账号证书,个人账号证书。
- 在Xcode中无证书打包ipa,上传到指定工作室网站,淘宝上现在一大堆打包服务的,由别人用他们的账号签名ipa。适用于企业及账号。
Xcode6.x版本中将编译的目标机器设置成 “iOS Device”
Xcode7.x版本中将编译的目标机器设置成 “Generic iOS Device”
然后Archive
等待,Archive会弹出这个
最上面的一个就是最新Archive出来的
网上说先点击Validate进行验证,虽说验证的过程有点小慢,但是为了审核顺利点,还是验证下为好(有次validate一直不成功,直接导出ipa的安装包也没错误,因为不上传到市场,所以暂时没有遇到问题。这算是应付公差,不建议使用哦)。
验证成功后点击Export导出ipa的包用与上传即可。
淘宝上一堆企业签名打包的(我不会告诉你我用过),他们会告诉你打包一个ipa,然后发给他,他给你签名,你就可以用了。真的很良心啊!那这个时候你肯定不要自己去签名ipa了。利用Xcode7的免证书真机调试功能,我们可以很简单的打包ipa。需要设备一台。
1、设置使用无证书的开发者账号,没有交钱的。当然,如果下面出现警告,那么fix issuse即可。等待警告消失,就可以进行真机调试了。直接run的话app就会自动安装到你的iphone上。
2、在edit scheme中设置run的模式为realese。如下所示,一定要设置为release,图示中设置的add-hoc是copy的release。你要发布,当然得release版本了。
3、run。这个时候手机上就安装了app。然后在finder中全局搜索你的app。注意如果你的工程名位XXX,那么请搜索XXX.app。你会看到搜索结果。然后右键,“在上层文件夹中显示”。如果有多个结果的话,记得选最近编辑的那一个。
4、将找到的app拖到itunes中,替换原来的应用。
5、在文件夹中显示,就可以找到ipa了。
最后就是导出了,点击上图中的“Export“
如图所示
第一项:发布app到app store(APP上架),不要点,那是个人开发者账号可以干的事情。
第二项:打包的ipa用于在app store外面发布。
第三项:企业开发者账号打包app
第四项:
那么对于个人账号,选择第二项之后,打包的ipa能发布吗?能安装到iOS设备上么?
答案是不能,能的话还需要越狱干嘛?还需要app store干嘛?
那么这里个人账号的打包的ipa有什么卵用呢?
卵用就是这个ipa可以安装到一部分iOS设备中,这些设备的ID已经添加到签名这个ipa的开发者账号的“Devices”里面了。也就是这里有你这个设备的话,你是可以装的!其他的都滚粗!
那么企业级开发者账号签名的ipa呢?能安装到iOS设备上么?
答案是可以,这就是企业账号的作用了。可以直接装,也可以直接用,但是用之前iOS一般都会提示你不信任这个证书,要去设置里面设置信任,才可以使用。
扯了这么多,继续,上面export的时候下面三个选项我没有一一试,选择第二个。然后选择签名证书对应的开发者
继续
ok,大功告成了,ipa打包成功
如果你是个人开发者账号,并且就是需要将APP上传到APP Store,此时你就需要点击第一项,然后完成ipa提交App Store
登录开发者中心,选择Itunes Connect,进入后选择“我的App”如下图:
点击左上角的+选择“新建App”,根据自己的app然后填写相应的信息即可,因为项目较多,就不一一讲解了,但是其中的注意事项会写到:
1、选择语言的时候,简体中文是Simplified Chinese,不要再找Chinese了,找不到的(我就是)
2、套装ID与SKU主要是app的唯一标识吧,我是用的项目中Bundle Identifier的内容,即com.company.projectname
(App信息以及价格与定价根据app不同自己填写就可以了)
3.上传App Icon的时候,注意那个问号哦,需要上传1024*1024的,而且不能有圆角效果哦!
4.这里需要不同屏幕的截图,可以直接用模拟机运行后截图。待模拟器运行开始的时候,按住cmd+S, 模拟器的屏幕截图就直接保存在桌面上了。
5.上传的时候会提示“无法载入文件”的问题。原因是:截图保存的文件名有中文,修改下截图名称即可!
6.屏幕尺寸大家都可以查到,为了自己方便,简单备注下:
到此为止,终于修炼成功!!!,希望可以让好多人受益!!!