なんでそんなことするの?
github等でgitを共有する時に、データベース接続用パスワード等は公開したくない
説明
.gitignoreファイルに記載されているファイルはgitに保存されなくなる
AndroidStudioでプロジェクトを作成すると、自動的に.gitignoreとlocal.propertiesが作成され、
.gitignoreの中にlocal.propertiesも入っているのでそれをそのまま使用する
結論
github
この中にlocal.propertiesは入っていない
コード
gitの例外にするファイルを指定する
local.propertiesが入っていることを確認
.gitignore
/local.properties
local.properties
使用するファイルと定数名を指定
ここのやり方はわからなかったらbuildConfigField
でググってください
build.gradle(app)
android {
defaultConfig {
// local.propertiesファイルを指定
def properties = new Properties()
properties.load(project.rootProject.file('local.properties').newDataInputStream())
// buildConfigFieldで値を保存
def LOCAL_PROPERTIES_SAMPLE = properties.getProperty("LOCAL_PROPERTIES_SAMPLE")
buildConfigField("String", "LOCAL_PROPERTIES_SAMPLE", "\"${LOCAL_PROPERTIES_SAMPLE}\"")
}
}
使用する値を入力
ここに隠したい値を入れる
文字列でもクォーテーションは要らない
半角スペースを使用できない
local.properties
LOCAL_PROPERTIES_SAMPLE=SAMPLE
値を受け取る
今回はtext_viewでlocal.propertiesで指定した値を表示してみる
activity_main.xml
<TextView
android:id="@+id/text_view" />
BuildConfigやその中の値は最初存在せず、赤くなってるけど、初回ビルド時にBuildConfig.javaが生成・更新され、使えるようになる
MainActivity.kt
class MainActivity : AppCompatActivity() {
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setContentView(R.layout.activity_main)
// BuildConfig.javaは初回ビルド時に生成される
text_view.text = BuildConfig.LOCAL_PROPERTIES_SAMPLE
}
}