如何在应用程序内更新/下载应用程序

时间:2015-11-10 09:53:19

标签: ios iphone swift ipad ios9

我在Swift中开发了应用程序。应用程序是企业应用程序,因此它永远不会在App Store上发布。

如果应用程序有更新,我需要在应用程序内更新应用程序。

现在我已经完成了后端和iOS端代码。我创建了.plist文件,其中包含我上传的.ipa文件网址和其他内容。 ref

我已成功实现了如何在应用内自行下载和更新应用的代码。

但问题是当应用程序开始下载时停止为60%,当我尝试重试下载时,显示错误Unable to Downlaod App

有什么办法可以实现同样的想法吗?

Swift代码

    func getTheData() {
    let appversion = NSBundle.mainBundle().infoDictionary!["CFBundleShortVersionString"] as! String
    var query = PFQuery(className:"AppVersion")
    query.getObjectInBackgroundWithId("Parse unique key") {
        (version: PFObject?, error: NSError?) -> Void in
        if error == nil && version != nil {

            let oldVersion = version?.valueForKey("version") as! String
            println(version?.valueForKey("version"))

            if appversion == oldVersion {
                println("Same Version")
            }
            else {
                println(version)
                println("Different version")
                let url = version?.valueForKey("ipaURL") as! String
                UIApplication.sharedApplication().openURL(NSURL(string:url)!)

            }
        } else {
            println(error)
        }
    }
}

解答:

我发现了这个问题。问题仅在 iOS 9.0 以上。从XCode 7及更高版本开始,您必须仅使用管理器生成(非手动)manifest.plist文件。当您使用导出选项在管理器中创建ipa文件时,您将获得两个选项 1)Bitcode 2)为OTA更新生成清单。你必须使用XCode的组织者来创建Manifest.plist文件。

2 个答案:

答案 0 :(得分:0)

看到应用程序已打开,我建议向用户显示要更新的消息。 AlertView按钮操作应该让用户访问网页以下载新版本。

这与你想要达到的目标并不理想,但这是我过去做过的一种方式并且工作正常。

答案 1 :(得分:0)

问题是当您创建Archive时需要更正设置配置文件中列出的设备时的配置文件。

在几天之前,我面对并连接了同一设备以及配置文件UDID容器。

所以我创建了R& D并solve the same problem.