关于对接域名和打包平台的“软件更新地址”
最后更新于:2023-11-28 02:47:05
以下内容看起来可能比较绕,如果理解上有难度,只需在对接域名下正常搭建后端服务即可!!
打包平台软件更新地址:

版本更新链接返回数据格式,为xml文件:

<rss xmlns:sparkle="http://www.andymatuschak.org/xml-namespaces/sparkle" version="2.0">
<channel>
<title>APP RELEASE</title>
<item>
<title>Version 2.8.5</title>
<enclosure url="http://aaa.com/assets/app/app-release.apk" sparkle:version="2.8.5" sparkle:os="android"/>
</item>
<item>
<title>Version 2.8.5</title>
<enclosure url="http://aaa.com/assets/app/Payload.ipa" sparkle:version="2.8.5" sparkle:os="ios"/>
</item>
</channel>
</rss>
什么是对接域名?

对于SK,本质上讲,一款APP只能对接一个域名,这个域名负责提供数据。针对这个域名,我们进行了以下个性化操作。
第一种情况:使用对接域名正常搭建服务,比如http://a.com。那么软件会进行以下几步操作。
检测软件更新地址是否需要提示软件更新,地址为 你在打包平台填写的"软件更新地址"(优先级高)或http://a.com/assets/app/appcast.xml,只会找其中一个地址。
如果此地址没有返回信息,则不提示升级。
如果此地址返回的信息版本号与当前软件的版本号不一致,则提示升级。
如果此地址返回的信息版本号与当前软件的版本号一致,软件访问对接域名中的“域名管理”内容,
如果域名管理此时是关闭状态,那么软件将会在当前的对接域名下取数据。
如果域名管理此时是开启状态,那么软件会从域名管理中的域名中找到最快的域名取数据。

第二种情况:使用对接域名返回真实的对接域名,比如http://b.com/api.txt。此地址只返回真实域名即可,比如http://a.com,注意后面不要有/

接下来软件会进行以下操作:
检测软件更新地址是否需要提示软件更新,地址为你在打包平台填写的"软件更新地址"(优先级高)或http://b.com/api.txt/assets/app/appcast.xml,只会找其中一个地址。如果是这种情况,建议手动在打包平台填写“软件更新地址”
如果此地址没有返回信息,则不提示升级。
如果此地址返回的信息版本号与当前软件的版本号不一致,则提示升级。
如果此地址返回的信息版本号与当前软件的版本号一致,软件会从对接域名返回的真实对接域名(http://a.com)中访问“域名管理”内容
如果域名管理此时是关闭状态,那么软件将会在当前的对接域名下取数据。
如果域名管理此时是开启状态,那么软件会从域名管理中的域名中找到最快的域名取数据。
这样做的好处是,你可以将对接域名放在一个稳定的地址中,比如一个托管网站或对象存储里,如果你真实的对接域名挂掉,可以直接替换掉。不建议直接放在github或gitee等代码托管平台,测试发现gitee会有权限验证,直接在浏览器打开没有问题,但是通过postman等接口测试工具出现403错误!!
简单总结,便于理解
对接域名(搭建或返回SK服务的地址,需要加http(s)://)
https://sk.aaa.com(直接搭建,可以加端口)
或者
https://oss.yunpan.com/app.txt (这种方式需要txt里返回真实的搭建地址,并且需要在打包平台软件更新地址那写一个xml地址用于软件更新)
https://oss.yunpan.com/app.txt内容只能返回一个搭建sk服务的地址,注意是一个!
比如:https://sk.aaa.com
授权域名(写两个的主要目的是后期好迁移,可以写aaa.com|bbb.com这种形式),比如aaa.com域名挂了,txt里写https://sk.bbb.com就可以。
提示:如果你想用对接域名直接对接到别人的软件,使用他人软件的数据,APP是不支持也不允许的,因为你在打包的时候都会生成一个专属于你软件的密钥,用于加密传输数据。其他软件解密会出现不可预知的错误!!