같은 앱을 개발과 시험과 운영 세 곳에 붙여야 했고 주소가 각각 달랐다.
Table of contents
Open Table of contents
상수로 두고 있었다
처음에는 주소를 헤더 상수로 두고 있어서 바꾸려면 ndk-build 를 다시 돌려야 했다. 시험할 때마다 주소를 바꿔 빌드했고 오래 걸려 번거로웠다.
한 번은 개발 서버로 맞춰 둔 것을 그대로 냈다. 앱이 개발 서버를 보게 됐고 그때 조심하는 것으로는 안 된다는 것을 알았다.
파일로 뺐더니 문제가 옮겨갔다
주소를 assets 아래 설정 파일로 빼서 빌드 없이 바꾸게 했다. 그랬더니 이번에는 그 파일을 잘못 넣는 일이 생겼다.
빌드를 잘못하는 문제가 파일을 잘못 넣는 문제로 옮겨간 것이다. 손으로 고르는 단계가 남아 있는 한 그 단계에서 틀린다.
빌드에서 갈랐다
Application.mk 에서 받은 값을 Android.mk 의 LOCAL_CFLAGS 에 -D 로 박고 코드에서 #ifdef 로 갈랐다. 개발용에는 개발 주소가 들어간다. 운영용에는 운영 주소가 들어간다. 섞을 수가 없다.
그리고 build.sh 가 그 표시를 인자로 받아 ndk-build 에 넘기게 했다.
build.sh dev
build.sh prod
파일을 손으로 바꾸지 않으니 잊을 일이 없다. 명령이 곧 선택이다.
그래도 명령을 틀릴 수 있어서 나오는 APK 이름에 어느 것인지 넣었다. 이름만 봐도 알 수 있다. 배포 전에 그 이름을 확인하는 단계를 뒀다. 전에는 assets 안을 열어 주소를 확인해야 했는데 이제 볼 것이 하나로 줄었다. 개발 빌드에서는 앱 화면 구석에도 표시했다.
여러 겹의 순서
정리하면 넷이 쌓였다. 빌드 명령으로 선택하고 파일 이름에 표시하고 개발 빌드는 화면에 표시하며 배포 전에 이름을 확인한다.
각각은 뚫릴 수 있다. 명령을 틀릴 수 있고 이름을 안 볼 수 있고 화면을 안 볼 수 있고 확인을 건너뛸 수 있다. 다만 넷이 다 뚫리기는 어렵다.
앞의 것이 더 세다고 봤다. 구조로 갈리는 것은 틀리기 어렵고 사람이 확인하는 것은 건너뛸 수 있다. 구조로 막는 것을 먼저 두고 사람 확인은 마지막에 뒀다.
정리
- 환경별 설정을 헤더 상수로 두면 바꿀 때마다
ndk-build를 다시 돌린다 assets로 빼면 편한데 파일을 잘못 넣는 실수로 옮겨간다- 손으로 고르는 단계가 남아 있으면 그 단계에서 틀린다
LOCAL_CFLAGS의-D로 갈라 두면 섞을 수 없다build.sh인자로 선택하면 파일을 손으로 안 바꾼다APK이름에 표시하면 눈으로 갈린다- 여러 겹으로 쌓으면 넷이 다 뚫리기는 어렵다
- 구조로 막는 것을 먼저 두고 사람 확인은 마지막에 둔다