iOS企业开发In House ipa发布流程

时间:2023-01-13 08:06:44

iOS企业开发In House ipa发布流程

这两天需要发布一个ipa放到网上供其他人安装,需要用到企业级开发者账号。在网上查了一下资料,感觉没有一个比较完善的流程,于是决定把整个流程写下来,供大家参考。
首先详细说明一下我们的目标,我们需要发布一个ipa放到网上,所有人(包括越狱及非越狱设备)可以直接通过链接下载安装,不需要通过AppStore,也不需要安装任何证书。要达到这个目标,就需要企业级开发账号(299刀)。企业级开发账号的申请流程在这里就不细说,主要说一下In House ipa的发布流程。
1.登录https://developer.apple.com,进入iOS开发者中心。在Certificates-Production中创建一个证书。

iOS企业开发In House ipa发布流程










2.选择 In-House and Ad Hoc,点继续。注意,如果已经创建过In-House的证书,就不能再创建了,该选项会变灰,如下图。如果要重新创建,可以先在之前的列表中将该证书Revoke掉。

iOS企业开发In House ipa发布流程

































3.在Mac系统中进入“钥匙串访问”(可以直接用SpotLight搜索),选择“钥匙串访问”-“证书助理”-“从证书颁发机构请求证书”。
iOS企业开发In House ipa发布流程













4.输入邮箱地址和名称,选择“存储到磁盘”
iOS企业开发In House ipa发布流程

















5.将生成的“CertificateSigningRequest.certSigningRequest”文件上传到开发者中心,点击下一步生成,最后将生成的证书下载到本地,双击打开。就可以在钥匙串中看到证书已经成功安装了。

iOS企业开发In House ipa发布流程
6.回到iOS开发者中心,在“Identifiers”-“App IDs”中创建一个应用对应的App ID。本人是创建的Explicit App ID,Wildcard App ID应该也行。
iOS企业开发In House ipa发布流程
7.在Provisioning Profiles中添加一个与刚刚创建的AppID相应的Profile,选择“In House”
iOS企业开发In House ipa发布流程
8.选择刚刚创建的App ID
iOS企业开发In House ipa发布流程
9.创建并生成Profile后,下载到本地,双击打开,添加到资料库中。
10.打开需要导出ipa的工程,在Scheme中选择iOS Device
iOS企业开发In House ipa发布流程
11.在菜单中选择Product-Archive
iOS企业开发In House ipa发布流程
12.在弹出的Orgnizer中选择刚刚生成的Archive(默认选中),再选择右上角的Distribute
iOS企业开发In House ipa发布流程
13.选择Save for Enterprise or Ad Hoc Deployment
iOS企业开发In House ipa发布流程
14.选择刚刚创建的Profile
iOS企业开发In House ipa发布流程
15.在弹出的保存框中将“Save for Enterprise Distribution”选上,并填入ipa在服务器上的路径(服务器地址需要改成自己的)以及应用的名称,选择保存路径,点击“Save”。
iOS企业开发In House ipa发布流程
16.接下来就会在刚刚保存的路径下看到生成的两个文件
 iOS企业开发In House ipa发布流程
17.应用升级所需要的服务器端html文件,新建一个html文件(本文中为index.html),代码如下:

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>BroMobileShell</title>
<script type="text/javascript">
function openurl(url){
window.self.location=url;
}
</script>
</head>
<style type="text/css">
html,body,div,dl,dt,dd,ul,ol,li,h1,h2,h3,h4,h5,h6,pre,code,form,
fieldset,legend,input,button,textarea,select,p,blockquote,th,td,span,frame,iframe {margin:0;padding:0;}


.outbox{ margin:0; width:100%; height:1260px;}
.box02 { margin: auto auto; width:524px; height:81px; text-align:center;}
.button{ margin: 80px auto 0 auto; width:458px; height:107px;}
</style>
<body>
<div class="outbox" style="border:1px solid #dadfe3;" >
<div class="box02" style=" margin-top:300px; width:650px; height:81px"><label>
<font style="font-size: 50pt">BroMobileShell</font></label></div>
<div class="button" style="width: 666px; height: 152px" >
<p align="center"><a href="#" style=" margin-top:650px;" target="_blank"><label onclick="openurl('itms-services://?action=download-manifest&url=http://192.168.0.108/boe/client/BroMobileShell.plist');">
<font style="font-size: 40pt">点击在线下载安装</font></label></a><font style="font-size: 40pt"> </font> </div>
</div>
</body>
</html>
核心代码:

"openurl('itms-services://?action=download-manifest&url=http://192.168.0.108:8088/netcrm/HelloWorld.plist');"

http://192.168.0.108:8088/netcrm/HelloWorld.plist为打包生成的HellWorld.plist文件的Web访问路径。

18.把HelloWorld.ipa HelloWorld.plist index.html三个文件上传到服务器上,手机访问index.html所在路径就可以下载安装了