로컬에서 gitignore했던 파일을 포함하여 Bitrise로 빌드하고 싶습니다.

4088 단어 CICDSwiftBitrise

소개



이번에는 많은 기업에서 이용되고 있는 모바일 앱 CI/CD의 Bitrise를 자신의 앱에서도 움직이려고 생각하고 Bitrise로 환경을 구축했습니다.
그 때 GitHub에 푸시하지 않은 API 키가 들어있는 plist 파일을 Bitrise에서 어떻게 생성시킬 것인가라는 벽에 직면했기 때문에 그것을 기사로했습니다.

목차



  • Bitrise 도입
  • Secrets 설정 및 파일 생성


  • Bitrise 도입 이번에는 iOS 앱으로 개발했으므로 아래 공식 절차를 바탕으로 Bitrise에 iOS 앱을 추가합니다. htps : //에서 v 선 r. 가자. 이오 / jp / 갓찐 g-s rd d / 갓찐 g-s r d d ぃ th 이오 s ps /

    시도에 빌드했지만 이 시점에서는 아직 리모트 리포지토리의 파일을 Bitrise에 옮겨 놓았기 때문에 당연히 테스트시에 아래의 에러가 발생합니다.
    ❌  error: Build input file cannot be found: '/Users/vagrant/git/[アプリ名]/Resources/Key.plist' (in target '[アプリ名]' from project '[アプリ名]')
    

    이번에는 API 키의 내용을 Key.plist에 저장하려고합니다.
    여기에서 빌드시 파일 Key.pist의 파일을 생성하도록 워크 플로를 추가합니다.

    Secrets 설정 및 파일 생성

    Bitrise의 WorkFlow 편집기의 Secrets에서 비밀 환경 변수를 설정할 수 있으므로 거기에서 .gitignore하고 있던 파일의 내용을 복사하여 붙여 넣습니다. 단지 파일의 내용은 수십행이 되어 있고 그들을 1행으로 해 관리하고 싶었기 때문에 base64로 encode한 상태로 값을 설정했습니다.

    base64에 대해서는 아래의 기사를 참고해 주세요.
    htps : // 이 m / P ぁね t / / ms / 2905 2d0 아 7 46 36d4

    Expose for Pull Requests? 의 설정은 디폴트에서는 ❎가 되어 있습니다만 이것이라면 GitHub로 풀 리퀘스트를 내고 Bitrise를 돌릴 때에 이 Secrets를 이용할 수 없어 에러가 되어 버리기 때문에✅로 합니다.

    다음으로 Workflow에서 Secrets를 이용하여 파일을 생성합니다.



    Workflows 항목에서 + 버튼에서 Step을 추가합니다. 이번에는 파일을 생성하기 위해 쉘 스크립트를 사용하므로 Script라는 단계를 추가합니다. (이미지로 말하면 위에서 3번째)
    앱을 복제한 다음 파일을 생성하지 않으면 실행이 실패하므로 Git Clone Repository 뒤에 단계를 추가해야 합니다.

    그런 다음 스크립트의 단계를 누르면 스크립트의 내용을 입력하는 텍스트가 있으므로 거기에서
    echo ${NEWS_API_KEY_PLIST_BASE} | base64 --decode > [アプリ名]/[ignoreしたファイルパス]
    

    를 작성하면 테스트 시 ignore한 파일이 생성되고 ${NES_API_KEY_PLIST_BASE}의 내용이 기록됩니다. 이번은 base64로 값을 인코딩하고 있었기 때문에 기입시에 디코드 하고 있습니다만 특별히 필요가 없는 경우는 |base64 --decode 의 부분을 소거해 실행해 주세요.

    이 상태에서 Bitrise를 다시 실행합니다.





    이번에는 빌드 성공할 수 있었습니다.

    사이고에게



    원래 왜 이런 기밀 정보를 GitHub에 올려서는 안 되는 것일까요? 리포지토리를 공개한다면 아직 private 리포지토리로 하고 보안면을 보증하고 있다면 문제 없을까요?



    2021년 1월~4월경, Codecov의 Bash Uploader를 개조하여 허위로 획득한 자격 증명을 사용하여 GitHub에 무단으로 액세스하는 경우가 있었습니다.
    이와 같이 안이하게 API 정보나 고객 정보 등을 남긴다고 비록 보안면을 보증하고 있어도 인증 정보가 GitHub 이외의 툴로부터 부정하게 도난당해 버릴 위험성이 있으므로, 이번과 같이 테스트 때만 기밀 정보가 들어있는 파일을 생성하여 GitHub의 리포지토리에 남기지 않도록하는 것이 중요하다고 생각합니다.

    참고문헌


  • Bitrise
  • base64는 뭐야? ? 이해를 위해 구현했습니다.
  • 좋은 웹페이지 즐겨찾기