{"record":{"id":"67389d7e44817997","repo":"shwenzhang/AndResGuard","slug":"the-signature-file-do-not-exit-raw-path-s","errorCode":null,"errorMessage":"the signature file do not exit, raw path= %s\n","messagePattern":"the signature file do not exit, raw path= (.+?)\n","errorType":"exception","errorClass":null,"httpStatus":null,"severity":"error","filePath":"AndResGuard-core/src/main/java/com/tencent/mm/resourceproguard/Configuration.java","lineNumber":154,"sourceCode":"    mUse7zip = param.use7zip;\n    mKeepRoot = param.keepRoot;\n    mMergeDuplicatedRes = param.mergeDuplicatedRes;\n    mMetaName = param.metaName;\n    mFixedResName = param.fixedResName;\n    for (String item : param.compressFilePattern) {\n      mUseCompress = true;\n      addToCompressPatterns(item);\n    }\n    this.m7zipPath = param.sevenZipPath;\n    this.mZipalignPath = param.zipAlignPath;\n  }\n\n  private void setSignData(\n      File signatureFile, String keypass, String storealias, String storepass) throws IOException {\n    mUseSignAPK = true;\n    mSignatureFile = signatureFile;\n    if (!mSignatureFile.exists()) {\n      throw new IOException(String.format(\"the signature file do not exit, raw path= %s\\n\",\n          mSignatureFile.getAbsolutePath()\n      ));\n    }\n    mKeyPass = keypass;\n    mStoreAlias = storealias;\n    mStorePass = storepass;\n  }\n\n  private void setKeepMappingData(File mappingFile) throws IOException {\n    if (mUseKeepMapping) {\n      mOldMappingFile = mappingFile;\n\n      if (!mOldMappingFile.exists()) {\n        throw new IOException(String.format(\"the old mapping file do not exit, raw path= %s\",\n            mOldMappingFile.getAbsolutePath()\n        ));\n      }\n      processOldMappingFile();","sourceCodeStart":136,"sourceCodeEnd":172,"githubUrl":"https://github.com/shwenzhang/AndResGuard/blob/e4df245d82f27d9a2d0dd108260a3510cbaba849/AndResGuard-core/src/main/java/com/tencent/mm/resourceproguard/Configuration.java#L136-L172","documentation":"Configuration.setSignData throws IOException('the signature file do not exit, raw path= %s') when signature-based APK signing is enabled (mUseSignAPK=true) but the provided keystore/signature File does not exist on disk.","triggerScenarios":"Building Configuration from CLI/gradle options where -signature/keystore path is set (via setSignData called from the Configuration constructor) but the keystore file path is wrong, relative to the wrong working directory, or the file was never generated.","commonSituations":"CI machines missing the keystore because it is git-ignored; relative keystore path resolved against a different working directory; renaming the keystore without updating the config.","solutions":["Check signatureFile.exists() before constructing Configuration and fail early with a clear message.","Use an absolute path (or resolve the path against the project root) for the keystore.","Ensure the keystore is provisioned in CI (secret file injected, correct workspace path)."],"exampleFix":"// before\nconfig.setSignData(new File(\"debug.keystore\"), pass, alias, storePass);\n// after\nFile ks = new File(project.getRootDir(), \"signing/debug.keystore\");\nif (!ks.isFile()) throw new GradleException(\"keystore not found: \" + ks.getAbsolutePath());\nconfig.setSignData(ks, pass, alias, storePass);","handlingStrategy":"validation","validationCode":"File ks = new File(signaturePath); if (!ks.isFile()) throw new IllegalArgumentException(\"keystore not found: \" + ks.getAbsolutePath());","typeGuard":null,"tryCatchPattern":"try { config.setSignData(f, pass, alias, storePass); } catch (IOException e) { throw new GradleException(\"invalid signing config: \" + e.getMessage()); }","preventionTips":["Use absolute or project-root-relative keystore paths","Provision the keystore as a CI secret file at a known path","Fail fast in your own task before constructing Configuration"],"tags":["configuration","signing","keystore","file-not-found"],"backgroundTag":"file-not-found","analyzedSha":"e4df245d82f27d9a2d0dd108260a3510cbaba849","analyzedAt":"2026-09-12T17:49:07.798Z","contentChangedAt":"2026-09-12T17:49:07.798Z","schemaVersion":2},"datasetVersion":"2026-09-16T09:17:16.951Z"}