DEV Community

Cover image for Flutter iOS 출시 빌드: 프로비저닝 프로파일 업데이트 실패 해결기
바람의평온
바람의평온

Posted on

Flutter iOS 출시 빌드: 프로비저닝 프로파일 업데이트 실패 해결기

Flutter iOS 출시 빌드: 프로비저닝 프로파일 업데이트 실패 해결기

Flutter iOS 출시 빌드: 프로비저닝 프로파일 업데이트 실패 해결기

안녕하세요, 코딩아빠입니다. 오랜만에 주말 짬을 내어 지난주 Flutter iOS 앱 출시 빌드 과정에서 겪었던 한 가지 경험을 메모처럼 정리해 봅니다. 이 글은 제가 실제로 부딪히고 해결한 기록으로, 혹시 비슷한 문제를 겪는 분들에게 작은 실마리가 되기를 바랍니다. Flutter로 iOS 앱을 배포하려던 스크립트가 매번 프로비저닝 프로파일 업데이트 문제로 실패하는 상황이었는데, 결론부터 말씀드리면 xcodebuild 명령에 특정 옵션 하나를 추가해서 해결할 수 있었습니다.

이런 분께 — Flutter를 이용해 iOS 앱을 개발하고 배포하는 과정에서 서명 및 프로비저닝 관련 빌드 문제로 어려움을 겪는 개발자 · 난이도는 중급 정도

출시 빌드 스크립트가 멈춰선 순간

며칠 전, 힘들게 개발한 Flutter iOS 앱을 앱스토어에 배포하기 위해 출시 빌드 스크립트를 실행했습니다. 그런데 평소 잘 되던 빌드가 갑자기 멈춰 서는 겁니다. 터미널에는 프로비저닝 프로파일 업데이트 관련 오류 메시지가 계속해서 쏟아져 나왔습니다. 이전에 잘 되던 것이 갑자기 안 되니 당황스럽더군요. 처음에는 혹시 개발자 계정 문제인가, 아니면 Xcode 설정이 어딘가 꼬였나 하는 막연한 생각만 들었습니다. 급한 마음에 여러 설정을 뒤적여봐도 딱히 문제점을 찾을 수 없었습니다. 가족들 잠든 늦은 밤에 겨우 시간 내서 작업하는데, 이런 예상치 못한 문제에 부딪히면 정말 힘이 빠집니다.

막연했던 첫 삽질과 로그 분석

처음에는 Xcode GUI에서 수동으로 프로비저닝 프로파일을 업데이트해보거나, 프로젝트 설정을 다시 확인하는 등 여러 시도를 해봤습니다. 하지만 스크립트로 빌드를 돌릴 때마다 같은 오류가 반복되었죠. 문제가 발생하면 역시 로그를 꼼꼼히 봐야 한다는 걸 다시 한번 느꼈습니다. 수많은 빌드 로그 중에서 '프로비저닝 프로파일 업데이트 실패'와 관련된 구체적인 메시지들을 집중적으로 살펴보았습니다. 대부분 'Xcode가 프로비저닝 프로파일을 자동으로 업데이트할 권한이 없다'는 뉘앙스의 내용이더군요. 이 부분을 보면서 xcodebuild 명령 자체에 어떤 옵션이 필요하지 않을까 하는 가설을 세워봤습니다.

.ba-pc{display:none}.ba-mo{display:block}@media (min-width:768px){.ba-pc{display:block}.ba-mo{display:none}}

원인은 Xcode 빌드 시스템의 '묵묵부답'

로그를 자세히 들여다보니, Xcode 빌드 시스템이 자동으로 프로비저닝 프로파일을 업데이트하려고 시도하지만, 그 권한이 명시적으로 주어지지 않아 실패하고 있다는 것을 알게 되었습니다. 보통 Xcode GUI 환경에서는 개발자 계정이 로그인되어 있으면 이런 과정이 자동으로 처리되는 경우가 많습니다. 하지만 CI/CD 환경이나 스크립트를 통해 빌드를 진행할 때는 GUI의 '자동' 기능이 제대로 작동하지 않을 수 있습니다. 특히 빌드 시스템이 특정 프로파일을 업데이트하거나 새로 생성해야 할 때, 이러한 명시적인 허용 없이는 작업을 진행하지 못하도록 되어 있는 듯했습니다. 이 부분이 제가 놓치고 있던 핵심이었습니다.

명시적 허용, -allowProvisioningUpdates

해결책은 의외로 간단했습니다. xcodebuild 명령에 -allowProvisioningUpdates 옵션을 추가하는 것이었습니다. 이 옵션은 Xcode 빌드 시스템이 프로비저닝 프로파일을 자동으로 업데이트하거나 새로 생성하는 것을 명시적으로 허용해 줍니다. 특히 CI/CD 파이프라인이나 스크립트 기반 빌드 환경에서 이러한 자동화된 처리가 필요할 때 유용하게 사용될 수 있습니다. 이 옵션을 추가함으로써 Xcode가 필요한 프로파일을 개발자 계정 정보를 바탕으로 직접 업데이트할 수 있게 되는 것이죠. 아래는 제가 사용한 명령어입니다:

xcodebuild -workspace Runner.xcworkspace -scheme Runner -configuration Release -destination 'generic/platform=iOS' archive -allowProvisioningUpdates -archivePath build/Runner.xcarchive
Enter fullscreen mode Exit fullscreen mode

이 명령어는 Flutter 프로젝트의 Runner.xcworkspace를 아카이브하면서, 프로비저닝 프로파일 업데이트를 허용하도록 지시하는 역할을 합니다.

옵션 추가 후 성공적인 빌드와 배움

xcodebuild 명령에 -allowProvisioningUpdates 옵션을 추가한 후, 다시 iOS 출시 빌드 스크립트를 실행했습니다. 예상대로 더 이상 프로비저닝 프로파일 업데이트 관련 오류 메시지는 나타나지 않았고, 빌드는 성공적으로 완료되었습니다. 아카이브 생성 및 앱스토어 배포까지 순조롭게 진행되는 것을 보고 안도했습니다. 이번 경험을 통해 iOS 앱 배포 과정에서 발생하는 빌드 문제는 종종 Xcode의 서명 및 프로비저닝 설정과 관련이 깊다는 것을 다시 한번 깨달았습니다. 문제 발생 시 빌드 로그를 면밀히 검토하고, xcodebuild 명령의 다양한 옵션을 확인하여 해결책을 찾는 습관이 중요함을 느꼈네요.

이 글에서 다루는 것

  • Flutter iOS 출시 빌드 시 발생할 수 있는 프로비저닝 프로파일 업데이트 오류의 원인
  • xcodebuild 명령의 -allowProvisioningUpdates 옵션의 역할과 사용 방법
  • iOS 앱 배포 과정에서 빌드 로그를 분석하는 중요성
  • 자동 프로비저닝 업데이트가 필요한 상황에 대한 이해

끝으로

결국 이번 문제는 xcodebuild 명령에 작은 옵션 하나를 추가하는 것으로 해결되었습니다. iOS 앱 빌드와 배포 과정은 때때로 복잡하고 예측 불가능한 오류를 던져주지만, 로그를 꼼꼼히 살피고 관련 문서를 찾아보는 기본적인 원칙이 문제를 해결하는 가장 빠른 길임을 다시 한번 확인했습니다. 다음에 같은 문제가 발생하면 당황하지 않고 이 옵션을 먼저 확인하게 될 것 같습니다.

Top comments (0)