Xcode Cloue Beta 튜토리얼 (1) - https://gogo-ios.tistory.com/
안녕하세요 ◠‿◠ 고고입니다.
이 편에서는 Worflow가 성공하도록 설정하겠습니다.
저번 편에서 master 브랜치를 첫번째 빌드로 정했더니, Fail이 떴습니다.
XcodeGen을 사용하느라 .xcodeproj를 깃허브에 올리지 않아서 .xcodeproj가 없어서 발생한 오류입니다.
이건 조금 후에 고치고, 다른 기능들을 살펴보겠습니다.
Product -> Xcode Cloud에서 빌드 보기, 시작하기 등등의 기능이 더 보입니다.
App Store Connect에서도 Xcode Cloud를 볼 수 있습니다.
이제 오류를 해결해보겠습니다.
우선 이 오류를 고치려면 CI/CD를 하기 전에 스크립트를 실행해야 합니다.
xcodegen을 실행하는 스크립트요.
이를 위해 커스텀 빌드 스크립트를 쓰는 애플문서를 보았습니다.
https://developer.apple.com/documentation/xcode/writing-custom-build-scripts
ci_post_clone.sh - 클론 후 액션
ci_pre_xcodebuild.sh - xcodebuild 전 액션
ci_post_xcodebuild.sh - xcodebuild 후 액션
저는 클론 후 .xcodeproj를 만드는 과정이 필요해 프로젝트 아래 ci_scripts 폴더 아래에 ci_post_clone.sh을 만들었습니다.
❗️타겟을 설정하면 안됩니다! ❗️
생성하면 이렇게 생겼습니다. 여기에 필요한 작업들을 작성해주면 됩니다.
또 쉘에서 환경 변수를 사용할 수 있습니다. Xcode에 원래 있는 환경 변수들은 https://developer.apple.com/documentation/xcode/environment-variable-reference 이 곳을 참고해주세요!
#!/bin/sh
if [[ -n $CI_PULL_REQUEST_NUMBER ]];
then
echo "This build started from a pull request."
# Perform an action only if the build starts from a pull request.
fi
커스텀 환경 변수는 Workflow의 Environment 부분에서 추가/삭제할 수 있습니다.
저는 모종의 이유로 AWS access key가 필요해서 Secret 박스를 체크하여 추가하였습니다.
그렇게 환경변수도 설정한 후 깃허브에 ci_post_clone.sh을 커밋하고 결과를 기다리는 중입니다. github actions를 썼을 때보다 더 오래 걸리네요.
깃허브에도 뜨네요.
우선 결과는 실패했습니다. 슬랙으로 알람이 잘 오네요.
깃허브에서도 실패했다고 뜹니다.
에러가 아래처럼 표시되지만, 안타깝게도 Xcode에서는 복사가 되지 않아 저는 App store connect에서 앱의 Xcode Cloud에 들어가서 오류 메세지를 복사해서 오류를 고쳤습니다.
쉘과 프로젝트를 잘 수정하여 성공하게 된다면 이렇게 보입니다. 빌드 목록에서도 잘 뜨고 Testflight에도 잘 올라간 것을 확인하였습니다!
이상으로 튜토리얼을 마칩니당
후기
- Xcode에서 제공하는 툴이다보니 편하긴 편함.
- 러닝커브가 적음.
- 빌드 넘버가 똑같다면 가장 최신거에 +1 해서 자동으로 고쳐진다!
- Github Actions + Fastlane에 비하면 아카이브 시간이 2~3배정도 더 걸림.
- fastlane match같은 인증서 동기화 기능은 없나..? 싶음.
'Xcode' 카테고리의 다른 글
[Xcode Cloud] Failed to prepare build for App Store Connect (0) | 2021.12.08 |
---|---|
소스 컨트롤 제공업체와 Xcode Cloud의 연결이 완료되지 않았습니다. (0) | 2021.12.07 |
Xcode Cloud Beta 튜토리얼 (1) (0) | 2021.12.07 |
.xcodeproj란? (0) | 2021.11.09 |
[boringssl] boringssl_metrics_log_metric_block_invoke(144) Failed to log metrics (0) | 2021.11.06 |
댓글