傻瓜式打包ipa发布OTA

作者: KevinTing | 来源:发表于2018-11-15 00:50 被阅读5次

所谓OTA

OTA即Over-the-Air,是Apple在 iOS4中新加的一项技术,目的是让开发者能够脱离Appstore,实现从自己的服务器下载并安装iOS应用。简单地说,就是用户只需要在Safari中点开一条链接,就能直接在主界面中安装App。
OTA方式安装,是通过Safari解析链接中的"itms-services://"来实现的。例如:

<a title="iPhone" href="itms-services://?action=download-manifest&url=https://192.168.10.193/installIPA.plist"> Iphone Download</a>

Safari会去读取installIPA.plist中的信息,如:iOS应用的ipa文件、版本、安装地址等。这里打包的ipa有几种方式:
1、通过企业证书签名打包发布(比如pp助手,同步推,迅雷等永远不能上架AppStore的应用厂商就是这么干的)
2、通过个人证书签名打包发布(Ad_hoc)
3、不签名直接打包,只能安装在越狱机器上
我们这里实现第二种,有企业证书的最好用第一种,注意在打包之前配置好证书(有企业证书的配置企业证书):



实现步骤:
1、打包签名ipa
2、发布到webserver上面
3、Safari输入地址,直接点击安装

用打包工具打包

可以直接用Xcode自带的archivie工具打包,但是这种操作繁琐,archive完了之后还要各种点,不推荐。


现在有很多现成的打包工具,比如https://github.com/nomad/shenzhen,还有fir-cli等。这里采用fir的命令行工具fir-cli https://github.com/FIRHQ/fir-cli
先安装:
sudo gem install fir-cli -v 1.5.0

安装完之后敲fir命令可能提示:

Unable to activate fir-cli-1.5.0, because CFPropertyList-3.0.0 conflicts with CFPropertyList (~> 2.3) (Gem::ConflictError)

执行下面命令修复:

sudo gem uninstall CFPropertyList -v 3.0
sudo gem install CFPropertyList -v 2.3.6

在工程根目录下执行打包命令:

fir build_ipa ./ -v -o ~/Desktop/ -B master -S TestAppRelease -n TestAppRelease

这里解释一下:
fir build_ipa是打包命令,-v是啰嗦模式,就是会把打包日志都打印出来,方便查看错误信息,-o后面的参数是输出ipa的路径,-B是branch分支,-S是scheme名称,-n是ipa的名称。还有其他的参数,具体可查看fir-cli的官方说明。
执行命令可能会提示这个错误:

xcrun: error: unable to find utility "PackageApplication", not a developer tool or in PATH

下载PackageApplication https://www.jianshu.com/p/88bb51cba34d,解压缩到目录:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/
执行命令:

sudo xcode-select -switch /Applications/Xcode.app/Contents/Developer/
chmod +x /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/PackageApplication

重新执行上面的fir build_ipa命令,打包完成之后会看到ipa文件和符号文件:


上传到webserver

1、上传到fir,或者蒲公英等第三方平台:直接去注册账号,上传。
2、上传到自己的webserver:由于OTA限制只能使用https而不是http,因此又有两种选择:1、发布到带域名的外网webserver;2、发布到内网IP地址webserver。第一种域名固定,客户端不用安装证书,第二种内网下载速度更快,但是现在多是动态分配ip,如果作为webserver的机器IP地址变换,需要下载客户端多次安装证书。下面说第二种方法。
有很多教程自己搭建本地内网webserver的,比如https://www.jianshu.com/p/35ca63ec0d8e,但是比较繁琐,需要自己配置ssl证书,自己配置plist文件等。这里使用工具
https://github.com/bumaociyuan/ios-ipa-server,省去上述繁琐步骤。安装ios-ipa-server:

sudo npm install -g ios-ipa-server

新建一个文件夹,将ipa文件拷贝进去



到该文件夹下面开启服务:

ios-ipa-server

看到有下面的服务开启的提示:

Open download page https://192.168.0.107:1234/download

在safari上面输入https://192.168.0.107:1234/download,会看到下面的页面


点击”显示详细信息“-”继续访问“

点击安装证书,安装好证书之后,再点击下载,如果还是无法下载,说明你的系统是10.3以后的系统,进入设置 > 通用 > 关于本机 > 证书信任设置 > 打开对应证书的switch开关:

再返回safari,点击下载。如果下载安装的app是灰色的不能用,应该是打包的证书设置有问题,去前面设置企业证书或者ad hoc证书重新打包。
此外建议webserver的机器设置为固定ip,避免ip变动,安装的客户端又需要安装一遍证书。

参考:
https://www.jianshu.com/p/35ca63ec0d8e
https://www.jianshu.com/p/88bb51cba34d
https://github.com/bumaociyuan/ios-ipa-server

相关文章

  • 傻瓜式打包ipa发布OTA

    所谓OTA OTA即Over-the-Air,是Apple在 iOS4中新加的一项技术,目的是让开发者能够脱离Ap...

  • Xcode自动打包

    [iOS]从零开始写个自动打包IPA脚本 【iOS打ipa包】:使用终端实现自动打包 iOS自动打包并发布脚本

  • iOS OTA内网发布ipa

    公司要求搭建一个iOS的发布的流程,专门用于给测试提供测试包。不使用蒲公英,说是以前就用这个,测试嫌弃下载的慢。。...

  • App打包

    Save for iOS App Store Deployment 使用发布证书,打包生成ipa用于发布到app ...

  • ionic - iOS 打包&OTA发布

    打包前准备 1)确认网络地址 2)确认版本号 3)确认本地测试通过 对于iOS打包(使用企业级应用),暂未有相关的...

  • iOS Xcode打包ipa

    参考文档: Xcode打包ipa的基本步骤Xcode打包ipa的步骤(简述) 总结: 1、要想打包能安装的ipa包...

  • 申请iOS发布证书和描述文件

    iOS发布证书 用于发布到App Store,只有用iOS发布证书打包的IPA才能上架到苹果应用市场。 如果要真机...

  • iOS自动打包ipa(shell脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装xctool shell...

  • iOS自动打包ipa(Python脚本)

    系列 iOS自动打包ipa(shell脚本)iOS自动打包ipa(Python脚本) 安装Python库 Pyth...

  • iOS自动打包发布工具Fastlane

    一、前言 正常的打包流程需要使用Xcode配置证书-执行打包-导出ipa文件-上传到第三方发布平台,例如蒲公英或者...

网友评论

    本文标题:傻瓜式打包ipa发布OTA

    本文链接:https://www.haomeiwen.com/subject/bhhsfqtx.html