[iOS] Deployment Target 을 낮춰 Archive 했을 때 에러 대응

naljin
5 min readJul 30, 2019

--

얼마전 올린 각시탈 프로젝트가 리젝을 먹었다. 이유는 5.5 inch 디바이스 해상도에 대응하는 스크린샷 파일에 XR 이미지를 올려서 ㅎ 다시 작업해야지 디자이너 슨생님 화이팅!

Issue

그렇게 리젝먹은 내 앱을 살펴보다가 기기 요구사항에 최소 iOS 버전이 12.2로 되어있는 것을 확인했다.

‘아…….아직 내 친구도 10.x 대 쓰는 것 같던데….. 12.2 쓰는 사람이 얼마나 될까…’ 하고 처음에 9.0 까지 낮춰버리니 Kingfisher 라는 라이브러리의 최소 사양이 10.0 이라며 에러가 떴다. 그래서 10.0으로 바꾼 결과는?

ㅇㅖ 에러~~ 오잉? 여기서 KoreanGuardians는 내 프로젝트 이름인데.. 빌드도 잘 되는데 왜 아카이브하는데 문제가 생길까..! 웃긴건 11.0 이상으로 아카이브하면 또 잘된다는 것!

프로젝트를 이리저리 살펴보다가 Pods에도 Deployment Target 설정이 있는걸 발견했다. 이것 때문인가? 하고 똑같이 10.0으로 내려줬는데 안됐다. 이제부턴 정말 구글링뿐이야..!

공부? 아니 구글링

Trouble Shooting

저 첫번째로 뜨는 에러인 ‘Framework not found ~~’ 로 검색을 해봤을때 몇몇 구글링 답변과 결과를 간단히 말해보자면,

  1. DerivedData를 지워라 -> 안됐구여
  2. 프로젝트를 클린 시켜라 -> 안됩니다
  3. Podfile에서 platform :ios, '9.3' 이런식으로 target 을 명시해라 -> 예 안됩니다
  4. .xcworkspace 파일 대신 .xcodeproj 열어서 빌드한거 아니냐 -> 아니구여
  5. 빌드 세팅에서 특정 User Defined Setting을 추가해봐라 (무슨 설정값이었는지는 기억이 안난다 ㅠ) -> 안됐읍니다

무엇보다 저 질문글들은 외부 라이브러리에 관한 질문글이었다. 하지만 저의 에러는 라이브러리가 아니라..제..프로젝트 파일에서 나는걸여?

그러다가 제목부터 ‘이거다' 싶은 글을 발견했다.

두번째 답변이 채택도 되고 Awesome solution, Excellent answer 이런 댓글이 달려있길래 따라해봤다. 결과는? Awesome answer!

사실 영어에 익숙하다면 그냥 저 링크 들어가서 따라하면 된다. 심지어 엄청 자세하고 쉬운 글로 설명되어있다. 하지만 난 한글이 읽기 편하니까 다른 사람들도 쉽게 볼 수 있게 해석해보겠다. (사실 그전에 영어로 구글링해서 검색 결과에 내 글은 안나올것 같긴 하지만 ㅎ)

Solution

  1. 루트 폴더의 구조는 다음과 같다
root
|- <ProjectName>
|- <ProjectName>.xcodeproj
|- <ProjectName>.xcworkspace
|- <ProjectName>Tests
|- Podfile
|- Podfile.lock
|- Pods

나같은 경우에는 이렇게 <ProjectName>Tests가 없거나 몇몇 파일이 더 있었지만 크게 이런 구조면 된다

2. Podfile 안에 있는 내용들을 우선 복붙해 놓은 후에 해당 파일들을 지운다

  • Podfile
  • Podfile.lock
  • Pods Folder

3..xcodeproj 파일을 연다 (파란색 폴더!! 하얀색 폴더(.xcworkspace) 아님니다 선생님덜!)

4. Xcode 안에 아래의 구조를 갖고 있는 Pods 폴더를 삭제한다

Pods
|- Pods-<ProjectName>.debug.xconfig
|- Pods-<ProjectName>.release.xconfig

5. Xcode를 닫고 해당 명령어를 실행한다

pod init && pod install

6. Podfile을 열고 복사해놨던 이전 Podfile내용을 붙여넣는다

7. 저장 후 해당 명령어를 실행한다

pod install

8. .xcworkspace 파일을 연다 (하얀색 폴더!! 파란색 폴더(.xcodeproj) 아님니다 선생님덜!)

9. 완료!

Still..

그래도 왜 Deployment Target이 10.x 에서는 안되고 11.x 이상에서는 됐는지는 아직 잘 모르겠다. 왜 저 방법이 해결책으로 먹힌건지..? 아는 분은 메일(rkdthd1234@naver.com) 주시면 감사하겠습니다!

--

--

No responses yet