32

iOS アプリを作成し、Over-The-Air で配布したいと考えています。私はこのガイドに従いました:

http://help.apple.com/iosdeployment-apps/mac/1.1/?lang=en-us#app43ad77ea

アプリはエンタープライズ証明書で署名され、配布プロビジョニング プロファイルが含まれています。

アプリを ipad にダウンロードしようとすると (このガイドで説明されている手法を使用)、ダウンロード アイコンの付いた四角形のアイコンが「待機中...」という名前で画面に表示され、1 秒後に名前が私の名前に変わります。実際のアプリケーション名を入力してから、1 秒後にエラー メッセージが表示されます。

アプリケーションをダウンロードできません

現在、「あなたのアプリケーション」をダウンロードできませんでした。

このガイドには、トラブルシューティングのヒントが 3 つあります。

「ダウンロードできません」というメッセージが表示されてワイヤレス アプリの配布に失敗した場合は、次の点を確認してください。

アプリが正しく署名されていることを確認してください。iPhone 構成ユーティリティまたは Apple Configurator を使用してデバイスにインストールしてテストし、エラーが発生するかどうかを確認します。

マニフェスト ファイルへのリンクが正しく、Web ユーザーがマニフェスト ファイルにアクセスできることを確認してください。

(マニフェスト ファイル内の) .ipa ファイルへの URL が正しく、Web ユーザーが .ipa ファイルにアクセスできることを確認してください。

3点確認しましたが問題ありません。

ダウンロードの問題の原因は他に何が考えられますか?

4

12 に答える 12

33

アレクセイが述べたように、あまりにも多くの理由がそのメッセージを引き起こす可能性があります。Appleはこれを「すべてのエラーをキャッチ」として使用します。

Consoleから診断できます。デバイスをデスクトップに接続し、XCode のオーガナイザー(Mac のみ) またはiPhone 構成ユーティリティ(Mac および Windows) からアクセスします。しかし...

