TIL: macOS Catalina CLI 빌드 문제
macOS Catalina(이하 카탈리나)가 릴리즈 된 지 2주 정도 지났다. 카탈리나는 출시 이후 많은 이슈를 만들었는데 대표적으로 권한 문제나 32bit 프로그램 미 지원 등이 큰 이슈로 발견되었다. 그 외에도 사소하고 많은 이슈들이 사용자들을 괴롭혔는데, 그 중 어제 내가 겪었던 이슈를 하나 풀어 보고자 한다.
Fastlane Build 먹통
모바일 앱 빌드 자동화를 위하여 널리 사용 되고 있는 Fastlane. 현재 다니고 있는 회사에서도 이 Fastlane 을 이용하여 테스트 빌드 업로드 및 릴리즈를 하고 있다.
그러던 중, 모종의 이유로 개발 머신을 카탈리나로 업그레이드를 했다. 그 이후로 아래와 같은 에러가 발생하면서 Fastlane 를 통한 빌드 릴리즈가 불가능하게 되었다.
Fastlane은 Xcode의 빌드 툴인 xcodebuild
를 사용해서 CLI 상에서 빌드를 하는데, 특정 옵션들을 사용하면 빌드에서 아케이빙, Code Signing까지 끝낼 수 있게 해준다.
여기서 문제가 된 부분은 allowProvisioningUpdates
라는 옵션이었다. 해당 옵션은 xcodebuild
가 Apple Developer 서버와 통신하여 필요한 프로파일과 인증서를 생성하고 업데이트 해주는 옵션이다. 하지만 어떠한 이유로 인증서를 생성하려고 할 때 에러가 발생하여 아케이빙이 중단되는 문제가 발생했다.
어떻게 해결하나
카탈리나가 소개되면서 추가된 기능 중 하나가 Catalyst 인데, iPad 용으로 만들어진 앱을 macOS 용으로 쉽게 포팅 할 수 있게 만들어 주는 기술이다. 이 기술이 도입 되면서 달라진 것이 있는데, 기존에 사용하던 iOS 앱 인증서 대신 Apple 개발자 인증서와 키를 따로 사용해야 한다는 것이다.
해당 인증서와 키는 Xcode 내에서 아카이빙 후 배포 과정을 거치면서 생성하게 되는데, CLI 에서는 생성하는 과정을 거치지 않기 때문에 인증 에러가 발생하게 되고 새로운 배포용 프로파일을 생성할 수 없게 된다.
이 문제를 해결하는 방법은 위에서 말했듯 Xcode 상에서 배포 작업을 한번이라도 해주고 나면 Apple 개발자 인증서가 생기면서 CLI 에서 빌드가 가능한 상태가 된다.
결론
이번 이슈를 계기로 역시 회사에서 쓰는 개발 머신은 OS 업그레이드가 있어도 최대한 미루는 게 낫다는 걸 다시 한번 깨우치게 되었다. 혹시라도 같은 문제로 골머리를 썩고 있을 앱 개발자들에게 도움이 되길 바란다.
참고자료
StackOverflow - Xcode 11 Error Exporting IPA No profiles for 'my.bundle.id' were found