내가 쓰는 오픈소스 라이브러리에 생애 첫 Contribution 을 했다.

Dahun Yoo·2024년 12월 13일
0

Lessons learned

목록 보기
17/17

제가 쓰는 오픈소스 라이브러리에 생애 첫 컨트리뷰션을 하게 되었습니다.

https://github.com/AppiumTestDistribution/appium-device-farm/pull/1471

Contribution 계기

사내의 appium 병렬/원격 실행환경을 얼마 전 부터 눈여겨보고 있던 appium-device-farm 라이브러리로 변경/적용하게 되었습니다.
이 때 라이브러리 이슈로 인해 엄청난 심적고통을 겪게 되었...고 해결 후에 팀원들이 한 번 해보라고 격려해준 덕에 PR을 날리게 되었습니다.

이슈 원인

appium-device-farm appium 플러그인을 사용하면, iOS를 실행하기 위해서는 WebDriverAgent를 .ipa 형태로 빌드하여 라이브러리에서 제공하는 UI에 업로드해야할 필요가 있습니다.

https://devicefarm.org/ios-signing/#uploading-signed-wda-in-device-farm

기존에는 그냥 XCode 상에서 Test 로 실행시켜주는 것이 전부였다면, 이 플러그인은 아예 .ipa 파일로 빌드해서 업로드를 해야하는 것 입니다.

이 때 애플 개발자 계정으로 서명이 필요한데요, 이 서명에 쓰이는 파일이 Provisioning profile입니다. 이 파일은 주로 XCode에 의해서 관리되는데, XCode 15까지는 이 프로비저닝 프로파일이 저장되어있는 경로가 아래 경로였습니다.

/Library/MobileDevice/Provisioning Profiles

XCode 16부터는 아래 경로로 바뀌었습니다.

/Library/Developer/Xcode/UserData/Provisioning Profiles

프로비저닝 프로파일의 문제인 것이라는 추측을 하기까지 고통스러운 시행착오.. 가 있었습니다.

심지어 저는 재직중에 XCode15에서 16으로 업데이트도 했었어서, 이전 버전의 경로에 프로비저닝 프로파일들이 잘 들어있어서 헷갈리기도 하였습니다.

결국 수많은 구글링... 으로 힌트를 얻게 되었고 겨우겨우 해결하게 되었습니다.

그리고는 라이브러리에도 반영되면 좋겠다 싶어서 PR을 날리게 되었습니다.

여담

PR날리긴했는데.. 그냥 별 코멘트 없이 머지해주어서 조오금 아쉽다고해야하나 뭔가 피드백해줄 줄 알았는데... 🫠 그런 느낌?

제가 타입스크립트도 잘 모르고.. 꽤나 큰 기능을 가진 플러그인이라서 고칠 수 있을까 싶었는데, 문제있던 부분은 스크립트 형태로 단독작업을 수행하는 파일이라 그나마 대응해볼 수 있었던 것 같습니다.

추가로.. appium-device-farm 플러그인은 아직까지도 버그가 많이 있는 것 같고.. 안정화가 덜 된 상태라는 느낌을 많이 받고 있습니다. 사용하실 분들은 이 점 참고하셔서 사용하시면 좋을 것 같습니다.

profile
QA Engineer

0개의 댓글