多年来我一直在使用我的临时发行版的"OTA"发行版进行beta测试。它总是有效的。最新版本是在5月份。伟大的工作。
一般的想法是。ipa和。plist在我们的服务器上。我有一个带有items -services:链接到。plist的页面,其中包含。ipa的URL,它也在我们的服务器上。
刚刚为我们的测试者上传了一个新版本。我可以把它下载到我的iPhone和iPad上。测试者说,他们点击了我们网站上的链接,但什么也没发生。当我这样做时,我得到正常的消息,问我是否可以安装应用程序。我回答是,然后应用程序下载,一切都很好。
我已经将iPad连接到XCode,并删除了所有移动配置文件和应用程序。然后我从网站上安装了一个,它工作得很好。但我的每一个测试者都说这行不通。他们甚至不会得到是否可以安装的提示。他们说当他们点击items -services链接时什么也没发生。
我已经确认他们所有的uid都在配置文件中。
items -services链接如下:
<a href="itms-services://?action=download-manifest&url=https%3a%2f%2fwww.example.com%2fexample.plist">Install Application</a>
.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>url</key>
<string>https://www.example.com/example.ipa</string>
</dict>
</array>
<key>metadata</key>
<dict>
<key>bundle-identifier</key>
<string>com.example.example</string>
<key>bundle-version</key>
<string>3.3.0</string>
<key>kind</key>
<string>software</string>
<key>title</key>
<string>Example</string>
</dict>
</dict>
</array>
</dict>
</plist>
我已经用"example"代替了我的domain和app;两个名字都没有空格(其他人在其他问题中提到过这个问题——只是想澄清一下)
我终于在这里找到了一个链接到这篇博客文章的答案。事实证明,这是iOS 8的一个漏洞,苹果还没有费心去修复。如果iOS 8已经安装了之前版本的应用程序(或者可能是在iOS 8升级之前安装的应用程序),那么iOS 8将不会下载临时分发版。如果设备上有开发人员证书,它就会工作,这就是为什么它适用于我的设备,即使我从设备中删除了配置文件。
EDIT:这在iOS 9中得到了修复,但我发现iOS 9用户必须先删除已发布的App Store版本才能安装测试版。除此之外,Ad Hoc分布在iOS 9中运行良好,特别是可以在配置文件中注册的设备数量的扩展(100个ipad, 100个iphone, 100个iPod touch,而不是总共100个设备)。