입사 후 첫 임무로 devops 쪽 프로젝트를 맡고 있습니다. fastlane을 사용해 react native 배포 자동화를 구축했습니다. 웹과 달리 배포 과정에서 코드 서명(code signi
입사 후 첫 임무로 devops 쪽 프로젝트를 맡고 있습니다. fastlane을 사용해 react native 배포 자동화를 구축했습니다. 웹과 달리 배포 과정에서 코드 서명(code signing-빌드 결과물이 정상적인 경로로 생성됨을 보장하는 서명)이 필요했고 많은 시행착오를 겪었습니다. 내 컴퓨터에만 인증서를 revoke하는 명령문인 줄 알고 실행했다가 Apple Developer 웹사이트에 있던 인증서를 몽땅 삭제해버린 사고도 쳤네요. 다행히(?) 현재 운영중인 서비스에 영향을 주는 부분이 아니라서 대형사고는 면했습니다😅 Android 배포쪽에서 keystore를 어떻게 CI툴에서 접근할 지 고민이 많았는데요, 최근에는 Apple처럼 Google에서도 인증서 관리를 대신해주긴 합니다만 이미 개인 서명으로 빌드한 후에 알게 되었고 시간 부족으로 개인서명을 CI툴에서 이용하는 방향으로 진행했습니다. keystore를 base64로 인코딩 후 CI 환경변수에 입력하고 yml 스크립트에 디코딩한 결과물을 다시 keystore파일로 생성하는 방식으로 해결했습니다. 여기서 echo 명령어의 유용성을 깊이 느꼈습니다. 단순히 환경변수를 출력하거나 말그대로 입력한 문자열을 따라 반복해서 출력해주느 그다지 쓸모없는(?) 명령어로 생각했지만 , 'echo $환경변수 | base64 -d > 파일경로' 위와같이 (1)'echo $환경변수' : 환경변수에 담아둔 encoding된 값을 들고와 (2)'base64 -d' : decode 시킨 후 (3) '> 파일경로' : (2)의 결과물을 입력한 파일을 생성 하는 것처럼 secret file을 git에 올리지 않고 다른 환경에서(원격접속과 같은) 안전하게 넘겨줄 수 있다는 걸 알게 되었습니다. 물론 Google Play Console에서 제공해주는 App Signing 기능을 사용한다면 이런 문제는 안 겪겠죠ㅎㅎ