解决方法:
必须先完成前置准备 ------ 在主程序中已完成 高级功能 ➡️ "自激活配置",这是实现下文操作的基础前提。
通用的重启流程可通过以下三步完成 (适用于日常异常重启或永生循环)
✔ 自激活 ✅ → ✔ 杀掉代理 ✅ → ✔ 重启代理 ✅
【详见高级功能介绍-自激活配置一章】
地址是:https://ieasyclick.com/iostjdocs/zh-cn/advance/activemyself
代码中如何使用呢?
javascript
function testactive1_ext_vpn() {
logd("testactive1_self_vpn");
// 1. 首先开启内置 VPN(如果使用外部 VPN,则按实际情况配置)
activeSelf.openSelfVpn();
sleep(3000);
let ar = activeSelf.getOpenSelfVpnError();
if (ar != "") {
loge("打开自带VPN失败,错误消息:" + ar);
return false;
}
sleep(2000);
// 2. 启动自激活模块,超时设为 30000 ms
let acData = activeSelf.startActiveMySelf(30000);
if (!acData || acData["code"] != 0) {
loge("自激活失败:" + (acData ? acData["msg"] : "无返回"));
return false;
}
logd("自激活成功!!");
logd("镜像挂载状态:" + activeSelf.mountImageOk());
// 3. 关闭 VPN
activeSelf.disableSelfVpn();
return true;
}
function testOpenApp() {
logd("testOpenApp");
// 4. 开启 VPN(同上)
activeSelf.openSelfVpn();
sleep(5000);
let error = activeSelf.getOpenSelfVpnError();
if (error != "") {
loge("打开自带VPN失败:" + error);
activeSelf.disableSelfVpn();
return false;
}
sleep(2000);
// 这里设定是代理IPA的 Bundle ID(实际使用填写你自己的 Bundle ID)
let runner = "com.cy.ceshi";
// 5. 调用 openApp 重启该代理IPA
let rsd = activeSelf.openApp(runner, 0, 0, 30000);
if (!rsd || rsd["code"] != 0) {
loge("打开APP失败:" + (rsd ? rsd["msg"] : "无返回"));
activeSelf.disableSelfVpn();
return false;
}
logd("打开APP成功:" + JSON.stringify(rsd));
activeSelf.disableSelfVpn();
return true;
}
你也可以按照以下方式进行封装触发 (随手写最简单的流程):
javascript
function rebootAgentIPA() {
logd("开始重启代理IPA...");
// 前置自激活模块
let activateResult = activeSelf.startActiveMySelf(30000);
if (!activateResult || activateResult["code"] !== 0) {
loge("自激活失败:" + activateResult?.msg || "未知错误");
return false;
}
logd("自激活成功 ✅");
logd("镜像挂载:" + activeSelf.mountImageOk());
let bundleId = "com.your.proxyipa"; // 改成你实际的IPA Bundle ID
// 干掉现有进程
let killResult = activeSelf.killApp(bundleId, 30000);
if (killResult && killResult["code"] === 0) {
logd("代理IPA已被干掉 ✅");
}
// 重启代理IPA
let openResult = activeSelf.openApp(bundleId, 0, 0, 30000);
if (openResult && openResult["code"] === 0) {
logd("代理IPA已重启 ✅ PID:" + openResult.data);
return true;
} else {
loge("代理IPA重启失败:" + openResult?.msg || "未知错误");
return false;
}
}
注意事项:
必须在脱机版版本 6.1.0 及以上(activeSelf.openApp/killApp 支持)。
所有示例均使用内置 VPN,文档提示也可使用外部 VPN LocalDevVpn 程序,此时需确保主程序在后台运行时不被系统杀死。
推荐加入异常检测并配合 restartScript 函数实现循环失败重新尝试。
有了以上的功能,可以实现iOS免越狱,脱机跑脚本,并且自动化服务永远都存在