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

时间:2016-05-11 08:09:03

标签: ios objective-c in-house-distribution

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

我们这样做:

protected override void OnModelCreating(DbModelBuilder modelBuilder)
{
        //one-to-many 
        modelBuilder.Entity<Entry>()
                    .HasRequired<EventbookEntry>(ev=> ev.EntryId ) 
                    .WithMany(ent => ent.EventbookEntries);     
}

我们要做的事情是找到原因:

  1. 将plist url复制粘贴到Mac Safari,我检查plist,它是正确的一切(ipa链接和其他)。他们都走在同一条路上。
  2. 复制粘贴只是ipa url。它开始在Mac上下载。
  3. 使用if([UIApplication sharedApplication] canOpenURL:..] == false){ NSString *schemelink = [NSString stringWithFormat:@"itms-services://?action=download-manifest&url=%@",**plist_url**]; [[UIApplication sharedApplication] openURL:[NSURL URLWithString:schemelink]] } 复制粘贴ipa网址,它说
  4.   

    没有应用程序设置来打开URL ...... ipa   在App Store中搜索可以打开此文档的应用程序,或在计算机上选择现有应用程序。

    我该如何解决?

    的.plist:

    itms-services://?action=download-manifest&url=

1 个答案:

答案 0 :(得分:1)

您的plist文件应该托管在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>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>

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

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

您的下载网址应如下所示。

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

Example Click here to download App.

  

另外,请确保您的服务器支持ipa的application/octet-stream MIME类型和plist的text/xml