nodejs 资源转发

之前在做微信小游戏或者抖音小游戏排行榜时候,难免会使用平台自带的用户头像地址,而抖音的头像地址不是固定地址,并且平台的域名限制,导致一些图片显示不出来。
所以我想出,可以用我们的https服务器进行转发,小游戏后台配置我们的域名,从而解决图片不显示的问题。
下面是用nodejs实现资源转发的功能

app.get("/resForward", function(request, respones) {
    var myObj = url.parse(request.url,true);
    let requestUrl = myObj.query.url;
    requestUrl = base64_decode(requestUrl);
    console.log("resForward requestUrl:"+requestUrl);

    let parsedUrl = url.parse(requestUrl);
    let httpTemp = (parsedUrl.protocol == "https:") ? https : http;

    let req = httpTemp.get(requestUrl, (res)=>{
        respones.writeHead(res.statusCode, res.headers);
        res.on('data', function (chunk) {
            respones.write(chunk);
        });
        res.on('end', function () {
            respones.end();
        });
    });
    req.on('error', function (e) {
        respones.writeHead(404);
        respones.end();
    });
});

工程地址:gitee地址

linux 使用zsign

ios超级签名中,我对比了isign和zsign,
1. isign签名的包发现有些会安装不了,而且签名麻烦点。
2. zsign可以使用p12秘钥文件,直接签名打包。
zsign的github地址
我已经用linux编译好zsign命令,可以直接下载使用。zsign命令的下载地址

linux系统使用zsign
1. 安装zip,unzip,openssl-devel,终端执行下面的命令
yum install zip
yum install unzip
yum install openssl-devel

2. 添加权限
chmod 777 ./zsign

3. 可以准备好秘钥文件:key.p12,秘钥文件的密码:password, 授权文件:test.mobileprovision,要签名的包:test.ipa

4. 执行命令
./zsign -f -k “./key.p12” -p “password” -m “./test.mobileprovision” -o “./output.ipa” ./test.ipa -z 9

nodejs实现AppleConnectApi

之前在研究ios超级签名系统,查了很多的api,发现苹果有自带的api提供给开发者。这个相比较spaceship而言,可以不用考虑双重验证,不用每个月获取一次验证码。
因此,我就用nodejs来实现Apple Connect Api接口,分享给大家
下面是调用例子

const AppleApi = require("./AppleApi");

//aple connect api的秘钥信息
let iis = "testtest";
let kid = "test";
let keypath = "./sign.p8";

//测试的包名
let identifier_id = "com.test.mobile.test4";
//手机设备的udid
let udid = "1a2afcc4b41db77470ea256e220c1cdb97b07d44";

let appUtils = new AppleApi(iis, kid, keypath);
//获取设备列表
appUtils.get_device_list((code, result)=>{
    console.log("get_device_list:", code, result);
});

//注册设备
appUtils.register_device(udid, (code, result)=>{
    console.log("register_device:", code, result);
})

//获取bundle列表
appUtils.get_bundle_list((code, result)=>{
    console.log("get_bundle_list:", code, result);
});

//通过包名获取bundle信息
appUtils.get_bundle_by_identifier_id(identifier_id, (code, result)=>{
    console.log("get_bundle_by_identifier_id:", code, result);
});

//获取证书列表
appUtils.get_cert_list((code, result)=>{
    console.log("get_cert_list:", code, result);
});

//获取第一个发布证书
appUtils.get_first_dis_cert((code, result)=>{
    console.log("get_first_dis_cert:", code, result);
});

//获取profile列表
appUtils.get_profile_list((code, result)=>{
    console.log("get_profile_list:", code, result);
});

//注册设备,并且更新profile,这里需要有一个发布证书
appUtils.register_device_and_profile(udid, identifier_id, (code, result)=>{
    console.log("register_device_and_profile:", code, result);
    if(code){
        //有异常信息
        return;
    }

    //下载profile到本地目录
    result.download("./test.mobileprovision");
});

工程地址:
github地址
gitee地址