Develop/Flutter

[Flutter 플러터] IOS 앱스토어 배포를 위해 Xcode Cloud 빌드 시 에러 수정

issuemaker99 2024. 8. 23. 22:42
728x90

앱스토어에 내 앱을 배포한다는 부푼 기대감으로 개발자계정도 큰맘먹고 결제하고 appstoreconnect 사이트에 접속해서 앱등록을 시작했습니다.

https://appstoreconnect.apple.com

 

https://appstoreconnect.apple.com

 

appstoreconnect.apple.com

 

Xcode Cloud 메뉴에 들어가 빌드를 시작했는대... 빌드 실패에 에러가 빵빵나서 너무나~~ 당황했어요

could not find included file 'Generated.xcconfig' in search paths
Release.xcconfig:2
오류
Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-input-files.xcfilelist'
오류
Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-frameworks-Release-output-files.xcfilelist'
오류
Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-resources-Release-output-files.xcfilelist'
오류
Unable to load contents of file list: '/Target Support Files/Pods-Runner/Pods-Runner-resources-Release-input-files.xcfilelist'

 

1) ios/ci_scripts/ci_post_clone.sh 쉘스크립트 파일을 생성합니다.

Project Navigator 에서 Runner 를 우클릭 하고 [New Group] 을 클릭 합니다.

그리고 ci_scripts 를 입력해서 생성 합니다.

 

생성한 ci_scripts 폴더를 우클릭해서 [New File...] 을 클릭 합니다.

 

그리면 추가할 파일을 선택하는 창이 뜨고 오른쪽 상단 검색창에 sh 만 입력해도 Shell Script 파일이 나옵니다

Shell Script 를 선택하고 [Next] 를 클릭 합니다

 

파일명을 ci_post_clone.sh 로 입력하고 Taegets 도 체크 합니다.

[Create] 를 클릭해 파일을 생성 합니다.

 

생성한 파일에 아래 내용을 입력해 줍니다.

#!/bin/sh

# Fail this script if any subcommand fails.
set -e

# The default execution directory of this script is the ci_scripts directory.
cd $CI_PRIMARY_REPOSITORY_PATH # change working directory to the root of your cloned repo.

# Install Flutter using git.
git clone https://github.com/flutter/flutter.git --depth 1 -b stable $HOME/flutter
export PATH="$PATH:$HOME/flutter/bin"

# Install Flutter artifacts for iOS (--ios), or macOS (--macos) platforms.
flutter precache --ios

# Install Flutter dependencies.
flutter pub get

# Install CocoaPods using Homebrew.
HOMEBREW_NO_AUTO_UPDATE=1 # disable homebrew's automatic updates.
brew install cocoapods

# Install CocoaPods dependencies.
cd ios && pod install # run `pod install` in the `ios` directory.

exit 0

 

2) 생성한 ci_post_clone.sh 쉘스크립트 파일에 실행 권한을 줍니다.

파일을 생성했으니 실행할 수 있는 권한을 줘야 합니다

콘솔로 프로젝트 폴더로 이동하고 permission 권한을 줍니다.

git add --chmod=+x ios/ci_scripts/ci_post_clone.sh

 

3) Xcode Cloud 워크플로우를 수정 합니다.

Report Navigator 로 이동해서 Cloud 를 클릭 합니다.

그러면 appstoreconnect 에서 등록하고 연결한 내 앱이 나옵니다. 

Default 를 우클릭하고 [Edit Workflow...] 를 클릭 합니다.

이건 appstoreconnect 사이트에서 해도 관계 없습니다. 어디서 해도 동기화가 됩니다.

 

Branch Changes 메뉴로 이동하고 아래 모습처럼 Custom Conditions 를 똑같이 만들어 줍니다.

 

이제 다시 떨리는 마음으로 빌드를 하면.....

정상적으로 빌드가 성공 합니다.

 

 

[참고문서]

https://docs.flutter.dev/deployment/cd

 

Continuous delivery with Flutter

How to automate continuous building and releasing of your Flutter app.

docs.flutter.dev

 

 

LIST