Making Framework

최완식·2023년 1월 26일
0

Xcode Project

목록 보기
26/26
post-thumbnail

나뉘어진 프로젝트, 따로 관리되는 프레임워크. 이런 상황에서 새로운 프레임 워크를 만들어 넣는 방법을 알아본다.

프로젝트 상황

  • 일단 내가 처한 상황부터 간략하게 소개하겠다.
  • 거대해지는 앱의 경우에는, 하나의 단일 프로젝트로만 관리하는 것이 어렵다.
  • 즉, 프레임워크로 나누는 것은 당연하고 나뉘어진 프레임워크를 묶는 상위 집합의 역할을 하기 위해 프로젝트를 새로만드는 경우도 많다.
    • 애초에 CocoaPod이 동작하는 방식이 이거다.
  • 그래서 앱에 관련된 프로젝트와, 특정 기능을 수행하는 프로젝트가 나뉘고, 그 안에서 타겟들이 다시 나뉜다고 생각해보자.
  • Feature Project로 나눈 프레임워크의 경우 App에서만 사용하지만 의미론적으로 나눈 것이기 때문에
  • App에서 사용하는 각 Signing profile을 그대로 바라보아야 한다.
  • 이와 같은 상황에서 Feature Project에 새로운 프레임워크를 만들 것이다.
  • 해당 Profile 설정은 각 프로젝트마다 다를 것이기 때문에, 간략하게 설명만 적어두도록 하겠다.

방법

  1. 프레임워크를 넣고 싶은 project 선택
  2. 프로젝트 안의 특정 타겟 선택
  3. Signing & Capabilites 선택
  4. Bundle identifier 확인 (reverse domain으로 되어 있을 가능성 높음)
  5. Target 왼쪽 아래의 + 버튼 클릭

  1. Framework 선택

  1. 아까봤던 Bundle Identifier의 규칙대로 프레임워크 이름 작성

  2. 프레임워크가 생성됨

  3. 해당 프레임워크가 다른 어떤 모듈을 가져와서 사용할지 결정해야 함

  4. 이 과정에서 모듈의 참조 방향은 단방향으로 구성하는 것이 좋음. 상호 참조는 좋지 않음

  5. 생성된 프레임워크 타겟 선택 > General > Frameworks and Libraries 에 사용할 모듈을 추가함

  1. Feature Project에서 새로만든 모듈은 끝남

  2. 하지만 App Project에서도 Feature Project안에 있는 모듈을 사용할 수 있다는 것을 명시해 줘야함

  3. 마찬가지로 앱 프로젝트 > 타겟 선택 > General > Frameworks and Libraries 에 사용할 모듈을 추가함

  4. 이제 특정 로직을 프레임워크로 뗐으니, 해당 프레임워크도 각기 다른 설정을 적용해주어야 한다. (분리해서 사용할 용도이므로)

  5. 해당 프레임워크가 다른 의미를 띄지 않는 한, App에서의 설정을 그대로 따라가는 것이 일반적이다.

  6. 이에 App쪽을 바라보고 있는 특정 프레임워크의 Configuration을 복사하여 추가해준다. (총 5개)

  7. 새롭게 만들어진 프레임워크의 위치가 feature라면, 이는 실제 앱이 있는 project와 떼어진 환경이다.

  8. 그렇기 때문에, PodFile에 해당 프레임워크의 위치를 명시해주어야 한다.

  9. 추가적으로 외부 프레임워크가 있다면 해당 의존성을 정의해준다.

profile
Goal, Plan, Execute.

0개의 댓글