3

クライアントの1つとして、配布用のOTAアプリストアを開発しました。

アプリがインストールされているかどうかをテストできるようにするために、作成した各アプリに2つのカスタムURLスキームを追加しました。1つはアプリIDのみで、もう1つはアプリIDとバージョン(両方とも)に.置き換えられてい-ます。たとえばcom-mycompany-appcom-mycompany-app-1-2-0com.mycompany.appのバージョン1.2.0の場合。

次に、「アプリストア」で[[UIApplication sharedApplication] canOpenUrl:]、アプリがインストールされているか最新バージョンであるかを判断するために使用します。インストールされている場合は、[インストール]ボタンを[開く]ボタンに置​​き換えます。

XCodeを介してアプリをインストールすると、うまく機能します。ただし、同じアプリOTAを「アプリストア」からインストールすると、canOpenUrl:呼び出しは常にNOを返します。キャッシュの問題かどうかを確認するために、OTAのインストールが完了した後に「appstore」アプリを再起動しようとしましたが、同じ結果が得られました。

これは私のマニフェストplistファイルの問題ですか?ターゲットに属するInfo.plistには、カスタムURLスキームのものが明らかにありますが、マニフェストにはありません。ただし、マニフェストを使用して初期インストールを起動するだけだと思います...実際のインストール中にInfo.plistを使用して、これらの種類のものを登録するべきではありませんか?他に足りないものはありますか?

ありがとう!


編集:カスタムビルドスクリプトを使用して、OTA配布に使用されているファイル.ipaとファイルを実際に作成しています。.plistを使用してIPAを直接インストールしようとしiPhone Configuration Utilityましたが、アプリストアはそれらのURLを開くことができるものとして認識できました。私が考えることができる唯一の可能性は、ダウンロードとインストールに使用しているplistに、これらのカスタムURLスキームへの何らかの参照が必要であるか、実際にはAppleのOTAフレームワークの正当なバグであるということです。

4

1 に答える 1

3

誰かがこれを見ているか、同様の問題に遭遇した場合に備えて、私はこれを機能させました。

私が変更した唯一のこと-そして古い方法が機能しない、または機能しないはずだと言っているドキュメントはありません-私のURLスキームでハイフンの代わりにピリオドを使用することでした。そのため(バンドルIDと同じ)になり、バージョンが追加されたものも同様になりましたcom-company-app://com.company.app://

古いURLスキームが公式のURL仕様に違反していたのか、それとも逆引きDNSを使用することになっているのかはわかりませんが、現在はすべて機能しています。

于 2013-01-25T17:51:41.133 に答える