10

Beta Adhoc ビルドを自分のサーバーに配布したいと考えています。Apple が無線でアプリをインストールするために使用するロジックには、2 つの重要な URL があるようです。

最初の URL は HTML にあります。

<p><a href="itms-services://?action=download-manifest&url=http://www.example.com.cn/path/to/plist/theplist.plist">Adhoc Build</a></p> 

2番目はそのplistファイル内にあります

<dict>
    <key>kind</key>
    <string>software-package</string>
    <key>url</key>
    <string>http://www.example.com.cn/path/to/binary/app.ipa</string>
</dict>

これらの URL は相対 URL にすることができますか? 同じ HTML ファイルと XML ファイルを両方の開発マシン (MAMP サーバー) で動作させ、最初にバイナリをダウンロードできることをテストしてから、アドホック ビルドを Web サーバー (NGINX) のテスターに​​公開したいと考えています。現在、絶対URLでのみ機能させることができます。

私の考えでは、これら 2 つの相対 URL が機能するはずです。

<p><a href="itms-services://?action=download-manifest&url=/path/to/plist/theplist.plist">Adhoc Build</a></p> 

<dict>
    <key>kind</key>
    <string>software-package</string>
    <key>url</key>
    <string>/path/to/binary/app.ipa</string>
</dict>

これらの相対 URL を使用すると、「(null) に接続できません」というメッセージをクリックすると、デバイスからポップアップが表示されます。

4

1 に答える 1

9

HTTP または HTTPS 要求を使用すると、相対 URL を Web ブラウザーで処理して、欠落している詳細を埋めることができます。.plist ファイルへのリンクはカスタム URL スキームです。Safari は URL の形式を認識しないため、不足している詳細は埋められません。したがって、そのリンクは絶対 URL でなければなりません。Safari は itms-services URL スキームを処理できるものを探すだけで、URL 全体をそのスキームに送信します。

itms-services URL スキームを処理するプログラムに十分な情報がないためではなく、そのプログラムが URL を処理するために組み込まれたロジックを実行しないため、.ipa ファイルへのリンクも絶対でなければなりません。おそらく Apple は、相対 URL 機能を追加するよりも、そのコードをシンプルで信頼性の高いものに保つことを望んでいると思います。

あなたが持っている1つの解決策は、HTMLおよびPLISTファイルのある種のサーバー側プロセッサを作成して、サーバーに基づく絶対URLで書き換えられたファイルを生成することです。これを行う方法は、サーバーの構成によって異なります。

もう 1 つの解決策は、.plist と .ipa をメイン Web サーバーに保持し、そのサーバーへの絶対 URL を使用して、両方のサーバーで HTML ファイルを操作することです。

于 2013-09-17T19:48:18.317 に答える