티스토리 뷰
반응형
CircleCI를 사용하면서 발생했던 오류 해결 방법을 적어놓은 게시글입니다.
Gradlew: Permission denied 오류 발생 시
( 깃허브 gitignore 재 설정 때문에 git rm -r --cached . 사용 시에 발생하거나 권한 설정 안 하면 발생 )
git update-index --chmod=+x gradlew
또는
- run:
name: chmod permissions
command: chmod +x ./gradlew
dependencies:
override:
-chmod +x gradlew
org.gradle.wrapper.GradleWrapperMain 오류 발생 시
git add -f gradle/wrapper/gradle-wrapper.jar
입력 후
gradle wrapper
gradlew assembleRelease
keystore.properties (No such file or director)
buildConfigField와 로컬 파일을 통해 API Key 정보를 숨길 때 API Key 정보가 담긴 properties를. gitignore 처리할 때 파일을 찾을 수 없다고 빌드를 실패합니다.
해결을 이렇게 하였습니다. ( ※생각해서 해결한 방법이라서 옳은 방법이 아닐 수도 있습니다. )
keystore.properties 파일 대신 API Key들을 제공해줄 keystore_private.properties를 만들어줍니다.
그리고 아래와 같이 API Key나 Token 값을 숨겨줍니다.
SCHOOL_API_KEY = "private"
SCHOOL_INFO_URL = "http://private/"
BASE_URL = "http://private/"
그리고 build.gradle에서 아래와 같이 바꿔줍니다.
defaultConfig {
...
if (rootProject.file("keystore.properties").exists()) {
def keystorePropertiesFile = rootProject.file("keystore.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
buildConfigField "String", "SCHOOL_API_KEY", keystoreProperties["SCHOOL_API_KEY"]
buildConfigField "String", "SCHOOL_INFO_URL", keystoreProperties["SCHOOL_INFO_URL"]
buildConfigField "String", "BASE_URL", keystoreProperties["BASE_URL"]
} else {
def keystorePropertiesFile = rootProject.file("keystore_private.properties")
def keystoreProperties = new Properties()
keystoreProperties.load(new FileInputStream(keystorePropertiesFile))
buildConfigField "String", "SCHOOL_API_KEY", keystoreProperties["SCHOOL_API_KEY"]
buildConfigField "String", "SCHOOL_INFO_URL", keystoreProperties["SCHOOL_INFO_URL"]
buildConfigField "String", "BASE_URL", keystoreProperties["BASE_URL"]
}
}
CircleCI가 파일을 못 찾았을 때 오류를 뱉었으므로 존재하지 않으면 다른 properties의 값을 전달해주도록 하였습니다.
반응형
'알려주는 이야기 > 기타' 카테고리의 다른 글
Visual Studio, PowerMode로 즐겁게 코딩하기! (0) | 2019.09.10 |
---|---|
자바 JDK를 설치하고 환경 변수 설정하기. (1) | 2019.04.06 |
댓글