10

ビジネス クライアントがワイヤレスでインストールできる最新のアプリを提供する社内アプリを作成しています。

最終的に、インストールを開始する方法は次のとおりです。

NSURL *otaURL = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=<<my-url.plist>>"]; 
[[UIApplication sharedApplication] openURL:otaURL];

これは問題なく動作しますが、plist または ipa ファイルのキャッシュが保持され、古いバージョンがインストールされる場合があることに気付きました。サーバーからipaファイルを削除しても古いバージョンがインストールされるため、サーバー上で更新されていないことを除外しました.

.plist および .ipa ファイル名の変更は機能しますが、実際には望ましい最終状態ではないため、私の質問は次のとおりです。キャッシュに依存する代わりに、デバイスを強制的に外に出してサーバーからファイルを取得する方法はありますか?

4

2 に答える 2

3

非常によく似た問題があり、(汚い)回避策で解決しました。新しいバージョンごとに異なる .plist ファイルを作成するよりはまだましです。

次のような乱数を URL に挿入します。

 NSURL *otaURL = [NSURL URLWithString:[NSString stringWithFormat:@"itms-services://?action=download-manifest&url=myapp.%d.plist", arc4random() % 10000]; 
 [[UIApplication sharedApplication] openURL:otaURL];

反対側では、.htaccess にルールを追加します (mod_rewrite で構成された Apache を想定):

AddType application/octet-stream ipa
AddType text/xml plist

RewriteEngine on
RewriteRule (.*)\.\d+\.plist $1.plist
于 2013-06-19T17:28:16.680 に答える
0

TestFlightの人々も同じ問題に遭遇したと思います。彼らのサービスを使用しているときに、既存の古いバージョンを最初に削除せずにアプリを更新すると、古いバージョンの半分(たとえばアイコン)が実行され、新しい動作の半分も実行されるという非常にバグのある動作につながる可能性があることがわかりました。

それは本当に奇妙でした。Cf. この他の質問:TestFlightを介してインストールするときに、一部のファイルが正しくインストールされないのはなぜですか?

AppleのサポートまたはTestFlightの担当者に連絡して、この問題が修正されたかどうかを確認する必要があります。これで頑張ってください!

于 2012-09-06T16:57:46.447 に答える