Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/objective-c/22.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios 以编程方式从另一个应用程序下载内部应用程序_Ios_Objective C_In House Distribution - Fatal编程技术网

Ios 以编程方式从另一个应用程序下载内部应用程序

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

我们有很多内部应用程序,需要像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]]
}
我们为找到原因所做的事情:

  • 将粘贴plist url复制到Mac Safari,我检查plist,发现所有内容都正确(ipa链接和其他链接)。他们都在同一条路上
  • 复制粘贴仅ipa url。它开始在Mac上下载
  • 它说,使用itms服务复制粘贴ipa url://?操作=下载清单&url=
  • 没有打开URL的应用程序集……ipa 在应用商店中搜索可打开此文档的应用程序,或选择计算机上的现有应用程序

    我怎样才能解决它

    普利斯特先生:

    <?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