관리 메뉴

김종권의 iOS 앱 개발 알아가기

[Xcode] 하나의 프로젝트에 여러 프레임워크 설정, 프로젝트 파일 구성 (Main / Domain / CommonExtension / Pods) 본문

Git, CocoaPods, Xcode, Shell

[Xcode] 하나의 프로젝트에 여러 프레임워크 설정, 프로젝트 파일 구성 (Main / Domain / CommonExtension / Pods)

jake-kim 2020. 11. 14. 09:54

하나의 Project에 프레임워크와 pods추가 방법

  • 구성: 메인 앱은 MyApp이고 나머지는 framework로 추가
    MyApp.xcworkspace를 만들고, 하위에 MyApp.xcodeproj파일, Domain프레임워크, pods프레임워크 추가
  • 프로젝트의 루트가 될 폴더 추가

  • 주 프로젝트 파일이 될 ".xcworkspace"파일 생성: 아무 프로젝트 실행 -> "ctrl + cmd + N"하여 생성 (이름은 위 루트 폴더와 동일하게 할 것)

생성 완료

  • 위 파일 실행: 아래처럼 비어있는 .xcworkspace파일 확인

  • 메인 프로젝트가 될 .xcdeproj파일 생성(이름은 위에서 정한 이름과 동일하게 할 것): "shift + cmd + N"
    단, 아래 2번 째 사진과 같이 Add to와 Group설정을 해야되는 것을 잊지 말것

Add to, Groupt설정 주의

  • 생성된 프로젝트 확인

  • 프레임워크 추가: Domain.xcworkspace
    "shift + cmd + N" -> "framework"클릭 후 Next
    단, 아래 3번 째 사진과 같이 Add to와 Group설정에 주의

주의: Group이 잘못 설정 되어있음 -> 아래 사진처럼 되어야함
그룹이 잘 설정된 경우
정상적으로 추가된 모습

  • Main프로젝트에 (MyApp) 위에서 만든 Domain 프레임워크 추가

  • 메인 프로젝트 MyApp에서 Domain프레임워크가 import되는지 확인

완성

프로젝트 별 Cocoapod의존성 관리

  • 프로젝트 root로 가서 아래 코드 실행
$ touch podfile
  • podfile을 열어서 아래와 같이 작성
    주의: 상단에 workspace, project 패스를 기입해줘야 함

$ pod install
  • MyApp.xcworkspace파일을 열어서 import하여 설치 되었는지 확인

  • Configuration을 나눌 경우 (debug, alpha, release)주의: alpha를 메인 프로젝트에 추가하는 경우, Domain, CommonExtension모두 alpha를 추가해누어야 나중에 빌드오류가 발생하지 않음

bitcode오류 방지

  • cocoapods으로 받은 프레임워크 중에 bitcode를 지원하지 않는 것이 존재하면, acrive 시 오류 발생
  • 프로젝트, 프레임워크 모두 "Enable Bitcode"를 No라고 설정하는 것이 안전한 방법

* 프로젝트에서 archive하는 경우 아래 화면에서도 설정 가능 "Rebuild from Bitcode"

 

Comments