如何解决无法验证的问题?
1. 背景
背景:苹果开发者测试证书,对于APP的测试签名安装是有限度的,如果你进行大量的测试安装,就会出现以前企业证书遇到的同样问题,也就是“无法验证:Iphone/Apple Distribution:xxxxxx” (注:“无法验证完整性”为udid与手机不匹配/安装地址错误/签名算法错误等,不属于此列)
2. 声明
对于每个证书,我们将提供两个额外的标识符进行实时更换,如果你将额度使用完毕,我们将不再提供。
不建议一次把所有备用bundle描述生成出来同时进行使用,如果你这么做了,全出无法验证的概率会大大增加。
3.适用范围
目前仅支持9.24(含)之后新出的秒出系列版本更换
4.更换方式
通过页面更换
1). 进入2.0设备管理页面

2). 选择一个可用的标识符

3). 按钮说明:
“下载”:直接下载描述文件更换文件即可
“切换”:在站点数据库中替换为新的描述文件,用户再从站点下载证书/简易签名/接口获取证书等均会使用切换后的证书
通过接口更换
注:
1). 1.0接口的code返回值成功为1,2.0接口的code返回值成功为0,建议0,1都认为成功
2). 1.0接口返回msg, 2.0接口返回message, 获取错误信息的时候请注意
3). status枚举值为available/current/used,available代表从未生成过, current代表当前数据库存储的, used为曾经为current,被切换过的(理解为使用过). 调用change bundle(切换bundle描述)会更新status的枚举值,全量获取get bundle不会更新status枚举值
4). 当前1.0系统80%的接口都是直接透传给2.0(包括以下接口),当完成度为100%时,1.0将被废弃,建议优先选择2.0接口
1). 1.0接口
/api/bundle/getBackupBundle
POST
{
"kid": "xxxx", // 必填
"token": "xxxx", // 必填
"only_bid": 1/0, // 0会生成描述文件一起返回,1不返回描述文件
"bundle_id": "xxx", // 可选,指定标识符(通过指定only_bid为1,可以拿到可备份的所有标识符ID, 而不返回描述文件)会只返回特定标识符+描述文件
}
返回值:
{
"code": 1,
"msg": "",
"data": [
{
"bundleid": "V2PLP3753L",
"status": "available",
"mobileprovision": "如果指定only_bid为1该项不会返回"
},
{
"bundleid": "9T7U57986T",
"status": "current",
"mobileprovision": "如果指定only_bid为1该项不会返回"
},
{
"bundleid": "FWQ7SMVDFA",
"status": "available",
"mobileprovision": "如果指定only_bid为1该项不会返回"
}
]
}
/api/bundle/changeBackupBundle
POST
{
"kid": "xxxx", // 必填
"token": "xxxx", // 必填
"bundle_id": "xxx", // 必填
}
返回值:
{"code":1,"msg":"","data":{"success":true,"message":"描述文件切换成功"}}
本接口会替换站点数据库中的描述文件,切换后可指定bundle_id调用getBackupBundle,或直接调用getcertificate接口
2). 2.0接口
注:2.0的验参为header头中添加Authorization: "Bearer 你的token", 或直接在参数中增加token参数("token": "xxxx", // 必填), 推荐使用前者, 我不懂后者是什么规范,仅仅是为了兼容1.0/2.0系统的快速切换
/api/v1/public/device/backup-mp
POST
{
"udid": "xxxx", // udid要和kid匹配,2.0校验比较严格
"device_id": "xxxx", // 就是kid
"only_bid": 1/0, //同1.0
"bundle_id": "" //同1.0
}
返回值:
{
"code": 0,
"message": "",
"data": [
{
"bundleid": "V2PLP3753L",
"status": "available"
},
{
"bundleid": "9T7U57986T",
"status": "current"
},
{
"bundleid": "FWQ7SMVDFA",
"status": "available"
}
]
}
/api/v1/public/device/change-mp
POST
{
"udid": "",
"device_id": "", //kid
"bundle_id": "", // 所有参数必填
}
返回值:
{"code":0,"message":"","data":{"success":true,"message":"描述文件切换成功"}}