rsync error: some files could not be transferred (code 23) Command PhaseScriptExecution failed with a nonzero exit code

I tried to connect flutter project to my iPhone, but suddenly this error showed up after adding Google AdMob. I've already tried keychain solution(Xcode 10.2.1 Command PhaseScriptExecution failed w...

stackoverflow.com

출시된 앱의 업데이트를 위해 빌드하다가 마주한 오류다. 스택오버플로우에서 찾아보니 최근에 진행된 xcode 14.3 업데이트로 인해 발생한 오류이다. 

 

해결법은 간단하게도 해당 프로젝트의 cocoadpods 디렉터리 내에 있는 frameworks.sh 파일 속 "readlink" 명령어를 "readlink -f" 라는 옵션명을 덧붙이면 해결이 된다. 본인의 경우 "프로젝트 디렉토리/Pods/Target Support Files/Pods-프로젝트명" 위치에 "Pods-프로젝트명-frameworks.sh" 이름으로 파일이 있었다.

 

readlink 명령어에 대해 궁금해져서 찾아보았더니 유닉스 명령어로, 심볼릭 링크의 값을 출력하는 명령어이다. 7가지 옵션이 있는 것으로 나오는데, 각 옵션과 역할은 다음과 같다.

  • -f, --canonicalize : 심볼릭 링크의 원본 위치를 출력한다.
  • -n, --no-newline : 새로운 라인은 출력하지 않는다.
  • -q, --quiet, : 메시지를 출력하지 않는다.
  • -s, --silent : 대부분 에러 메시지를 출력하지 않는다.
  • -v, --verbose : 상세한 정보를 출력한다.
  • --help : 사용법을 출력한다.
  • --version : 버전 정보를 출력한다.

-f 명령어, 즉 심볼릭 링크의 원본 위치 참조를 통해 해결된 것을 보니 xcode 14.3 업데이트 항목에 cocoapods와의 연동과정에 필요한 경로 변경이 일어나 발생한 오류로 추정이 된다.

 

혹시나 해서 -f 명령어를 지우고 cocoapods를 업데이트해보았는데도 동일한 오류가 발생한 것을 보니 아직 cocoapods 측의 업데이트 대응이 진행 중인 것으로 보인다.

+ Recent posts