iTunes12.x 后 安装ipa的几种方法

在iTunes 12.x 中移除了App Store后,就不能通过iTunes同步的方式安装ipa了。但Apple还提供了其他方式,供开发者使用。

使用Xcode

如果是开发者,必然装有Xcode。连接设备到Mac,打开Xcode,选择: Window->Devices and Simulators,新弹出的页面上选中连接的设备,在右面会出现安装的按钮。点击 "+",在弹出的对话框中选取ipa文件即可。

install adhoc ios ipa through xcode

使用 Apple Configurator 2

Apple Configurator 2可以在Mac Store中下载。连接上设备后,在 Configurator 中选中,然后点击工具栏中的"+",在弹出菜单中选择App,然后根据提示操作。

install adhoc ios ipa via Apple Configurator 2

除了安装app,Apple Configurator 2还有很多别的用途,比如管理设备,限制设备访问内容等等。

OTA (Over-the-air)

通过构建网页服务器的方式,来分发应用。注意,即使非公开如仅面向公司内部使用的话,也需要通过https访问。如果不想购买证书,可以使用自认证的证书,这里记录下构建https需要用到的文件以及通过Nodejs部署服务。
首先生成服务器私钥:

openssl genrsa -out server.key 1024

接下来,创建自认证的CA(Certification Authority),先生成CA的私钥:

openssl genrsa -out ca.key 1024

再生成CSR(Certification Signing Request):

openssl req -new -key ca.key -out ca.csr

利用生成的CSR文件生成CA的证书:

openssl x509 -req -in ca.csr -signkey ca.key -out ca.crt

在Mac OS上双击该文件会添加到Keychain中。在keychain中右键该证书,选择"显示简介",在弹出的窗口中选择始终信任该证书。 然后根据提示输入相应的信息,注意必须是ASCII码,common name最好是和最终部署的域名相同。
接着创建服务器所用的证书,先利用服务器私钥生成CSR文件:

openssl req -new -key server.key -out server.csr

然后创建证书:

openssl x509 -req -sha256 -extfile v3.ext -CA ca.crt -CAkey ca.key -CAcreateserial -in server.csr -out server.crt

其中的v3.ext文件内容为:

authorityKeyIdentifier=keyid,issuer
basicConstraints=CA:FALSE
keyUsage=digitalSignature, nonRepudiation, keyEncipherment, dataEncipherment
subjectAltName=@alt_names

[alt_names]
DNS.1=yourDomain

以上https所有需要的文件都已创建完毕,下面部署服务器。这里以Express为例,在www文件中创建服务:

var privateKey  = fs.readFileSync('./server.key', 'utf8');
var certificate = fs.readFileSync('./server.crt', 'utf8');
var credentials = {key: privateKey, cert: certificate};
var server = https.createServer(credentials,app);
server.listen(port);
var httpServer = http.createServer(app);
httpServer.listen(portHttp);

之所以同时部署http服务,是因为crt文件可以通过http安装到iPhone上。
接着使用Xcode生成相关的文件,这里就不多说了。创建下载页面,关键内容如下(jade文件):

a(href="itms-services://?action=download-manifest&url=https://192.168.1.xx:3000/manifest.plist") 下载

使用Express的话,把ipa文件,manifest.plist和ca.crt文件放在public文件夹下。服务开启后,通过Mobile Safari打开,如:http://192.168.1.xx:3001/ca.crt。Safari会提示是否安装该Profile,用户同意后iOS会安装该Profile。安装完毕后,即使屏幕显示该证书已被信任,也需要在"设置-关于本机-证书信任设置"中查看,是否打开了证书的信任。接着就可以打开 https://192.168.1.xx:3000。这时可能Safari还是会提示网站连接的安全性,不过选择仍然访问即可。
如果不方便建https服务器,那么可以选择第三方的服务, 比如:fir.im之类。注意使用这些国内的服务需要实名认证方能上传ipa。

总结

如果小批量的安装可以使用Apple Configurator 2;OTA的方式则对用户非常友好。如何取舍,取决于实际业务情况了。
以下是参考链接:
Distribute to registered devices
iOS 部署参考
HTTPS自签发CA证书