ios - 使用未在 iOS 8.4.1 中安装的 BetaBuilder 创建的临时 OTA 构建

标签 ios iphone ad-hoc-distribution ota ios8.4

我在 iOS 8.4 上通过 BetaBuilder 分发 OTA Adhoc 版本时遇到了一个奇怪的问题。 尽管配置文件包含准确的设备 ID,但该版本可以完美安装在 iOS 8.1 设备上,但不能安装在 8.4.1 上。 我正在使用开源版本的 BetaBuilder for iOS Apps,版本 1.8.1 (16)。 单击链接后,用户将进入安装页面,但单击链接后,没有任何反应。当用户按住该链接时,会提示通过Appstore打开。请参阅附图:

enter image description here

生成的manifest.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.myhosting.com/betabuild/myapp.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.mycompany.myapp</string>
                <key>bundle-version</key>
                <string>1.0 (1)</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>apptitle</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

HTML 文件中的下载链接:

<div class="link">
    <a href="itms-services://?action=download-manifest&url=https://www.myhosting.com/betabuild/manifest.plist">
    Tap Here to Install<br />myapp 1.0 (1)<br />Directly On Your Device
    </a>
</div>

这些文件托管在支持 SSL 的服务器上。

为什么该版本安装在 iOS 8.1 设备上,但没有安装在 iOS 8.4.1 设备上?我该如何解决这个问题?

TIA

最佳答案

如果您尝试通过 url 下载 IPA:

创建一个 html 文件并将此代码放入:

<a href="itms-services://?action=download-manifest&url=https://xxxxx.com/yyy/manifest.plist">

你的 manifest.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://xxxxx.com/yyy/ipaname.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>bundleid.com</string>
                <key>bundle-version</key>
                <string>1.0.4</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>appname</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

html 文件、manifest 文件和 IPA 应该放在同一个文件夹中以方便操作

打开html文件,点击链接就可以了

不幸的是,OTA 分发仅适用于 SSL,因此您必须将文件托管在支持 ssl 的服务器上

关于ios - 使用未在 iOS 8.4.1 中安装的 BetaBuilder 创建的临时 OTA 构建,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32373663/

相关文章:

objective-c - NSRect 圆角

iphone - dispatch_sync 死锁

iphone - 如何在 iOS 上设置向上移动的渐变动画

ios - 我应该如何理解 Xcode for iOS 应用程序中的 "Save for Development Deployment"?

iPhone 使工具栏在 UITableView 中可见

ios - 在调用 UITapGestureRecognizer 函数之前取消初始化

ios - 即使有缓存也无法正确加载图像

iphone - 如何在 iPhone 上正确处理 HTTP 摘要认证

ios - Xcode 6 企业版不工作

objective-c - 为 beta 分发设置 xcode 配置/方案