Ios 以编程方式从另一个应用程序下载内部应用程序
我们有很多内部应用程序,需要像AppStore这样的应用程序。我们做了一个演示。我们可以打开已安装的应用程序,但不能将未安装在iPhone上的应用程序从我们的服务器下载到iPhone上 我们:Ios 以编程方式从另一个应用程序下载内部应用程序,ios,objective-c,in-house-distribution,Ios,Objective C,In House Distribution,我们有很多内部应用程序,需要像AppStore这样的应用程序。我们做了一个演示。我们可以打开已安装的应用程序,但不能将未安装在iPhone上的应用程序从我们的服务器下载到iPhone上 我们: if([UIApplication sharedApplication] canOpenURL:..] == false){ NSString *schemelink = [NSString stringWithFormat:@"itms-services://?action=download-m
if([UIApplication sharedApplication] canOpenURL:..] == false){
NSString *schemelink = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",**plist_url**];
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemelink]]
}
我们为找到原因所做的事情:
<?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>
项目
资产
友善的
软件包
网址
https://....../AppName.ipa
元数据
包标识符
com.company.AppName
捆绑版本
1.3
友善的
软件
标题
AppName
您的plist
文件应托管在HTTPS
SSL-enabled-service上,否则无法安装
我附加了一个示例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>https://127.0.0.0/app/icon57.png</string>
</dict>
<dict>
<key>kind</key>
<string>full-size-image</string>
<key>url</key>
<string>https://127.0.0.0/app/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>
还要确保您的服务器对ipa支持MIME类型的application/octet-stream
,对plist支持text/xml
它们都是正确的,但结果相同;无:/I我将我的plist内容添加到问题中。应用程序上现在没有图标。是的,它是启用SSL的服务器,MIME类型相同。它始终尝试使用AppStore下载内部应用程序。它不应进入AppStore,您的下载URL是否与指向.plist文件的示例中所示的相同?你有什么错误吗?你可以做一件事,上传你的应用包,plist和dropbox上的所有东西。把你的下载链接指向那里。如果它正常工作,那么您的服务器有问题。您的
manifest.plist
文件是否托管在启用SSL的服务器上?如果不这样做,它将不起作用。
itms-services://?action=download-manifest&url=https://127.0.0.0/app/manifest.plist