[Android Studio] 如何安全的管理 API Key

當我們在開發 Android 時,遇到 API Key 或者密碼等機密資料,常見的作法是將這些資料用字串寫在程式裡,可是這些資料一旦隨著程式發佈到 Github ,就有可能會被有心人士拿去使用。

以下分享三種管理在實務上管理 API Key 的方法:

放在 Constant.java 檔案

public static final String API_KEY = "xxxxxx"; 
使用上只要這樣呼叫,就能取得資料
Constant.API_KEY
然後把 Constant.java 加入 .gitignore 不簽入 Git 版控系統,不過這樣作,日後有其他人使用這個專案,會造成專案完整性有問題。

放在 grade.properties 檔案

在 Android 專案根目錄下,找到 grade.propertie 檔案(這個檔案要加入 .gitignore 不簽入 Git 版控系統),把 API Key 加入其中。
MyKey = "xxxx"
在 build.gradle 檔案加上
apply plugin: 'com.android.application'

android {
    ...

    defaultConfig {
        ...
    }
    buildTypes {
        release {
            ...
        }
        buildTypes.each {
            it.buildConfigField 'String', 'API_KEY', MyKey
        }
    }
}
然後可以在程式中使用它
String KEY = BuildConfig.API_KEY;

放在系統環境變數(限定 Windows 作業系統使用)

將 API Key 加入 Windows 環境變數
然後在 build.gradle 加入
apply plugin: 'com.android.application'

android {
    ...

    defaultConfig {
        ...
    }
    buildTypes {
        release {
            ...
        }
        buildTypes.each {
            it.buildConfigField 'String', 'API_KEY', "$System.env.API_KEY"
        }
    }
}
然後可以在程式中使用它
String KEY = BuildConfig.API_KEY;

建議使用第二種方式,將 API Key 加入 grade.properties 檔案,然後不要簽入版控系統

相關文章

如何將電腦畫面經由 Chromecast 投放到電視螢幕上

Chrome 的檔案續傳功能

隱私權政策產生器 Privacy Policy Generator

使用 Vysor 在電腦上控制 Android 裝置