본문 바로가기
개발 이야기

[Xcode Cloud] The bundle version must be higher than the previously uploaded version.

by Jimmy_iOS 2023. 12. 10.

문제

Xcode cloud로 테스트플라이트를 자동 배포하기 위해서 아카이빙을 진행하는 도중 아카이빙에서 문제가 발생했습니다.

원인은 번들 버전이 현재 업로드 되어있는 버전보다 낮기 때문이라고 하는데요

현재 업로드 되어있는 테스트플라이트 버전을 보면 다음과 같았습니다

Bundle Version: 1.0.0

Build Version: 61

그래서 Build Version을 63으로 올리고 git push를 진행해봤습니다

또 Fail…

Running ci_post_clone.sh script failed (exited with code 1)

이건 또 어떤 에러일까요…

ci_post_clone.sh가 무엇인가 하면

빌드되기 전에 Xcode Cloud 컴퓨터에서 Cocoa Pod을 설치해주기 위해

미리 작성한 스크립트 파일입니다.

스크립트 파일은 정상적으로 있는데 왜 때문인지 오류가 발생했습니다.

혹시 모르니 한번 더 빌드를 진행시켜봤습니다

원인은 그냥 서버에서 빌드에 실패했던것이었습니다.

결국 다시 원점으로 돌아와 번들버전이 낮다는 문제…

원인

폭풍 검색을 통해 원인을 분석해보니 Xcode Cloud를 통해 빌드를 진행하면

Xcode Cloud에서 자동으로 Build Version을 1부터 시작해서 1씩 올려주게 됩니다.

그러나 수동으로 빌드 버전을 설정해 줘서 현재 62 버전인데 Xcode Cloud로 빌드를 진행하면 빌드 번호가 1부터 시작되기 때문에 빌드 번호가 낮다는 오류가 발생합니다.

그렇다면 빌드 버전이 아닌 번들 버전을 2로 올려보고 xcode cloud를 실행해보면 될까요?

드디어 성공했습니다.

하지만 수상한 점이 있습니다.

빌드 번호를 1로 설정했는데 TestFlight엔 빌드 번호가 19로 되어있습니다.

아래 Xcode에서 Xcode Cloud 탭에서 보면 빌드 번호가 19로 나와있습니다.

제가 Xcode Cloud를 19번 실행시켰기 때문에 빌드번호가 1에서 19까지 자동으로 올라가 있는 상황이었습니다.

일반적인 상식으로 생각해보면 번들 번호가 2로 되어있고

빌드 번호를 1로 설정하고 Xcode Cloud를 실행하게 되면,

빌드 번호가 1부터 시작해서 빌드를 실행할 때마다 1씩 증가되어야 한다고 생각합니다.

빌드 번호를 수동으로 설정하는 방법

앱스토어 커넥트 → Xcode Cloud → 설정 → 빌드번호 설정

위의 경로로 들어가보면 다음 빌드번호를 설정할 수 있는 메뉴를 제공합니다.

현재 테스트플라이트의 최신 빈드 번호가 61번이기 때문에 다음 빌드번호를 62번으로 설정하고

Xcode Cloud에서 빌드를 실행시켜 보겠습니다.

Xcode의 Xcode Cloud탭에서 정상적으로 빌드 번호가 62번으로 빌드된 것을 확인할 수 있습니다.

다음으로 앱스토어 커넥트의 테스트 플라이트의 빌브 버전이 62로 정상적으로 배포된 것을 확인할 수 있습니다.

그리고 다시 앱스토어 커넥트의 다음 빌드번호를 확인해보면

다음과 같이 다음 빌드 번호에 +1이 되어있는 것을 확인 할 수 있습니다.


Uploaded by N2T