AndroidManifest.xml에 API 키를 작성한 코드를 GitHub에 커밋하지 않기 위해
소개
개인 개발에 API 튜토리얼에 따라 코드를 작성하면 사용하기위한 API 키를 AndroidManifest.xml에 쓸 수 있습니다. 경향이 있습니다.
AWS입니다만, 이런 기사 도 보였으므로, API 키는 안이하게 GitHub상에 커밋해 좋은 것이 아닐 것 같네요.
그렇다고 해서 거기만 필기로 매번 다시 쓰는 운용도 하고 싶지는 않습니다.
(또한 현재는 GitHub에서 검색 (GoogleMapsAPI 키의 예) 해 보면, 베타 쓰여져 있거나, 좋게도 strings.xml에 베타 써진 것이 많아 있는 모양)
그래서 이번에는 어떻게 든 API 키를 커밋하지 않고 코드에 반영시킬지 살펴 보았습니다.
개발 환경
할 일
했던 일
ManifestManager의 manifestPlaceHolders를 사용하여 환경 변수에서 설정하려는 값을 가져옵니다.
ManifestManager 사용
manifestPlaceHolders에서는 ${}로 둘러싸여 변수를 포함합니다.
AndroidManifest.xml
<activity
android:name=".MainActivity"
android:label="${label}"
android:theme="@style/AppTheme.NoActionBar">
<intent-filter>
<action android:name="android.intent.action.MAIN"/>
<category android:name="android.intent.category.LAUNCHER"/>
</intent-filter>
</activity>
build.gradle 값을 환경 변수에서 가져옵니다.
manifestPlaceholders에 앞서 Manifest 측에서 임베드한 변수를 정의해 간다.
이번에는 LABEL이라는 환경 변수를 참조한다.
※베타 쓰기에서도 움직이지만 그것이라고 본말 전도이므로 더욱 환경 변수를 참조하도록 한다.
app/build.gradle
buildTypes {
debug {
minifyEnabled false
signingConfig signingConfigs.debug
//manifestPlaceholders = [label: "testlabel"] #ベタ書きの例、これでも動くが...
manifestPlaceholders = [label: System.getenv("LABEL")]
}
}
환경 변수 설정
터미널에서 launchctl을 사용하여 설정하십시오.
#LABELという環境変数に"testlabel"を設定する
$ launchctl setenv LABEL testlabel
#設定されていることを確認する
$ launchctl getenv LABEL
testlabel
디버그 APK를 설치하고 확인
설정하면 반영을 위해 AndroidStudio를 재시작하고, 만든 디버그 apk를 넣어 본다.
무사히 "testlabel"이 label에 반영되었습니다.
결론
여러 사람이나 복수 디바이스로 개발할 때 등은 환경 변수를 가지런히 해야 하는 것이 귀찮은 생각이 듭니다.
이것이 올바른 방법인지 모르기 때문에, 더 좋은 방법을 아는 분은 꼭 가르쳐 주세요.
참고
초보자가 AWS에서 실수라고 불법 이용되어 $6,000 청구, 울 것 같게 된 이야기. - Qiita : ぃ tp // 코 m / 모치즈키 코타로 / ms / 아 0 98 ~ f0063
Manifest Merger - Android Studio Project Site : htp : ///와 ls. 안 d로이 d. 코 m / 테 ch도 cs / 네 w-Bui ld-sys m / Use r-gui / 마니 후 st - r r # 및 C-P ぁ セホ 1 rt
Android Studio(Gradle)에서 apk 파일을 만들 때 storePassword/keyAlias/keyPassword의 지정 방법을 몇 가지 검증해 보았다. - Qiita : ぃ tp // 코 m / 시라 지 / ms / 8f55b5295094487 71
AndroidStudio에 환경 변수 전달 - Qiita : ぃ tp // m / t 미야몬 / ms / e d660d f7846f5 e c95d3
Reference
이 문제에 관하여(AndroidManifest.xml에 API 키를 작성한 코드를 GitHub에 커밋하지 않기 위해), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/masaibar/items/38735c99da6f1d439f0a텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)