uni-app Failed to load signer "signer #1" 好奇怪,加了个插件就这样,不能打基座,但是可以打包

发布于 1周前 作者 ionicwang 来自 Uni-App

uni-app Failed to load signer “signer #1” 好奇怪,加了个插件就这样,不能打基座,但是可以打包

Appid: `UNI`3AA25DD  
Failed to load signer "signer #1"  
java.io.FileNotFoundException: 123456 (No such file or directory)  
at java.base/java.io.FileInputStream.open0(Native Method)  
at java.base/java.io.FileInputStream.open(FileInputStream.java:219)  
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:157)  
at java.base/java.io.FileInputStream.<init>(FileInputStream.java:112)  
at com.android.apksigner.SignerParams.loadKeyStoreFromFile(SignerParams.java:352)  
at com.android.apksigner.SignerParams.loadPrivateKeyAndCertsFromKeyStore(SignerParams.java:239)  
at com.android.apksigner.SignerParams.loadPrivateKeyAndCerts(SignerParams.java:181)  
at com.android.apksigner.ApkSignerTool.getSignerConfig(ApkSignerTool.java:395)  
at com.android.apksigner.ApkSignerTool.sign(ApkSignerTool.java:316)  
at com.android.apksigner.ApkSignerTool.main(ApkSignerTool.java:88)  

1 回复

针对你提到的 uni-app 中出现的 “Failed to load signer ‘signer #1’” 错误,这通常与项目的签名配置有关。在 uni-app 开发中,特别是在进行 Android 打包时,正确配置签名证书是非常重要的。以下是一些可能帮助你解决问题的代码和配置示例。

1. 检查 manifest.json 中的签名配置

首先,确保你的 manifest.json 文件中关于 Android 平台的签名配置是正确的。这里是一个基本的配置示例:

"mp-weixin": {},
"app-plus": {
    "distribute": {
        "android": {
            "package": "com.example.app",
            "keystore": {
                "path": "path/to/your/keystore.jks",  // 替换为你的 keystore 文件路径
                "alias": "your-alias",                // 替换为你的 keystore 别名
                "password": "your-keystore-password", // 替换为你的 keystore 密码
                "privKeyPwd": "your-private-key-password" // 替换为你的私钥密码
            },
            "signer": [
                {
                    "alias": "your-alias",
                    "storePassword": "your-keystore-password",
                    "keyPassword": "your-private-key-password",
                    "storePath": "path/to/your/keystore.jks"
                }
            ]
        }
    }
}

注意,signer 数组中的每个对象都应对应一个有效的签名证书。如果你添加了额外的插件并且它试图添加或修改签名配置,确保这些配置与你的现有配置兼容。

2. 检查 HBuilderX 配置

如果你是通过 HBuilderX 进行打包的,确保在 HBuilderX 的项目设置中,Android 的签名信息也是正确的。在 HBuilderX 中,你可以通过“发行”->“原生App-云打包”->“选择证书”来检查和设置签名信息。

3. 清理和重建项目

有时候,简单的清理和重建项目可以解决一些看似复杂的问题。尝试清理你的项目缓存,然后重新构建。

4. 检查插件兼容性

由于你提到是在添加了一个插件后出现的问题,检查该插件的文档和社区,看看是否有其他人遇到了类似的问题,或者该插件是否有特定的签名要求。

5. 日志和错误追踪

查看详细的构建日志,可能会有更具体的错误信息帮助你定位问题。在 HBuilderX 中,你可以在构建输出窗口中找到这些日志。

确保所有路径和密码都是正确的,且 keystore 文件没有损坏或权限问题。希望这些信息能帮助你解决问题!

回到顶部