Xcode 14.3 업데이트 후 빌드 에러

BK·2023년 4월 28일
0

1. CocoaPods Build Target Issue 해결법

얼마전에 Xcode를 14.3으로 올리고 나서 기존 프로젝트를 빌드하려고 하니 오류가 났다.
구글링을 해보니, CocoaPods 모듈들 Build Target을 잡지 못해 생기는 오류란다.

1) Podfile에 Build target setting 구문 추가

target 'xxxxxx' do
  pod 'yyyyyyy'
  pod 'zzzzzzz'
  .....
  
  post_install do |installer|
    installer.generated_projects.each do |project|
      project.targets.each do |target|
          target.build_configurations.each do |config|
              config.build_settings['IPHONEOS_DEPLOYMENT_TARGET'] = '11.0'
           end
      end
    end
  end
  
end

2) pod install 수행

3) 이제 Run을 돌려 Simulator나 iPhone에 돌려보면 잘된다....

2. CocoaPods Archive Issue 해결법

열심히 코드를 수정하고 배포하려고 하는데 이번에는 Archive build 에서 말썽이 생겼다.
역시나 CocoaPods과 Xcode간의 연동 이슈라고 한다...

rsync error: some files could not be transferred (code 23) at /AppleInternal/Library/BuildRoots/97f6331a-ba75-11ed-a4bc-863efbbaf80d/Library/Caches/com.apple.xbs/Sources/rsync/rsync/main.c(996) [sender=2.6.9]
Command PhaseScriptExecution failed with a nonzero exit code

1) Pods-xxxxx-frameworks.sh 수정

  • 프로젝트 경로 > Pods > Target Support Files > Pods-(project명) > Pods-(프로젝트명)-frameworks.sh
  • 저 파일을 따로 열어서 44번 라인에 있는 문구를 수정한다.
# source="$(readlink  "${source}")"
source="$(readlink -f "${source}")"

  • "-f" 명령어 옵션 은 원본의 절대 경로를 출력하는 옵션이라고 한다... 현재 Xcode는 pod 경로 설정이 이상하게 되어 있어서 이슈가 생긴듯 하다.

    심볼릭링크가 연결되어 있는 원본파일을 찾는 명령어
    -f option : symbolic link 원본의 절대 경로를 출력합니다.
    $ readlink -f profile.sh
    /home/ec2-user/.../profile.sh
    응용
    profile.sh
    ABS_PATH=$(readlink -f $0)
    echo ABS_PATH
    chmod +x profile.sh # 실행 권한 부여
    ./profile.sh # 스크립트 파일 실행
    => 현재 profile.sh 의 절대경로 를 반환합니다.

2) Archive 이슈 해결

profile
k-힙합을 사랑하는 개발자

2개의 댓글

comment-user-thumbnail
2023년 5월 2일

이게 웃긴게 -f 옵션이 Xcode 14.2에서는 빌드 실패를 하게 만드는 원인이더라고요;

1개의 답글