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설정을 해야되는 것을 잊지 말것


- 생성된 프로젝트 확인


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






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

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

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

- 의존성 설치 (단, bundler를 이용해서 cocoapods을 사용하려면 pod install x)
$ pod install
- MyApp.xcworkspace파일을 열어서 import하여 설치 되었는지 확인

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

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



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