それはそれほど単純ではありません!:-(

コンソールは十分ではないかもしれません。関連するメッセージがない場合もあります。

そして、最後の手段はチェックリストに従うことです。ゼロからやり直す。そこにはたくさんあります ...しかし、以下に、現時点でのOver The Airディストリビューションの一般的で詳細ではないチェックリストがあります。



  1. 配布ビルドを作成する- これは最も複雑な部分であり、常に Web 上で行われ、Apple は常に手順を変更します。一般に、証明書識別子、およびプロビジョニング プロファイルが必要です。ほとんどの場合、デバイスのリストが必要です。私の現在の選択は「ディストリビューション -> インハウス」です。

    Apple Developer -> Member Center -> Certificates, Identifiers & Profiles -> Provisioning Profiles -> Add (+)

    PS: デバイスをリストしたい場合は、UDID が正しいことを確認してください。多くの問題がここで報告されました。

  2. [プロジェクト] -> [ビルド設定] でプロファイルを設定します- XCode 5 以降、状況が変わりました。IDでコード署名する代わりに、すべてをクリアして *Code Signing -> *Provisioning Profileで設定できます。ID は自動的に「Automatic」に変更されます。また、手順 1 から手動でファイルをダウンロードしてインストールする必要もありません。XCode はそれを管理します。

    XCode 5 -> プロジェクト ナビゲーター -> プロジェクト -> ビルド設定

  3. アーカイブ- Xcode 5 では、「アーカイブ用にビルド」する必要がなくなりました。アーカイブするだけです。次にOrganizerに表示されるはずですが、大きなプロジェクトの場合は時間がかかります。このステップで多くのエラーが発生する可能性がありますが、ほとんどの場合、OTA ではなくコードのコンパイルに関連しています。

  4. 展開-オーガナイザー -> アーカイブで、適切なアーカイブ (最新のものとして既に選択されている必要があります) を選択し、[配布] をクリックしてから、[エンタープライズまたはアドホック展開用に保存]をクリックします。今は大変かもしれません。ファイルを保存するとき、「エンタープライズ配布用に保存」オプションがあります。それは完全に誤解を招く名前です。実際に行うことは、plistファイルを作成することです。すでに持っている場合は問題ありません。手動で編集することもできますが、これは一般的に優れています。ステップ(5)には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://example.com/app.ipa</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>full-size-image</string>
                        <key>needs-shine</key>
                        <false/>
                        <key>url</key>
                        <string>http://example.com/FullSizeImage.png</string>
                    </dict>
                    <dict>
                        <key>kind</key>
                        <string>display-image</string>
                        <key>needs-shine</key>
                        <false/>
                        <key>url</key>
                        <string>http://example.com/Icon.png</string>
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>com.example.app</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>subtitle</key>
                    <string>for iOS</string>
                    <key>title</key>
                    <string>My App</string>
                </dict>
            </dict>
        </array>
    </dict>
    </plist>
    
  5. 配布- XCode または iPhone 構成ユーティリティを使用してインストールする場合は、この手順をスキップしてください。あなたは終わった。これは、ファイルを Web サイトに置くことです。「単に」次のようなhrefリンクを含む HTML ページを追加します。

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

    残念ながら、Web サーバーの扱いは決して簡単ではありません。したがって、サーバーの mime-type も確認してください。サーバーがphpをサポートしている場合、それらを処理するためにいくつかのPHPファイルを作成しました。ファイルをそのままにして ( plisthtml、およびipa )、代わりに次のリンクにリンクします。app.plist.php

    app.plist.php

    $file = fopen("app.plist", "r");
    while(!feof($file)){
        $line = fgets($file);
        print str_replace(".ipa", ".ipa.php", $line);
    }
    fclose($file);
    ?>
    

    app.ipa.php

    <?php
    header('Content-type: application/octet-stream');
    
    $file = fopen("app.ipa", "r");
    while(!feof($file)){
        $line = fgets($file);
        print $line;
    }
    fclose($file);
    ?>
    
  6. 検証- アセット配列にリストされているすべてのファイルがダウンロード可能であることを確認します。これらのファイルのいずれかが 404 など (アイコンを含む) を返すと、インストール全体が失敗します。(A) これらのファイルを使用可能にするか、(B) 不足しているエントリを plist から削除する必要があります。ダウンロードが機能するために、アイコンのエントリは必要ありません。

    アイコンのない 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://example.com/app.ipa</string>
                    </dict>
                </array>
                <key>metadata</key>
                <dict>
                    <key>bundle-identifier</key>
                    <string>com.example.app</string>
                    <key>kind</key>
                    <string>software</string>
                    <key>subtitle</key>
                    <string>for iOS</string>
                    <key>title</key>
                    <string>My App</string>
                </dict>
            </dict>
        </array>
    </dict>
    </plist>
    

ファイルの例は、チェックリストの非常に重要な部分です。それらは 100% 正しくなければなりません。

plist と html ファイルを再確認してください。

PS: この回答を書いているのは、私の場合、.plistファイルの間違ったリンクという「単純な」問題だったからです。そのため、診断するのは非常に困難です。さて、このチェックリストを実行するだけで、エラーを見つけることができました! 「app.ipa」ではなく「another-app.ipa」を指していました!

于 2013-10-29T14:39:37.050 に答える
7

私自身の質問に答える:

問題は、サムネイルの 1 つに manifest.plist で正しいパスが設定されていないことでした。そのため、ipa に正しいパスが必要なだけでなく、一時的なダウンロード アイコンも必要です。そうしないと、前述のエラー メッセージが表示されてインストールが失敗します。

于 2012-11-01T18:17:14.610 に答える
3

iOS 5以降のアプリをiOS4.3.5電話にインストールしようとしたときに、まったく同じエラーメッセージが表示されました。また、その問題を示しているデバイスと一致するように、展開/ビルドターゲットとターゲットアーキテクチャを確認しましたか?

于 2012-11-01T09:53:33.553 に答える
1

大文字と小文字がすべてのファイルで一致していることを確認してください。大文字と小文字を区別しない傾向があります。

于 2013-12-19T02:21:45.137 に答える
0

andファイルをチェックbundle identifierインしてみてくださいXCode.plist

于 2016-09-27T12:01:53.207 に答える