一、通过企业账号申请证书
1 Certificate Signing Request (CSR)文件
在Mac系统中进入“钥匙串访问”,选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书…”,如图1所示:
—>填写前两项,并选择“存储到磁盘”,如图2所示:
2 请求Certificate证书
登录https://developer.apple.com —>MemberCenter—>Certificates, Indentifiers & Profiles—>Certificates,如图3所示:
—>在图4页面,点击右上角加号,添加一个证书:
—>选择In-House and Ad Hoc,点继续,如图5所示:
—>如图6:Choose File选择第1步的CSR文件上传,点击generate生成cer证书,下载后双击安转(需要输入Mac的密码)
3 App ID
点击右上角的加号按钮,如图7所示:
—>有两项需要填(如图8所示),name为描述可以随便填写.bundleID必须与APP的bundleID完全一致(如图9所示)。至于App Services根据自己需要选择。最后点击继续->submit->done
4 生成最终的Provisioning Profile(企业版不需要device即iPhone的UDID,因此跳过)。
选择Provisioning Profile->ALL,点击右上角加号:
—>选择刚创建的AppID,点击继续,如图12所示:
—>选择cer证书点击继续.图13 给最终生成的Profile文件命名方便自己识别。然后点击生成,并下载双击打开。至此证书环节完毕
二、打包ipa,手动生成plist
这一步开始前,需要将手机插入电脑,并调试选项选择真机。(防止无法Archive)
1 打包ipa
1.1 Edit scheme
用Xcode打开对应APP。Product->Scheme->Edit scheme,填写scheme name如图14所示
1.2 选择对应证书,即刚才生成的证书,如图15所示:
1.3 归档,Product->Archive,并按图16,图17操作:
完成之后会生成一个ipa包。
三、发布APP
要发布还必须有一个plist文件,在Xcode6之前会自动生成一个plist文件,但是Xcode6之后需要我们自己创建plist,文章最后提供一个plist模板,复制并重命名为plist后打开根据提示操作即可.图18为plist的截图,可以看到有三个URL,分别存放ipa,大小图标。当用Safari打开plist时会根据填的URL来下载安装ipa,大小图标。
那么plist放在哪里呢?它的URL是多少呢?苹果对plist存放地址有要求,必须是https的,如果没有https网站,我们可以把plist放在https://git.oschina.net。具体做法就是在上面创建一个项目(不能是私人的),然后将编辑好的plist传到项目,最后将plist的URL赋值下来,比如https://git.oschina.net/waitwait/companytest/blob/master/MDDTest.plist。然后我们在Safari中输入:itms-services:///?action=download-manifest&url=https://git.oschina.net/waitwait/companytest/blob/master/MDDTest.plist就可以安装了(一定要将红色字符串和蓝色URL一起输入)。
Safari操作的具体流程是:
1 Safari解析我们输入的那一串字符串,找到plist文件
2 根据plist文件里面提供的信息下载ipa包,还会访问大小图标
下面是plist模板的文本形式,将其复制到文本然后重命名.plist,用Xcode打开按照提示编辑即可。
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 3 <plist version="1.0"> 4 <dict> 5 <key>items</key> 6 <array> 7 <dict> 8 <key>assets</key> 9 <array> 10 <dict> 11 <key>kind</key> 12 <string>software-package</string> 13 <key>url</key> 14 <string>ipa包URL(必填)</string> 15 </dict> 16 <dict> 17 <key>kind</key> 18 <string>full-size-image</string> 19 <key>needs-shine</key> 20 <false/> 21 <key>url</key> 22 <string>下载时大图(非必填)</string> 23 </dict> 24 <dict> 25 <key>kind</key> 26 <string>display-image</string> 27 <key>needs-shine</key> 28 <false/> 29 <key>url</key> 30 <string>下载时小图(非必填)</string> 31 </dict> 32 </array> 33 <key>metadata</key> 34 <dict> 35 <key>bundle-identifier</key> 36 <string>BundleID(必填)</string> 37 <key>bundle-version</key> 38 <string>1.0</string> 39 <key>kind</key> 40 <string>software</string> 41 <key>subtitle</key> 42 <string>副标题(非必填)</string> 43 <key>title</key> 44 <string>应用名(必填)</string> 45 </dict> 46 </dict> 47 </array> 48 </dict> 49 </plist>