2016-11-20 135 views
0

我有問題讓cordova在構建和簽署我的apks時提示輸入build.json文件中storePassword和password字段的密碼。我轉向的解決方案是將它們輸入到build.json文件中。Cordova Build.json密碼安全

我的問題:手動輸入密碼到build.json中是否存在安全問題(例如密碼以某種方式被包含在實際簽名的apk中等)?

我在科爾多瓦項目的根build.json所以它被自動檢測,所有我需要做的就是:

cordova build android --release 

...這就是爲什麼我已經走了這條路線(它只是工作)。我知道,這似乎是一個愚蠢的問題,但科爾多瓦文檔狀態:

「對於發行的簽名,密碼可以被排除,構建系統 會發出提示,要求輸入密碼。」

...這意味着由於某些原因,密碼不應該輸入到build.json中進行發佈。

+0

這個問題是重複的:http://stackoverflow.com/questions/40349848/cordova-6-4-0-android-error-when-building-release-apk 截至目前這似乎是一個錯誤,將密碼包含在'build.json'中的問題是使用某些VCS(例如git)。如果您的存儲庫受到威脅.... –

+0

感謝您的鏈接。我並不是在問是否有錯誤,因爲我知道它並沒有提示我輸入密碼。我想知道在將密碼放入build.json中是否存在安全問題(即使僅在構建完成之前)。 – Sam

回答

0

密碼莫名其妙被包括在實際簽署的apk

build.json文件將不會包含在被建立的最終APK。您可以通過解壓apk來驗證這一點,以便進行交叉檢查。

希望有所幫助。

1

相信的主要原因是爲了避免存儲在純文本中的密碼和build.json代替控制檯鍵入:

{ 
    "android": { 
     "debug": { 
      "keystore": "../android.keystore", 
      "storePassword": "android", 
      "alias": "mykey1", 
      "password" : "password", 
      "keystoreType": "" 
     }, 
     "release": { 
      "keystore": "../android.keystore", 
      "storePassword": "", 
      "alias": "mykey2", 
      "password" : "password", 
      "keystoreType": "" 
     } 
    } 
} 

或從環境變量取:
cordova run android --release -- --keystore=../my-release-key.keystore --storePassword=%STORE_PASS% --alias=mykey2 --password=password