iOS开发企业版ipa分发 以及在线安装

来源:互联网 发布:青少年行知实践园地图 编辑:程序博客网 时间:2024/06/03 12:51

新版的xcode(6.1)在导出企业级ipa时并没有“saved for enterprise distribution”这个选项,所以需要手动添加该plist文件。

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

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

具体步骤如下:

1、创建Production 证书



点击红色方框的+图标


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


2、创建Provisioning Profiles


选择In House ,点击继续


选择App ID(关于如何创建APP ID请查看步骤一的链接),继续


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


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

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有个样例,可以参考一下https://www.dropbox.com/s/a8hpnmq654pmbaw/AppName.plist?dl=0

4、通过网络安装ipa

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

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

[html] view plaincopy
  1. 创建网页,包含如下代码:<a href="itms-services://?action=download-manifest&url=https://mydomain.com/apps/MyInHouseApp.plist" id="text">Install the In-House App</a>  
[html] view plaincopy
  1.   

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

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

application/octet-stream ipatext/xml plist
最后贴图,证明上述所说的都不是扯蛋



另由于ios 8版本以后plist文件一定要加全才能下载

见下面的文章

分类: iOS平台

首先要吐槽下国内的论坛水分略多,以下问题大多是查询stackoverflow等论坛解决的。
推荐一款软件,Log Guru,用来查看app安装时的系统日志,很多问题要看日志才知道错误点。

1.首先有几个比较基础的问题:
(1)若要在网页上安装app,则iOS7.1及以后的plist文件的下载地址要放在https的网址下,而ipa文件下载地址不一定要https。
(2)ipa文件放到服务器上时,要设置下iis的ipa文件下载支持,否则点击下载后会图标一直停留在“等待中”。
(3)程序下载安装时,快安装完成时,图标的显示突然回退,那就是provisioning profile的问题了,查看日志会看到类似下面的信息,遇到这种情况你得检查下provisioning profile是否正确了
installd?entitlement 'get-task-allow' has value not permitted by provisioning profile 

2.iOS8安装到3分之2左右的时候停止,然后弹出“此时无法安装应用程序”的提示框。
        我遇到这种情况时以为是签名或者provisioning profile的错误,然后各种检查重新发布,但是没有解决。查看日志后发现这样一条错误:
0x1022dc000 -[MIContainer makeContainerLiveReplacingContainer:withError:]: Made container live for com.kmvc.myapp at...

然后在
stackoverflow上找到同样的问题,下面有这么一条回答:(地址:http://stackoverflow.com/questions/25760484/ios8-beta-ad-hoc-app-download-itms-services),主要的答案是这么说的:
Specify a 'display-image' and 'full-size-image' as described here:http://www.informit.com/articles/article.aspx?p=1829415&seqNum=16
iOS8 requires these images
        
也就是说iOS8的下载安装是必须要display-image和full-size-image这两个文件,文件地址要和你的plist文件中写的一致。因为之前iOS7的安装没有这两个图片文件也可以安装,就一直疏忽了,也没想到会是这个导致的无法安装,经过这次事情后得严格按照苹果的规范了,不然真是出了问题都很难发现。

3.之前安装过该app的iOS8系统点击安装后没有反应。
        还是查看日志,只有一条记录:
LoadExternalDownloadManifestOperation: Ignore manifest download, already have bundleID: com.mycom.MyApp
遇到这种情况,我按照论坛上说的(http://stackoverflow.com/questions/25772664/enterprise-app-update-distribution-on-ios-8#)更改plist文件的bundle ID(是下载时用的plist文件不是项目的bundle ID),然后重新点击就可以下载安装了。

http://blog.chinaunix.net/uid-29439762-id-4830442.html

http://www.360doc.com/content/15/1010/22/20918780_504774501.shtml

0 0
原创粉丝点击