IOS 打包流程

511 阅读4分钟

hbuilder iOS发布流程

  1. 开发者账号开通。
  2. 申请发布证书、AppID、Profiles文件。
  3. 在HBuilderX上进行 “云端APP打包“ ,生成 .ipa 安装包文件。
  4. 用XCode中的 “Application Loader ” 上传 .ipa文件到apple开发平台。
  5. 在apple开发平台上填写应用信息和选择刚上传的ipa文件,提交应用审核。

详细流程:

1、 开发者账号开通。 这个网上教程很多,若是申请公司开发者,可参考zhuanlan.zhihu.com/p/63659302

2、申请发布证书Certificate、AppID、Profiles文件。 可参考此文章 blog.csdn.net/belalds/art…

3、在HBuilderX上进行 “云端APP打包“ ,生成 .ipa 安装包文件。 blog.csdn.net/belalds/art…

image.png

hbuilder所需信息获取途径

在HBuilderX上要填写的4个字段:

Bundle ID: 一般就是AppID,类似Android的包名,如com.公司域名.应用名

私钥密码: 即私钥证书的密码。

profile文件: 即第二步申请下来的profile文件(对应每个应用都有一个profile文件)

私钥证书: 第二步生成的发布证书Certificate, 在Keychain Access 中将证书导出为.p12格式,导出时要输入密码,就是上面输的私钥密码

导出.p12证书的方式:

打开Keychain Access, 左上角选 “login”,左下角选 “Certificates”,右边找到 “iPhone Distribution..”证书,双击证书,设置 Trust 为 Always Trust

image.png 然后右键菜单选择 “Export iPhone Distribution.."

选择.p12格式导出,设置一个密码,也就是上面要填的 “私钥密码”

填写完4个信息,就能云端打包出.ipa文件了。

如果报错一般就是profile文件和BundleId对不上,或者p12证书错了,检查一下

4、用XCode中的 “Application Loader ” 上传 .ipa文件到apple开发平台。

打开XCode, 顶部菜单 "XCode" - "Open Developer Too" - "Application Loader" , 这时候注意要输入AppleID账号登录

2020.06.05更新:Application Loader已被淘汰,用官方新出的 Transporter 软件可很方便地上传.ipa 文件。(在 App Store 搜索下载即可)

注意: 如果应用icon 1024x1024.png图片是有问题的话,生成的ipa文件上传也会报错 Images can’t contain alpha channels or transparencies.

解决办法参考: www.cnblogs.com/ChenYilong/…

就是双击打开icon,取消勾选Alpha ,重新导出 icon,再把icon换进去,重新打包ipa上传。

iOS企业版打包 发布在线安装包 plist

必备条件:1、申请 iOS Developer Enterprise Program,需要$299/年;

2、需要一个有效的SSL证书(访问plist文件用到),可以来着www.freehao123.com/startssl-ss… 搞一个;

具体步骤如下:

1、创建Production 证书

点击红色方框的+图标

选择In-house and Ad Hoc,由于已经创建过该类证书,所以不能再次创建。点击continue后会要求上传证书请求文件,具体的证书创建过程请参考blog.csdn.net/abbottsucce…。证书生成后下载(cer)文件,双击安装,可在钥匙串中查看到已安装的证书

image.png 2、创建Provisioning Profiles

选择In House ,点击继续 image.png 选择App ID(关于如何创建APP ID请查看步骤一的链接),继续

image.png

选择步骤一创建的发布证书(别选错),继续

image.png 下载,之后双击安装该文件(安装时间很短,确定双击即可)

3、创建IPA及plist

打开Xcode,点击左上角的工程名称,在TARGETS中点击工程名,选中顶部的General, Team选择为在 iOS Developer Enterprise Program创建的账号。

选择工程,在Build Settings中的Code Signing中将Debug、Distribution、Release全选择为步骤一中安装好的证书,Provisionning Profile选择为所下载的那个文件。返回到TARGETS,在Build Settings中进行同样的操作。

在Xcode的菜单栏上选择Product -> Archive

选择 Export,

选择Save for Enterprise Deployment,next

按要求选择账号,然后继续即可,最后就是导出ipa了(注意,没有任何Save for Enterprise选项)

截止目前为止,ipa已经生成了,但是由于6以上的xcode已经不支持自动生产plist文件,所以需要自己创建plist文件。Dropbox有个样例,可以参考一下www.dropbox.com/s/a8hpnmq65…

4、通过网络安装ipa

注意:plist文件的名称必须跟ipa文件名称一致

1)将plist与ipa文件上传至服务器,

url必须是https,否则ipa无法安装。

2)有些服务器可能还需要配置一些mime type,如下:

application/octet-stream ipa

text/xml plist
  • 原始plist文件如下:
<plist version="1.0">
<dict>
	<key>items</key>
	<array>
		<dict>
			<key>assets</key>
			<array>
				<dict>
					<key>kind</key>
					<string>software-package</string>
					<key>url</key>
					<string>THE URL FOR YOUR IPA: ex: http://go.com/appname.ipa</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>full-size-image</string>
					<key>needs-shine</key>
					<true/>
					<key>url</key>
					<string>THE URL FOR INSTALLATION @2x ICON: ex: http://go.com/Icon@2x.png</string>
				</dict>
				<dict>
					<key>kind</key>
					<string>display-image</string>
					<key>needs-shine</key>
					<true/>
					<key>url</key>
					<string>THE URL FOR INSTALLATION ICON: ex: http://go.com/Icon.png</string>
				</dict>
			</array>
			<key>metadata</key>
			<dict>
				<key>bundle-identifier</key>
				<string>YOUR BUNDLE ID (Take it from your Xcode Project)</string>
				<key>bundle-version</key>
				<string>1.2.3 Your app version</string>
				<key>kind</key>
				<string>software</string>
				<key>title</key>
				<string>The Title To Present To The User installing the app</string>
			</dict>
		</dict>
	</array>
</dict>
</plist>

我在刚开始测试时,没有指定full-size-image和display-image的图片地址,导致应用在ios6和ios7设备上可以安装,但ios8设备上可以下载无法安装,大家可以注意一下这个问题;

另外段,这里的注释是“输入你的BUNDLE ID(可以从XCODE的工程中获取)”。但我输入的是potal中完整的APPID,形如"X6J85AD.com.xx.xx"这样,也可以正常下载和安装。

  • plist存放位置

plist下载必须使用https协议,要么就花钱买个SSL证书给网站添加https支持,

不想花钱的可以使用OSChina的代码托管。

访问git.oschina.net,添加一个项目;然后用git或svn客户端将plsit文件提交到版本库中;最后在浏览器中访问项目中的plsit文件,查看原始数据,即可获得plsit的https下载地址。

最后贴图,证明上述所说的都不是扯蛋