web-dev-qa-db-ja.com

iOSのセルフホストURLからIPAをダウンロードしてインストールする

ipaをURLから直接ダウンロードしてインストールする必要があります。

私はこれを試しました:

NSURL *url = [NSURL URLWithString:@"https://myWeb.com/test.ipa"];
[[UIApplication sharedApplication] openURL:url];

アプリはSafariを起動しますが、次のメッセージが表示されます。

Error Message "Download Failed, Safari cannot download this file."

出来ますか?

42
Andoxko

無線でアプリを配信するには(OTA、これはTestFlightまたは公式App Storeを使用せずになしでを意味します)、次の3つの異なるファイルを作成する必要があります。

  • .ipaファイル(アドホックプロビジョニングプロファイルを使用)
  • index.html
  • manifest.plist

Beta Builderを使用して、これらのファイルを生成できます。

  1. ビルドをアーカイブします。
  2. .ipaをデスクトップに保存します。
  3. 小さなユーティリティをダウンロード ベータビルダー から ここ 。これにより、必要なタスクのほとんどが実行されます。
  4. ツールを開き、.ipaファイルを選択して、ベータビルダーでhttps://myWeb.com/MY_TEST_APPにビルドを配置するパスを指定します。
  5. すべてのファイルを生成します。
  6. index.htmlyour_App.ipa、&manifest.plistをサーバーパスhttps://myWeb.com/MY_TEST_APPにアップロードします
  7. index.htmlのリンクを共有します。このファイルを開くと、インストールをタップするように求められます。
  8. デバイスにyour_App.ipaがインストールされます。

これをもっと手動で行うこともできます。

index.html

<a href="itms-services://?action=download-manifest&url=https://myWeb.com/MY_TEST_APP/manifest.plist">Install App</a>

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>http://YOUR_SERVER_URL/YOUR-IPA-FILE.ipa</string>
                </dict>
            </array>
            <key>metadata</key>
            <dict>
                <key>bundle-identifier</key>
                <string>com.yourCompany.productName</string>
                <key>bundle-version</key>
                <string>1.0.0</string>
                <key>kind</key>
                <string>software</string>
                <key>title</key>
                <string>YOUR APP NAME</string>
            </dict>
        </dict>
    </array>
</dict>
</plist>

アプリのインストールまたは実行が拒否された場合、次の項目を確認する必要があります。

  • アプリのコンパイル/アーカイブ時に使用したプロビジョニングプロファイル
  • index.htmlmanifest.plistの両方のURL
  • plistファイルは、おそらくHTTPSサーバーでホストする必要があります。必要に応じて、これにDropboxを使用できます。
  • エンタープライズライセンスをお持ちでない場合、デバイスのUUIDをApple Developer Center内に登録する必要がある場合があります
  • [設定]> [プロファイル]でアプリへのアクセスを手動で有効にする必要がある場合があります
116
Balram Tiwari

より簡単には、このためにDropBoxを利用できます。手順は基本的に同じままです。次のことができます。

1).ipaをdropBoxにアップロードし、この.ipaのリンクを共有します

2).ipaの共有リンクをmanifest.plistファイルに貼り付け、マニフェストファイルをDropBoxにアップロードして、この.plistファイルのリンクを再度共有します

3)適切なタグを使用して、このPlistのリンクをindex.htmlファイルに貼り付けます。

URLをタップしてダウンロードできる人とこのindex.htmlファイルを共有します。または、代わりにURLを直接ヒットすることもできます。

12
Vkharb

はい、safariは* .ipaを検出し、インストールを試みますが、ipaは正しく署名される必要があり、許可されたデバイスのみがインストールできます。

http://www.diawi.com は、このプロセスを支援するサービスです。

これはすべて、アドホック配布用であり、本番アプリ用ではありません。

以下のリンクの詳細: ブラウザ経由でiPhoneアプリをインストールする方法はありますか?

5
IamAnil

この共有プロセスを簡素化するオンラインツールがあります。たとえば、 https://abbashare.com または https://diawi.com アドホックでxcodeからipaファイルを作成します。または社内プロファイル、およびこれらのサイトにこのファイルをアップロードします。 Dropboxにファイルを保存し、いつでも好きなときに削除できるので、abbashareが好きです

3
Mario Buonomo

Xcode8を使用したエンタープライズアカウントの回答

  1. 「manifest plist」チェックボックスをオンにして.ipaをエクスポートし、要求されたリンクを提供します。

  2. .ipaファイルと.plistファイルをサーバーの同じ場所にアップロードします(.iplistファイルに記述されている.ipa /をエクスポートするときに指定します)。

  3. 以下のようにダウンロードリンクを作成します。 urlは、.plistファイルの場所にリンクする必要があります。

    itms-services://?action = download-manifest&url = https://yourdomainname.com/app.plist

  4. このリンクをコピーして、iPhoneのsafariブラウザーに貼り付けます。インストールするように求められます:D

この完全なURLを使用してhtmlボタンを作成します

2
Lahiru Pinto

ウェブサイトからアプリを直接ダウンロードしてインストールしたい場合は不可能です。企業が無線でアプリを展開およびインストールする別の方法があります。 URLは、Appleが必要とする事前定義された形式のマニフェストplistファイルをホストするWebサービスを指している必要があります。このサービスは、マニフェストファイルのURLを返す必要があります。これは、次のように使用できます。

NSString *urlString = // url string where your manifest.plist is deployed on your server.
NSURL *installationURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",[urlString stringByAddingPercentEscapesUsingEncoding:NSUTF8StringEncoding]]];
[[UIApplication sharedApplication] openURL];

これがあなたの質問に答えることを願っています。

1
mithlesh jha