<?xml version="1.0" encoding="utf-8"?>
<rss version="2.0"
xmlns:dc="http://purl.org/dc/elements/1.1/"
xmlns:atom="http://www.w3.org/2005/Atom"
>
<channel>
<title><![CDATA[Mango]]></title> 
<atom:link href="https://az.52ios.xyz/rss.php" rel="self" type="application/rss+xml" />
<description><![CDATA[Mango文档管理]]></description>
<link>https://az.52ios.xyz/</link>
<language>zh-cn</language>
<generator>www.emlog.net</generator>
<item>
    <title>如何解决无法验证的问题？</title>
    <link>https://az.52ios.xyz/?post=3</link>
    <description><![CDATA[<h2>1. 背景</h2>
<p>背景：苹果开发者测试证书，对于APP的测试签名安装是有限度的，如果你进行大量的测试安装，就会出现以前企业证书遇到的同样问题，也就是“无法验证：Iphone/Apple Distribution：xxxxxx” (注：“无法验证完整性”为udid与手机不匹配/安装地址错误/签名算法错误等，不属于此列)</p>
<h2>2. 声明</h2>
<p>对于每个证书，我们将提供两个额外的标识符进行实时更换，如果你将额度使用完毕，我们将不再提供。<br />
<strong>不建议一次把所有备用bundle描述生成出来同时进行使用，如果你这么做了，全出无法验证的概率会大大增加。</strong></p>
<h2>3.适用范围</h2>
<p>目前仅支持9.24（含）之后新出的秒出系列版本更换</p>
<h2>4.更换方式</h2>
<h3>通过页面更换</h3>
<p>1). 进入2.0设备管理页面<br />
<img src="https://az.52ios.xyz/content/uploadfile/202509/936e1759147344.png" alt="" /><br />
2). 选择一个可用的标识符<br />
<img src="https://az.52ios.xyz/content/uploadfile/202509/3d241759147460.png" alt="" /><br />
3). 按钮说明：<br />
<strong>“下载”</strong>：直接下载描述文件更换文件即可<br />
<strong>“切换”</strong>：在站点数据库中替换为新的描述文件，用户再从站点下载证书/简易签名/接口获取证书等均会使用切换后的证书</p>
<h3>通过接口更换</h3>
<p><strong>注：<br />
1). 1.0接口的code返回值成功为1，2.0接口的code返回值成功为0，建议0，1都认为成功<br />
2). 1.0接口返回msg, 2.0接口返回message, 获取错误信息的时候请注意<br />
3). status枚举值为available/current/used，available代表从未生成过, current代表当前数据库存储的, used为曾经为current，被切换过的(理解为使用过). 调用change bundle(切换bundle描述)会更新status的枚举值，全量获取get bundle不会更新status枚举值<br />
4). 当前1.0系统80%的接口都是直接透传给2.0（包括以下接口），当完成度为100%时，1.0将被废弃，建议优先选择2.0接口<br />
</strong><br />
<em>1). 1.0接口</em></p>
<pre><code class="language-json">/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该项不会返回"
        }
    ]
}
</code></pre>
<pre><code class="language-json">/api/bundle/changeBackupBundle
POST
{
    "kid": "xxxx", // 必填
    "token": "xxxx", // 必填
    "bundle_id": "xxx", // 必填
}

返回值：
{"code":1,"msg":"","data":{"success":true,"message":"描述文件切换成功"}}

本接口会替换站点数据库中的描述文件，切换后可指定bundle_id调用getBackupBundle，或直接调用getcertificate接口</code></pre>
<p><em>2). 2.0接口</em></p>
<p><strong>注：2.0的验参为header头中添加Authorization: &quot;Bearer 你的token&quot;, 或直接在参数中增加token参数(&quot;token&quot;: &quot;xxxx&quot;, // 必填), 推荐使用前者, 我不懂后者是什么规范，仅仅是为了兼容1.0/2.0系统的快速切换<br />
</strong></p>
<pre><code class="language-json">/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"
        }
    ]
}
</code></pre>
<pre><code class="language-json">/api/v1/public/device/change-mp
POST
{
    "udid": "",
    "device_id": "", //kid
    "bundle_id": "",  // 所有参数必填
}

返回值：
{"code":0,"message":"","data":{"success":true,"message":"描述文件切换成功"}}</code></pre>]]></description>
    <pubDate>Mon, 29 Sep 2025 19:52:00 +0800</pubDate>
    <dc:creator>芒果</dc:creator>
    <guid>https://az.52ios.xyz/?post=3</guid>
</item>
<item>
    <title>自部署贴牌安装域名</title>
    <link>https://az.52ios.xyz/?post=2</link>
    <description><![CDATA[<h2>1.  添加站点</h2>
<p><img src="https://az.52ios.xyz/content/uploadfile/202509/ce3b1758541537.png" alt="" /></p>
<h2>2. 打开ssl</h2>
<p><img src="https://az.52ios.xyz/content/uploadfile/202509/2f951758541583.png" alt="" /></p>
<h2>3. 修改伪静态</h2>
<p><img src="https://az.52ios.xyz/content/uploadfile/202509/047b1758541625.png" alt="" /></p>
<pre><code class="language-ruby">location /plist.php {
    if (!-e $request_filename){
        rewrite  ^(.*)$  /plist.php?s=$1  last;   break;
    }
}</code></pre>
<h2>4. 把plist文件放到网站根目录（<a href="http://az.52ios.xyz/plist.php.zip" title="点击下载">点击下载</a>）</h2>
<p><img src="https://az.52ios.xyz/content/uploadfile/202509/e7af1758541707.png" alt="" /></p>
<h2>5. 测试访问</h2>
<p><img src="https://az.52ios.xyz/content/uploadfile/202509/f8491758542819.png" alt="" /></p>]]></description>
    <pubDate>Sun, 21 Sep 2025 20:57:19 +0800</pubDate>
    <dc:creator>芒果</dc:creator>
    <guid>https://az.52ios.xyz/?post=2</guid>
</item>
<item>
    <title>🚀 欢迎使用芒果</title>
    <link>https://az.52ios.xyz/?post=1</link>
    <description><![CDATA[<h2><a href="/?post=2" title="1. 自部署plist实现安装域名">1. 自部署plist实现安装域名</a></h2>]]></description>
    <pubDate>Sun, 21 Sep 2025 11:10:37 +0800</pubDate>
    <dc:creator>芒果</dc:creator>
    <guid>https://az.52ios.xyz/?post=1</guid>
</item></channel>
</rss>