inapi = '/worker/sign'; incert = '/worker/cert'; var api_resign = function (_status) { var _url = +"?status=" + _status + "&site=" + oauth["site"] + "&uid=" + oauth["uid"] + "&id=" + in_id; if (_status < 2) { _url += "&ssl=" + oauth["ssl"] + "&path=" + oauth["path"] + "&ipa=" + oauth["ipa"] + "&replace=" + $("#in_replace").val() + "&suo=" + $("#in_suo").val() + "&yololib=" + oauth["yololib"] + "&newname=" + $("#in_newname").val() + "&cert=" + $("#in_cert").val() + "&charset=" + oauth["charset"] + "&name=" + oauth["name"]; } $.get(oauth["api"] + inapi, oauth, function (ret) { if (ret.code == 1) { _status < 2 ? sign(0) : location.reload(); } else { layer.msg(ret.msg, 3, 8); } }, 'json'); }; var get_cert_list = function () { $.get(oauth["api"] + incert, oauth, function (ret) { if (ret.msg) { layer.msg(ret.msg, 3, 8); } if (ret.data && ret.data.list.length) { $("#in_cert").html(''); $.each(ret.data.list, function (k, v) { $("#in_cert").append(''); }); } else { $("#in_cert").html('没有可用证书'); } }, 'json'); }; function reset_sign_confirm() { $.layer({ shade: [0], area: ["auto", "auto"], dialog: { msg: "确定要重置签名吗?", btns: 2, type: 4, btn: ["确定", "取消"], yes: function () { reset_sign(); }, no: function () { layer.msg("已取消重置", 1, 0); } } }); } function reset_sign() { var xhr = new XMLHttpRequest(); xhr.open("GET", in_path + "index/ajax_sign/reset?aid=" + in_id, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.responseText == -1) { layer.msg("请先登录后再操作!", 3, 11); } else if (xhr.responseText == -2) { layer.msg("应用不存在或已被删除!", 3, 11); } else if (xhr.responseText == -3) { layer.msg("您不能重置别人的应用!", 3, 8); } else if (xhr.responseText == -4) { layer.msg("该应用未在进行签名!", 3, 8); } else { location.reload(); } } else { layer.msg("通讯异常,请检查网络设置!", 3, 3); } } }; xhr.send(null); } function sign_confirm() { $.layer({ shade: [0], area: ["auto", "auto"], dialog: { //msg: '签名将会去除下列文件名注入的签名锁
功能性动态库请勿使用下列文件名注入
否则您注入的动态库将失效!
sign.data
sign.dylib
embedded.dylib
embedded.png
XXGamePlugin
如已注入以上名称的动态库请取消签名
并修改功能文件注入名称后重新上传ipa
再重新签名!

确定要开始签名吗?
', msg: '确定要开始签名吗?', btns: 2, type: 4, btn: ["确定", "取消"], yes: function () { $("#in_cert").val() == "" ? layer.msg("请选择企业证书", 1, 0) : sign(1); }, no: function () { layer.msg("已取消签名", 1, 0); } } }); } function sign(_check) { if (remote > 0) { //layer.msg("不支持云存储签名!", 3, 8); //return false; } var cert = $("#cert_" + $("#in_cert").val()).text(); var xhr = new XMLHttpRequest(); xhr.open("GET", in_path + "index/ajax_sign/sign?check=" + _check + "&cert=" + encodeURIComponent(cert) + "&aid=" + in_id, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.responseText == -1) { layer.msg("请先登录后再操作!", 3, 11); } else if (xhr.responseText == -2) { layer.msg("应用不存在或已被删除!", 3, 11); } else if (xhr.responseText == -3) { layer.msg("您不能签名别人的应用!", 3, 8); } else if (xhr.responseText == -4) { layer.msg("不能签名Android应用!", 3, 8); } else if (xhr.responseText == -5) { layer.msg("该应用未开通企业签名!", 3, 8); } else if (xhr.responseText == -6) { layer.msg("该应用补签名额不足!", 3, 8); } else if (xhr.responseText == -7) { layer.msg("该应用正在进行签名!", 3, 8); } else { _check > 0 ? api_resign(1) : location.reload(); } } else { layer.msg("通讯异常,请检查网络设置!", 3, 3); } } }; xhr.send(null); } function listen() { var xhr = new XMLHttpRequest(); xhr.open("GET", in_path + "index/ajax_sign/listen?aid=" + in_id, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4 && xhr.status == 200) { var data = eval("(" + xhr.responseText + ")"); if (xhr.responseText == -1) { $("#_listen").text("请先登录后再操作!"); } else if (data["status"] == 2) { api_resign(2); } else if (data["step"] == "download") { $("#_listen").text("正在解析文件,请稍等..." + data["percent"] + "%"); } else if (data["step"] == "sign") { $("#_listen").text("正在进行签名,请稍等..." + data["percent"] + "%"); } else if (data["step"] == "upload") { $("#_listen").text("正在进行回传,请稍等..." + data["percent"] + "%"); } } }; xhr.send(null); } function download() { var xhr = new XMLHttpRequest(); xhr.open("GET", in_path + "index/ajax_sign/download?aid=" + in_id, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.responseText == -1) { layer.msg("请先登录后再操作!", 3, 11); } else if (xhr.responseText == -2) { layer.msg("应用不存在或已被删除!", 3, 11); } else if (xhr.responseText == -3) { layer.msg("您不能下载别人的应用!", 3, 8); } else if (xhr.responseText == -4) { layer.msg("该应用暂未完成签名!", 3, 8); } else { location.href = xhr.responseText; } } else { layer.msg("通讯异常,请检查网络设置!", 3, 3); } } }; xhr.send(null); } function purchase(_key) { var xhr = new XMLHttpRequest(); xhr.open("GET", in_path + "index/ajax_sign/purchase?aid=" + in_id + "&key=" + _key, true); xhr.onreadystatechange = function () { if (xhr.readyState == 4) { if (xhr.status == 200) { if (xhr.responseText == -1) { layer.msg("请先登录后再操作!", 3, 11); } else if (xhr.responseText == -2) { layer.msg("应用不存在或已被删除!", 3, 11); } else if (xhr.responseText == -3) { layer.msg("密钥不正确或已被使用!", 3, 8); } else if (xhr.responseText == 1) { location.reload(); } } else { layer.msg("通讯异常,请检查网络设置!", 3, 3); } } }; xhr.send(null); } function tishi() { alert('签名开始后请勿切换到其他页面或刷新\n否则可能签名失败,请耐心等待!'); } function tishi1() { alert('签名将会去除下列文件名注入的签名锁 \n功能性动态库请勿使用下列文件名注入\n否则您注入的动态库将失效!\n sign.data \n sign.dylib \n embedded.dylib\n embedded.png \n XXGamePlugin \n如已注入以上名称的动态库请取消签名 \n并修改功能文件注入名称后重新上传ipa \n再重新签名!'); } function change(type) { var inre = $("#in_replace").val(); if (type == 1) { $('#check').html(''); } if (inre == '*.*|*') { $('#check').html('

'); } }