iOS OTA安装不能与Firebase存储一起使用,我的猜测是因为存储URL附带了查询字符串,如下所示:
https://firebasestorage.googleapis.com/v0/b/some_project%2Fmanifest.plist?alt=media&token=some_token
当我使用以.plist
结尾的Amazon S3 URL时,它工作正常,当我擦除查询部分时,以下代码至少会响应 - 尽管它说它无法连接:< / p>
let url = URL(string: "itms-services://?action=download-manifest&url=\(str)")!
UIApplication.shared.openURL(url)
使用查询字符串后,它甚至无法响应。
我做了一些搜索,但这不是因为网址没有被转义百分比。 S3 URL也没有百分比转义,但它工作正常。
简而言之,我的问题是
谢谢。
答案 0 :(得分:0)
问题在于使用itms-services
方案,无法解析查询字符串。转义网址的百分比也不起作用,因为Firebase无法识别该网址并返回404.
但是可以使用Google URL shortener来规避这一点。缩短的网址会被解析而不会出错。
值得一提的是,manifest.plist
文件中的网址不必缩短 - 尽管可以。但是,如果您决定按原样使用这些网址,请确保网址中的&
使用XML中的&
进行转义。
我之所以提到这一点,是因为当Xcode为您转义&
时,.ipa
文件的网址只有在上传到Firebase存储后才能知道,并且很容易忘记逃脱手动修改plist
文件以更新安装文件URL时的&符号。
plist
文件无效。