ios企业证书打包及发布ipa
Posted suwu150
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ios企业证书打包及发布ipa相关的知识,希望对你有一定的参考价值。
在开发中,我们需要进行对应用程序进行调试,有如下打包方案
1.iOS 无证书真机调试流程
2.个人/公司证书
3.企业证书
在使用企业证书打包时,能够通过分发子证书的形式去打包,在分发的子证书中,只需要企业内其他开发者生成
如下证书和描述文件,还有一个在证书中绑定的应用Bundle identifier即可:
在内部非主机开发者使用的时候,只需要将p12(导入时需要导出时设置的密码)文件导入到钥匙串,然后在Xcode中[项目名->target->build settings->Code Signing Identity]处选择导入的钥匙串,在[项目名->General->Signing->Provisioning Profile]描述文件处(provisioning profile)进行[Import Profile]hellowoeee.mobileprovision这个描述文件即可进行打包
对于上面这种行为就是指定证书打包方式
,当然还有自动管理证书打包方式
,自动签名管理打包只需要在[项目名->General->Signing->Automatically manage signing]选中下面按钮,然后进行打包即可
![](https://image.cha138.com/20230121/d523608616a1411392970f086596a5de.jpg)
注意:
1.如果是指定证书打包的形式,是不用登录原企业账号的,只需要p12文件、p12文件的密码和绑定在证书上的bundle identifier 、证书文件
2.自动管理是需要登录企业证书账号的,用于自动管理证书
在打包完成之后,我们需要提供给使用者进行下载,此时有以下解决方案:
1.上传到内侧平台,如fir.im、蒲公英平台等
2.自己搭建服务器,在自己搭建服务器的时候,需要注意的是必须需要https服务器
才能够进行提供下载功能,准确的说就是这个plist文件是需要https服务器的,在下载的时候,需要在服务器上面提供ipa文件、bp.plist文件,在需要下载的按钮或者a标签处直接访问bp.plist文件即可,而此时bp.plist文件的内容需要指定到ipa文件存放的地址,如下所示内容为bp.plist
[我这边测试过,可以将自己使用的plist文件存放到github或者码云上面拥有https协议的存储管理上面,然后复制raw方式文件地址,如下面所示这种地址形式]
https://raw.githubusercontent.com/suwu150/web-crawler/master/test/bp.plist
下面就是我在项目中使用的plist文件
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>items</key>
<array>
<dict>
<key>assets</key>
<array>
<dict>
<key>kind</key>
<string>software-package</string>
<key>md5</key>
<string>247c3c09df432fe363d18f4b288c38b8</string>
<key>url</key>
<string>https://www.suwu150.cn:9080/ios/codeFile.ipa</string>
</dict>
<dict>
<key>kind</key>
<string>display-image</string>
<key>needs-shine</key>
<false/>
<key>url</key>
<string>https://www.suwu150.cn:9080/ios/ios.png</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.suwu150.ied</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>rrrr</string>
</dict>
</dict>
</array>
</dict>
</plist>
如上面所示代码,md5键值是需要和文件中的一致,否则在ios13系统中是不能够安装的,会安装到一半然后提示无法安装,请稍后重试
弹窗,获取md5码值的方法参考下面代码,url所指定的位置就是.ipa的位置,在点击按钮或者a标签下载的时候,会通过ituns进行下载这个文件进行安装,display-image
是在安装时需要显示在桌面上的图标,如果没有该条值,则在安装时会显示白色空白图标(默认图标)进行显示。
获取md5值:
var fs = require('fs');
var crypto = require('crypto');
var path = './codeFile.ipa';
var start = new Date().getTime();
var md5sum = crypto.createHash('md5');
var stream = fs.createReadStream(path);
stream.on('data', function(chunk)
md5sum.update(chunk);
);
stream.on('end', function()
str = md5sum.digest('hex');
console.log('文件:'+path+',MD5签名为:'+str+'.耗时:'+(new Date().getTime()-start)/1000.00+"秒");
);
编辑日期2019-12-2日
以上是关于ios企业证书打包及发布ipa的主要内容,如果未能解决你的问题,请参考以下文章
ios企业证书导出的P12和对应的描述文件,可以签名ipa吗?