如何设置服务器以从 url 安装 iphone 应用程序(用于开发)

How to set up server to install iphone app from url (for development)

我将我的 .ipa 文件放在 http://www.diawi.com/ 上,可以提供并安装它。

但是,我正在尝试在我的服务器上进行设置,但它无法正常工作。

根据 diawi URLs,我的 URL 以 .ipa 结尾。

我用以下 headers:

Cache-Control:public
Content-Disposition:attachment; filename="Speaking Email.ipa"
Content-Length:644878
Content-Type:application/octet-stream
Date:Fri, 20 Mar 2015 06:54:00 GMT
Expires:Mon, 01 Jan 0001 00:00:00 GMT
Last-Modified:Fri, 20 Mar 2015 06:43:39 GMT
Server:Microsoft-IIS/7.5
X-AspNet-Version:4.0.30319
X-UA-Compatible:IE=Edge,chrome=1

diawi.com 上的 headers 是:

Accept-Ranges:bytes
Cache-Control:no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Connection:keep-alive
Content-Disposition:attachment; filename="Speaking Email.ipa"
Content-Length:644878
Content-Type:application/octet-stream
Date:Fri, 20 Mar 2015 07:09:22 GMT
ETag:"550bc49e-9d70e"
Expires:Thu, 19 Nov 1981 08:52:00 GMT
Last-Modified:Fri, 20 Mar 2015 06:56:30 GMT
Server:nginx
Set-Cookie:__utmmobile=0x4bf390e7f5e82765; expires=Sun, 19-Mar-2017 07:09:22 GMT; Max-Age=63072000; path=/
Set-Cookie:insc=2; expires=Fri, 20-Mar-2015 07:10:22 GMT; Max-Age=60

当我下载这两个IPA 并将它们重命名为ZIP 和Beyond Compare 时,它​​们是相同的。所以据我所知,他们没有对 IPA 或 headers 做任何特别的事情......

他们是怎么做到的? (PhoneGap 构建也做同样的事情)

您不必 link .ipa,您必须 link .plist

<a href="itms-services://?action=download-manifest&url=http://www.yourserver.com/yourApp/manifest.plist">Install the App</a>

manifest.plist 应该是这样的:

<!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>http://www.yourserver.com/yourApp/YourAppName.ipa</string>
                        </dict>
                    </array>
                    <key>metadata</key>
                    <dict>
                        <key>bundle-identifier</key>
                        <string>com.yourcompany.YourAppName</string>
                        <key>kind</key>
                        <string>software</string>
                        <key>title</key>
                        <string>iOS Test App</string>
                    </dict>
                </dict>
            </array>
        </dict>
    </plist>