2012-06-28 2 views
5

私はデバイスのファイルシステム上のplistからiOSアプリケーションをインストールしようとしています。ローカルのplist(null)からiOSアプリケーションをインストールするには

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

「(null){myappname}をインストールしますか?」というメッセージが表示されます。通常、(null)はplistのドメイン名ですが、この場合はローカルファイルなのでヌルです。

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

おかげで、 ダン

答えて

3

あなたはHTTPローカルサーバーを作成するプロジェクトMongooseDaemonを使用することができます。

同様のドメイン:http://192.168.xxx.xxx/yourplist.plistをインストールしてください。

とにかく、私は大規模なIPAで使うことはできないと思います。 IPAを15MB以上で試したところ、インストールを開始するのが非常に遅いです。

+0

ファイルサイズは大きな問題ではありません。plongだけがMongooseDaemonによってホストされる必要があり、IPAはWeb上のどこかでまだ生きています。 – fischerdan

2

私も同様の状況にあり、もともとはモンゴースを使用していましたが、今日はCocoaHttpServerにつまずいています。

モンゴースでは、ローカルplist/IPAファイルに約20%の成功率しか得られませんでした。ときどきlocalhost would like to installダイアログが表示されないことがあります。インストールが途中で開始されたり失敗したりすることがあります。さらに悪いことに、一旦Appが失敗すると、私はそれを完全にアンインストールして再インストールしなければならなかったので、すべてのデータが失われました。私は、失敗したインストールを「修正」することができませんでした。

これまでのところ、わずか10-15分のテストで、CocoaHttpServerはまだ失敗していません。私はこれが非常に小さなサンプルサイズであることを知っていますが、私のマングース成功率は約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:plistのインサイド

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

、ローカルIPAファイルを指すURLを持って、私はfile://またはhttp://localhost/のいずれかを使用して成功を収めました。

関連する問題