5

デバイスのファイル システムの plist から iOS アプリをインストールしようとしています。

NSString *launchNewPlistURL = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=file://%@",[self saveFilePath]];
[[UIApplication sharedApplication]openURL:[NSURL URLWithString:launchNewPlistURL]];

そして、「(null) {myappname} のインストールを希望しています」というメッセージが表示されます。通常、(null) は plist の送信元のドメイン名ですが、この場合はローカル ファイルであるため null です。

plistでタイトルを指定するか、URLに偽のドメイン名を渡す方法はありますか?

ありがとう、ダン

4

2 に答える 2

3

プロジェクトMongooseDaemonを使用して、HTTP ローカル サーバーを作成できます。

http://192.168.xxx.xxx/yourplist.plistのようなドメインでインストールします。

とにかく大きいIPAでは使えないと思います。15MB を超える IPA で試してみましたが、インストールの開始が非常に遅くなりました。

于 2012-11-16T07:01:16.277 に答える
2

私も似たような状況で、もともとMongooseを使うルートをたどっていたのですが、ちょうど今日CocoaHttpServerに出くわしました。

Mongoose では、ローカルの plist/IPA ファイルを提供する成功率は 20% 程度しか得られませんでした。ダイアログが表示されないことlocalhost would like to installもあれば、インストールが開始されて途中で失敗することもあり、実際に機能することもありました。さらに悪いことに、アプリが失敗すると、完全にアンインストールしてから再インストールする必要があったため、すべてのデータが失われました。失敗したインストールを正常に「修正」することはできませんでした。

これまでのところ、約 10 ~ 15 分のテストで、CocoaHttpServer はまだ失敗していません。これは非常に小さなサンプル サイズですが、私の Mongoose の成功率は約 10% でした。

self.httpServer = [[HTTPServer alloc] init];
[self.httpServer setType:@"_http._tcp."];
[self.httpServer setPort:8080];
//This is just a path where I save my IPA and Plist file locally.  
//In my case it's /{NSDocumentDirectory}/install/
[self.httpServer setDocumentRoot:[self pathForLocalInstallFiles]];

次に、ディスク上の plist への URL:

NSURL *plistUrl = [NSURL URLWithString:@"itms-services://?action=download-manifest&url=http://localhost:8080/appname.plist"];
[[UIApplication sharedApplication] openURL:plistUrl];

ローカルIPAファイルを指すURLがあるplist内で、またはのいずれfile://かを使用して成功しましhttp://localhost/た。

于 2013-01-23T16:07:16.913 に答える