sookim-1

번호 : 027, 작성일자: 2024-08-06

2024.07.29 ~ 2024.08.05

⚙️ CocoaPods → SwiftPM


의존성관리도구로 CocoaPods을 사용 중인 프로젝인 경우 Tuist를 도입을 생각 중이라면 SwiftPM이 작업하기 수월하고 빌드시간단축도 되기 때문에 장점을 고려하면 Migration을 할 수 있다.

일단 CocoaPods에서 SwiftPM으로 전환한다면 프로젝트에서 설치된 Pod과 Product를 정리한다.

그리고 발생하는 몇몇 상황에 대비해야한다.

  1. Swift Package에 설치되는 의존성버전들이 충돌되는 경우

    🔗 socket-cluster 라이브러리는 업데이트가 지속적으로 되지 않아서 내부 Test타겟에서 RxSwift버전이 낮아 라이브러리 설치가 되지않았다.

    그래서 🔗 Test타겟을 제거한 Repository로 설치했다.
  1. SwiftPM을 지원하지 않는 라이브러리가 있는 경우

    🔗 NaverMap iOS SDK는 SwiftPM을 지원하지 않아서 검색 도중 🔗 지원하는 Repository로 설치했다.

모든 Swift Package를 설치한 후 추후 작업을 위해 Package Collection을 생성했다.

Package Collection

Package Collection을 생성할 때 🔗WWDC에 설명이 잘되어 있었지만 서명을 추가하는 부분이 복잡했다.

  1. Swift Package Collection Certificate를 발급한다.
  2. 키체인에 등록 후 개인키 .p12 파일을 .pem으로 openssl로 변환한다. (openssl이 1버전대라면 그대로 사용이가능하지만 3버전대라면 -legacy 옵션을 추가한다.)
  3. 중간인증서와 루트인증서와 함께 package-collection-sign 명령어를 실행한다.

SwiftPM Migration 작업 순서

  1. CocoaPods, Pod 관련 파일들을 제거했다.
  2. 🔗 [R.Swift라이브러리](https://github.com/mac-cain13/R.swift)를 사용하는 경우 SwiftPM에서는 R.generated.swift를 적용하는 Build Script를 제거한 후 Swift Package Build Tool Plugin으로 변경했다.
  3. Firebase Crashlytics dSym을 업로드하는 빌드스크립트를 SwiftPM에 맞도록 변경했다.
  4. Objective-C 라이브러리를 사용하지 않는 경우 Bridging-Header.h를 제거했다.
  5. License Plist 라이브러리를 설치한 SwiftPM으로 업데이트했다.

📃 이력서 피드백


작성한 이력서에 대해 동료에게 피드백을 받았다.

정리

  • 간단소개글 및 자기소개는 문장의 느낌으로 작성한다.
  • 도메인을 이해한 사람만 아는 용어는 자제한다.
  • Udacity - Nano Degree 강의들은 도움이 된다.
  • 개발자기술면접노트 라는 최근 나온 도서가 도움이 된다.

🙋🏻‍♂️ 기타 사항


  1. Bitbucket은 Cloud와 DataCenter로 나누어지는데 Cloud는 SaaS 제품이고, DataCenter는 설치형제품이다. 각종 제공되는 기능이 다른 부분들이 있다.
  2. 상용한글은 2350자로 구성되어있다.
  3. Github gist 같은 기능을 Bitbucket에도 Snippet이라고 있다. gist는 public으로 전환 후에는 secret으로 변경이 되지 않는다.
태그: