Unity独立游戏制作及上架--应用签名(keystore)

背景:当我们开发完成我们的游戏,准备打包上架移动端应用平台时,便需要对APK进行签名,以确保APK的完整性和安全性,同时便于应用商店审核和分发。

比如在Google Play Store或Apple App Store上发布应用程序,开发者通常需要对应用程序进行签名,以满足应用商店的审核要求。

而我们平时打包的apk,使用的是unity提供的默认debug key,它不会影响我们的日常开发和测试,但我们要上架应用商店时,建议使用自己配置的keystore,以提高应用的安全性。

并且,每台开发主机的debug key不同,当我们使用不用主机进行打包测试时,就会导致应用的包名相同,但签名不同,以至于安装失败。

原理:APK签名基于公钥加密和数字证书体系。在签名过程中,开发者使用私钥对APK进行加密,生成数字签名。在APK安装时,系统会使用对应的公钥来验证签名的有效性。

步骤:

Unity提供了一套签名方案,通过ProjectSettings的配置,可以对APK进行签名。

1.找到Publishing Settings,可以看到配置keystore的选项,通过配置keystore,就可以对我们打包后的apk进行签名。

图片

2.选择Keystore Manager创建一个新的密钥。位置可以选择工程目录下,

方便管理。配置keystore中的必填项。

图片

图片

3.配置完成后,如下:

图片

这样,当我们的apk,被打包出来后,就会自动对应用进行签名。

经验:

1.保存好自己的keystore,一个apk建议只对应一个keystore,这样方便以后的应用升级、迭代等。如果我们要同时开发多款不同的游戏,那么可以每个应用对应一个keystore。

2.对于一些平台,需要提供签名(MD5值)(如TapTap登录),可以通过keytool进行查询。

    a.首先需要安装Java的JDK,如果是unity引擎,并且已经配置了安卓平台,则可以使用unity安装的jdk,路径一般如下。

图片

    b.使用cmd命令行工具,切换到此目录下,并执行cmd命令

D:\Program Files (x86)\UnityEditor\2021.3.22f1c1\Editor\Data\PlaybackEngines\AndroidPlayer\OpenJDK\bin>keytool -list -v -keystore [你的keystore绝对路径]

    c.输入结果如下,可根据需要,提取MD5值或者SHA值。

图片

3.每次我们启动Unity引擎后,keystore默认不会记住密码。开发阶段我们频繁打包的话,会不太方便,我们可以通过在Editor文件夹中,新建脚本,以便在Unity启动时,便自动配置好keystore。

using UnityEditor;
//监听Unity启动,一启动就执行
[InitializeOnLoad]
public class RememberKeyStore
{
    static RememberKeyStore()
    {
        //密钥名称:注意这里要加上.keystore后缀
        PlayerSettings.Android.keystoreName = "你的密钥名称";
        // 密钥密码
        PlayerSettings.Android.keystorePass = "你的密钥密码";
        // 密钥别名
        PlayerSettings.Android.keyaliasName = "你的密钥别名";
        // 密钥别名密码
        PlayerSettings.Android.keyaliasPass = "你的密钥别名密码";
    }
}

此种方式,需要我们将密钥文件,放在Assets同级目录下才能生效。比如新建一个Build文件夹,用来存放密钥。此时你的密钥名称可以是:

"Build/Keys/user.keystore"。

图片

(感兴趣的小伙伴可以关注我的微信公众号:"Unity实战与独立游戏",后续会分享独立游戏开发的流程和各种解决方案)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Star_MengMeng

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值