Carthage: 무엇인가, 분산형 의존성 관리자

저자: IT Sectr 게시일: 2026-02-12 읽는 시간: 8 분

Carthage는 Cocoa 프로젝트(iOS, macOS, watchOS, tvOS)를 위한 분산형 의존성 관리자로, 소스 코드에서 바이너리 프레임워크를 빌드합니다. CocoaPods와 달리 Carthage는 프로젝트를 자동으로 수정하지 않습니다 — 개발자가 빌드된 프레임워크를 수동으로 Xcode에 추가합니다. Carthage는 Swift로 작성되었으며, 의존성을 설명하기 위해 Cartfile을 사용하고 병렬 빌드를 지원합니다. GitHub 저장소에 따르면, Carthage는 15,000개 이상의 스타를 모았으며 Xcode 구성에 최소한의 간섭이 필요한 프로젝트를 위한 틈새 시장이지만 수요가 있는 도구로 남아 있습니다.

핵심 사항

  • Carthage는 분산형 의존성 관리자: 중앙 레지스트리 없음, 라이브러리가 Git 저장소에서 직접 연결됨
  • Cartfile은 의존성, 해당 버전 및 소스(Git, GitHub, GitLab)를 나열하는 구성 파일
  • 프레임워크 빌드carthage bootstrap 또는 carthage update로 수행 — Carthage가 저장소를 클론하고 .xcframework로 컴파일
  • Xcode 통합은 수동: 개발자가 빌드된 프레임워크를 General → Frameworks, Libraries, and Embedded Content에 추가
  • Cartfile.resolved는 Podfile.lock과 유사하게 의존성의 정확한 버전을 고정하여 빌드 재현성 보장
  • Carthage vs CocoaPods vs SPM: Carthage는 최대 제어를 제공하지만 더 많은 수동 작업 필요; CocoaPods는 모든 것을 자동화; SPM은 Xcode에 내장

Carthage란?

Carthage는 2014년 Swift 커뮤니티의 개발자들이 만든 분산형 아키텍처의 의존성 관리자입니다. Carthage는 중앙 사양 레지스트리를 사용하지 않습니다 — 각 라이브러리는 URL 또는 GitHub 이름을 통해 Git 저장소에서 직접 연결됩니다. Carthage는 소스 코드를 다운로드하여 바이너리 프레임워크(.xcframework 또는 .framework)로 빌드하고, 개발자에게 Xcode 프로젝트에 수동으로 통합할 준비가 된 아티팩트를 제공합니다.

Carthage의 아키텍처는 세 가지 구성 요소로 구성됩니다: CLI 도구 carthage, 구성 파일 Cartfile, 빌드된 프레임워크가 있는 Carthage/Build/ 디렉토리. Carthage와 CocoaPods의 주요 차이점은 .xcodeproj의 자동 수정이 없다는 것입니다. Carthage는 .xcworkspace를 만들지 않으며, 컴파일러 플래그를 구성하지 않고, Pods.xcconfig를 생성하지 않습니다. 개발자는 Xcode를 통해 프로젝트에 수동으로 프레임워크를 추가하여 통합 프로세스를 완전히 제어할 수 있습니다.

Carthage는 병렬 의존성 빌드를 사용하여 멀티코어 프로세서에서 프로세스를 크게 가속화합니다. 각 의존성은 별도의 대상으로 빌드되며, Carthage는 전이 의존성의 그래프를 자동으로 해결하여 올바른 순서로 빌드합니다. 커뮤니티 벤치마크에 따르면 Carthage는 최신 Mac에서 평균 30~60초 안에 15~20개의 의존성을 빌드하며, 이는 라이브러리가 많은 프로젝트의 경우 CocoaPods보다 빠릅니다. Carthage는 모든 Apple 플랫폼(iOS, macOS, watchOS, tvOS)을 지원하며, 버전 0.38+부터 시뮬레이터 및 Apple Silicon 기기 지원을 위한 유니버설 .xcframework를 빌드합니다.

Carthage 작동 방식

Carthage는 각 의존성의 Git 저장소를 클론하고, 지정된 버전(태그, 커밋 또는 브랜치)으로 전환한 후 xcodebuild를 실행하여 프레임워크를 빌드합니다. Carthage는 빌드 스킴에 따라 Xcode 프로젝트 유형(프레임워크, 동적 프레임워크, 정적 라이브러리)을 자동으로 판별합니다. 프로젝트에 여러 스킴이 있는 경우 Carthage는 기본 스킴(알파벳 순서로 첫 번째)을 사용합니다. 빌드 후 Carthage는 완성된 프레임워크를 Carthage/Build/에 복사하고 정확한 버전이 고정된 Cartfile.resolved 파일을 만듭니다. Carthage는 빌드된 프레임워크의 캐싱을 지원합니다 — 의존성에 변경 사항이 없으면 재빌드를 건너뜁니다.

Carthage의 전이 의존성은 Cartfile.resolved를 통해 처리됩니다: Carthage는 필요한 모든 의존성의 그래프를 구성하고 올바른 순서로 빌드합니다. 두 라이브러리가 동일한 타사 라이브러리에 의존하는 경우 Carthage는 한 번 빌드하여 두 라이브러리에 모두 사용합니다. Carthage는 특정 대상과 원인을 나타내는 빌드 오류를 보고하여 문제 진단을 간소화합니다.

Cartfile: 구조, 구문 및 예제

Cartfile은 Carthage 프로젝트의 의존성을 정의하는 Ruby 유사 구문(Cartfile 형식)의 구성 파일입니다. Cartfile은 프로젝트 루트의 .xcodeproj 옆에 위치합니다. Cartfile의 각 줄은 하나의 의존성(소스(Git URL, GitHub 저장소)와 버전)을 설명합니다. 구문은 태그, 커밋 및 브랜치를 통한 버전 고정을 지원합니다.

ruby
# 기본 의존성: Carthage
github "Alamofire/Alamofire" ~> 5.9
github "SnapKit/SnapKit" ~> 5.7
github "onevcat/Kingfisher" == 8.0.0

github "Owner/Repo" 지시문은 GitHub 저장소의 약식 형식입니다. Carthage는 자동으로 URL https://github.com/Owner/Repo.git을 구성합니다. GitLab, Bitbucket 및 기타 Git 호스트의 경우 전체 URL이 사용됩니다: git "https://gitlab.com/owner/repo.git". 버전 연산자: ~> 5.9(5.9에서 6.0까지 모든 버전, 6.0 제외), == 8.0.0(정확한 버전), >= 1.0(최소 버전). 특정 커밋은 github "owner/repo" "abc1234"로 고정할 수 있습니다.

전체 Cartfile 예제

Carthage는 다양한 구성을 위한 여러 디렉토리를 지원합니다: Cartfile(기본), Cartfile.private(게시되지 않는 내부 의존성용), Cartfile.resolved(자동 생성). 비공개 의존성은 테스트 프레임워크와 같이 개발 빌드에서만 사용되는 라이브러리에 유용합니다.

ruby
# Cartfile — 주요 의존성
github "Alamofire/Alamofire" ~> 5.9
github "SwiftyJSON/SwiftyJSON" ~> 4.0
github "realm/realm-swift" ~> 10.0

# 전체 URLGitLab
git "https://gitlab.com/company/internal-lib.git" == 2.1.1

# 개발 브랜치
github "marmelroy/PhoneNumberKit" "development"

githubgit은 Cartfile의 두 가지 소스 유형입니다. 전자는 GitHub 전용이며 자동으로 URL을 생성합니다. 후자는 전체 URL이 있는 모든 공개 또는 비공개 Git 저장소용입니다. 버전은 태그(== 2.1.1), 시맨틱 범위(~> 5.9), 브랜치 이름("development") 또는 커밋 해시("a1b2c3d")로 지정할 수 있습니다. 시맨틱 범위(~>)는 SemVer를 따르는 의존성에 권장되며, 업데이트 시 호환성이 깨지는 변경으로부터 보호합니다.

Cartfile.resolvedcarthage update 후 자동으로 생성됩니다. 전이 의존성을 포함한 모든 설치된 의존성의 정확한 버전을 고정합니다. 이 파일은 Git에 보관해야 합니다 — 이 파일이 없으면 다른 머신에서 carthage bootstrap 명령이 동일한 규칙으로 라이브러리를 빌드하지만 버전이 다를 수 있습니다. carthage outdated는 새 버전을 사용할 수 있는 오래된 의존성 목록을 표시합니다.

Carthage 설치 및 구성

Carthage는 Homebrew(macOS의 표준 패키지 관리자)를 통해 설치됩니다. 대체 방법: GitHub에서 빌드된 .pkg 설치 프로그램으로 설치하거나 소스에서 빌드. Carthage는 Xcode with Command Line Tools(xcodebuild 포함)가 필요하며, Apple Silicon Mac에서는 일부 레거시 의존성을 위해 Rosetta 2가 필요합니다.

bash
# 설치 Carthage를 통해 Homebrew
brew install carthage

# 버전 확인
carthage version

# .pkg에서 설치 (만약 Homebrew를 사용할 수 없을 경우)
# 다운로드: Carthage.pkg를 GitHub Releases에서 가져와 수동으로 설치

Carthage를 설치한 후, 프로젝트 초기화는 프로젝트 루트에 Cartfile을 생성하는 것으로 시작됩니다. Carthage에는 init 명령이 없습니다 — 파일은 텍스트 편집기에서 수동으로 생성됩니다. Cartfile을 의존성으로 채운 후, 개발자는 carthage bootstrap(Cartfile.resolved가 이미 있는 경우) 또는 carthage update(초기 설치 또는 업데이트)를 실행합니다. Carthage는 저장소를 클론하고, 프레임워크를 빌드하여 Carthage/Build/에 배치합니다.

Carthage 업데이트brew upgrade carthage를 통해 수행됩니다. 버전은 carthage version으로 확인합니다. 2025년 중반 현재 최신 안정 버전은 0.40으로, 기본 .xcframework 지원, 개선된 병렬 빌드 및 완전한 Swift 6 지원을 제공합니다. 버전 0.39부터 Carthage는 호환성 심 없이 레거시 .framework 빌드를 중단했습니다 — --use-xcframeworks를 명시적으로 지정하는 것이 좋습니다.

bash
# 업데이트: Carthage를 통해 Homebrew
brew upgrade carthage

# 특정 버전 설치
brew install carthage@0.39

# 전체 재설치
brew uninstall carthage && brew install carthage

참고: Carthage는 .xcworkspace를 만들지 않고 .xcodeproj를 수정하지 않습니다. CocoaPods와 달리 Carthage는 Xcode 구성의 완전한 제어를 개발자에게 맡깁니다. 즉, 의존성을 설치한 후 수동으로 프레임워크를 Xcode에 추가해야 합니다(«Xcode에 Carthage 프레임워크 통합» 섹션 참조). Carthage는 또한 각 의존성에 프레임워크 대상이 있는 Xcode 프로젝트 또는 워크스페이스가 포함되어야 합니다 — 그렇지 않으면 빌드가 실패합니다.

프레임워크 빌드: bootstrap 및 update

Carthage는 의존성 작업을 위한 세 가지 주요 명령을 제공합니다: bootstrap, updatebuild. carthage bootstrap은 기존 Cartfile.resolved에서 의존성을 빌드합니다 — CI 환경 및 프로젝트에 합류하는 개발자에게 권장됩니다. carthage update는 Cartfile.resolved를 최신 버전(Cartfile 제약 조건 준수)으로 업데이트하고 빌드를 수행합니다. carthage build는 버전을 저장하지 않고 지정된 모든 의존성을 빌드합니다.

bash
# 초기 설치(버전 업데이트)
carthage update --use-xcframeworks --platform iOS

# 고정된 버전으로 재빌드
carthage bootstrap --use-xcframeworks --platform iOS

# 하나의 의존성만 빌드
carthage build Alamofire --platform iOS

--use-xcframeworks 플래그는 Carthage에 레거시 .framework 대신 유니버설 .xcframework를 빌드하도록 지시합니다. 이는 시뮬레이터와 실제 기기 모두, 그리고 추가 스크립트 없이 Apple Silicon Mac을 지원합니다. --platform iOS 플래그는 빌드를 단일 iOS 플랫폼으로 제한하여, 특히 프로젝트에 크로스 플랫폼 라이브러리가 포함된 경우 프로세스를 크게 가속화합니다.

Carthage--cache-builds 플래그를 통한 병렬 빌드를 지원하여 이미 빌드된 프레임워크를 캐시합니다. 재빌드 시 Carthage는 Git 커밋 해시를 확인하고 코드가 변경되지 않은 경우 컴파일을 건너뜁니다.

명령작업
carthage updateCartfile.resolved 업데이트 및 모든 프레임워크 빌드
carthage bootstrap업데이트 없이 기존 Cartfile.resolved에서 프레임워크 빌드
carthage build버전 고정 없이 지정된 의존성 빌드
carthage outdated업데이트 가능한 의존성 목록 표시
carthage checkout빌드 없이 저장소만 클론

Xcode에 Carthage 프레임워크 통합

통합 Carthage 프레임워크를 Xcode에 통합하는 것은 4단계로 수동으로 수행됩니다. carthage update 또는 bootstrap을 실행한 후, 빌드된 모든 프레임워크는 Carthage/Build/iOS/(또는 해당 플랫폼)에 위치합니다. 개발자는 Xcode 프로젝트를 열고, 앱 대상을 선택하고, General → Frameworks, Libraries, and Embedded Content에 프레임워크를 추가합니다. 런타임 프레임워크(동적 라이브러리)의 경우 «Embed & Sign»을 선택해야 합니다 — 그렇지 않으면 앱이 시작 시 «dyld: Library not loaded» 오류와 함께 충돌합니다.

Carthage 정적 라이브러리의 경우 더 간단합니다 — 앱의 실행 파일에 직접 링크되므로 포함 단계가 필요하지 않습니다. 그러나 Carthage는 기본적으로 동적 프레임워크를 빌드합니다(명시적으로 구성된 정적 라이브러리 제외). 앱 크기를 최소화하는 것이 중요한 프로젝트의 경우 Xcode 설정을 통한 정적 링크가 권장됩니다.

추가 단계는 Build Phase → Run Script에 Input Files를 추가하는 것입니다. Carthage는 빌드된 프레임워크에서 시뮬레이터 아티팩트를 제거하는 스크립트(strip simulator architectures)가 필요합니다. 이 스크립트는 App Store 빌드에 필요합니다:

bash
# Run ScriptApp Store (strip simulator architectures)
FRAMEWORKS_DIR="${SRCROOT}/Carthage/Build/iOS"
for framework in "$FRAMEWORKS_DIR"/*.framework; do
  bash "$BUILD_DIR/src/scripts/strip-framework.sh" "$framework"
done

Carthage.xcworkspace 사용이 필요하지 않습니다 — 모든 의존성이 이미 바이너리 프레임워크로 빌드되어 있습니다. Carthage는 워크스페이스를 생성하는 CocoaPods와 달리 .xcodeproj와 직접 작동합니다. 이는 Carthage 의존성이 Xcode 프로젝트 구성을 변경하지 않기 때문에 버전 관리와 CI 설정을 간소화합니다. 유일한 변경 사항은 대상에 프레임워크를 추가하는 것이며, 이는 .pbxproj에 기록됩니다.

단계작업
1carthage update --use-xcframeworks 실행
2Carthage/Build/에서 General → Frameworks로 프레임워크 드래그
3동적 프레임워크에 Embed & Sign 설정
4시뮬레이터 아키텍처 제거를 위한 Run Script Phase 추가
5프로젝트 빌드 — 프레임워크가 자동으로 링크되어야 함

Carthage vs CocoaPods vs Swift Package Manager

Carthage, CocoaPodsSwift Package Manager(SPM)은 iOS 개발의 세 가지 주요 의존성 관리자입니다. Carthage는 분산형 접근 방식으로 두드러지며, CocoaPods는 중앙 집중식 레지스트리를 제공하고, SPM은 Apple의 내장 솔루션입니다. 이들 간의 선택은 프로젝트 요구 사항, 팀 규모 및 원하는 자동화 수준에 따라 다릅니다.

기준CarthageCocoaPodsSPM
아키텍처분산형중앙 집중식 레지스트리Xcode에 통합
구성 언어Cartfile(Ruby 유사)Podfile(Ruby DSL)Package.swift(Swift)
Xcode 통합수동(드래그 앤 드롭)워크스페이스 통해내장
전이 의존성자동자동자동
라이브러리 레지스트리없음(Git 저장소)Specs에 100,000+~65,000
리소스 지원아니오예(리소스 번들)예(Resources)
빌드 속도빠름(병렬)보통빠름
통합 제어완전자동자동

Carthage는 Xcode 구성에 최소한의 간섭이 필요하고 통합 프로세스를 완전히 제어해야 하는 프로젝트에 선택됩니다. Carthage는 작성자가 사용자에게 의존성을 독립적으로 빌드할 수 있는 자유를 제공하려는 오픈 소스 라이브러리 및 프레임워크에 이상적입니다. Carthage는 UNIX 철학(각 도구는 한 가지 일을 잘 수행)을 중시하는 개발자들 사이에서도 인기가 있습니다. CocoaPods는 자동화가 중요한 수십 개의 의존성이 있는 엔터프라이즈 프로젝트의 표준으로 남아 있습니다. SPM은 Xcode에 내장되어 있고 Apple이 적극적으로 개발하고 있기 때문에 새로운 프로젝트를 위한 선택입니다.

마이그레이션 관리자 간의 마이그레이션은 다른 접근 방식이 필요합니다. Carthage → SPM: Xcode에서 프레임워크 제거, Cartfile 삭제, File → Add Package Dependencies를 통해 Package Dependencies 추가. Carthage → CocoaPods: Carthage 프레임워크 제거, Podfile 생성, 의존성 추가 및 pod init && pod install 실행. Carthage에서 CocoaPods 또는 SPM으로 마이그레이션할 때 프레임워크를 수동으로 업데이트할 필요가 없어집니다 — 모든 의존성이 단일 명령으로 업데이트됩니다. Carthage는 공급업체 종속을 피하고 의존성 빌드의 투명성을 유지하는 것이 중요한 프로젝트에서 계속 관련성이 있습니다.

일반적인 문제 및 해결 방법

Carthage는 안정적인 도구이지만, 개발자는 특히 CI 서버에서 빌드하거나, Xcode를 업데이트하거나, Swift 버전을 변경할 때 정기적으로 일반적인 문제에 직면합니다. 대부분의 문제는 캐시를 지우고, --use-xcframeworks를 올바르게 구성하고, 최소 iOS 버전을 확인하여 해결됩니다.

오류 «The file manager returned an error» — Carthage 캐시가 손상되었거나 파일 권한 충돌이 있을 때 발생합니다. 해결 방법: rm -rf ~/Library/Caches/carthage로 캐시를 삭제하고 carthage bootstrap을 다시 실행합니다. 프로젝트에서 Carthage/ 디렉토리를 삭제하고 재빌드하는 것도 도움이 됩니다. CI 서버에서는 Cartfile.resolved가 변경된 경우에만 Carthage 캐시를 업데이트해야 합니다.

오류 «No such module» — Carthage 빌드는 성공했지만 Xcode에서 프레임워크를 찾을 수 없습니다. 해결 방법: General → Frameworks, Libraries, and Embedded Content에서 프레임워크 경로를 확인합니다. 프레임워크는 Carthage/Build/iOS/에 있어야 합니다. .xcframework가 올바르게 추가되었는지 확인합니다(다시 드래그). 동적 프레임워크의 경우 Embed & Sign을 확인합니다. 오류가 지속되면 Build Settings에 FRAMEWORK_SEARCH_PATHS를 추가합니다.

Swift 비호환성으로 인한 빌드 오류 — 라이브러리가 프로젝트와 다른 Swift 버전으로 빌드되었습니다. 해결 방법: 동일한 Swift 버전으로 소스에서 빌드하도록 carthage update --no-use-binaries를 사용합니다. 라이브러리가 현재 버전에서 컴파일되지 않는 경우 .xcconfig를 사용하여 Swift 버전을 지정하거나 라이브러리를 포크합니다. Carthage 0.39부터 --use-xcframeworks는 바이너리에 올바른 Swift 버전을 자동으로 포함합니다.

CI 빌드 문제 — CI의 Carthage는 적절한 캐시 구성이 필요합니다. 해결 방법: Carthage/Build/~/Library/Caches/carthage/를 캐시합니다. 버전 변경을 피하기 위해 CI에서는 update 대신 carthage bootstrap --use-xcframeworks --platform iOS를 사용합니다. GitHub Actions용 공식 Carthage 액션을 사용할 수 있습니다. Jenkins용 — CarthageBuild 플러그인. GUI 없이 macOS에서 Carthage가 충돌할 수 있습니다 — 해결 방법: brew install xcode-build-server를 설치하거나 -UseModernBuildSystem=NO 플래그를 추가합니다.

문제원인해결 방법
File manager error캐시 손상~/Library/Caches/carthage/ 정리
No such module프레임워크가 Xcode에 추가되지 않음대상에서 Frameworks 확인
Swift 비호환성다른 Swift 버전--no-use-binaries 또는 최신 Carthage 버전
CI 오류캐시 또는 GUI 부족Carthage/Build/ 캐시 구성
라이브러리 빌드 실패라이브러리에 Xcode 프로젝트 없음저장소 구조 확인

자주 묻는 질문

Carthage란 무엇이며 CocoaPods와 어떻게 다른가요?

Carthage는 Apple 플랫폼을 위한 분산형 의존성 관리자입니다. CocoaPods와 달리 Carthage는 중앙 라이브러리 레지스트리를 사용하지 않고, Xcode 프로젝트를 자동으로 수정하지 않으며, .xcworkspace를 만들지 않습니다. Carthage는 의존성을 바이너리 프레임워크로 빌드하며 개발자가 수동으로 Xcode에 추가합니다. 반면 CocoaPods는 Podfile을 통해 전체 프로세스를 자동화합니다.

macOS에 Carthage를 어떻게 설치하나요?

Carthage는 Homebrew를 통해 설치됩니다: brew install carthage. 대안으로 — GitHub Releases에서 Carthage.pkg를 다운로드하거나 소스에서 빌드합니다. 설치 후 버전을 확인하세요: carthage version. Carthage는 Xcode with Command Line Tools가 필요합니다. Apple Silicon Mac에서는 추가로 Rosetta 2가 필요할 수 있습니다.

Cartfile과 Cartfile.resolved의 차이점은 무엇인가요?

Cartfile은 개발자가 작성하는 구성 파일로, 라이브러리 이름과 버전 연산자(~> 5.9, == 8.0.0, 브랜치 이름)를 포함합니다. Cartfile.resolvedcarthage update 중 자동 생성되며 설치된 모든 의존성의 정확한 버전을 고정합니다. Cartfile.resolved는 Git에 보관해야 하며, 모든 머신에서 빌드 재현성을 보장합니다.

Cartfile의 라이브러리를 Carthage가 빌드하지 않는 이유는 무엇인가요?

Carthage는 라이브러리에 프레임워크 대상이 있는 유효한 Xcode 프로젝트 또는 워크스페이스가 포함되어야 합니다. 저장소에 접근 가능한지(키 없이 비공개가 아닌지), 올바른 버전이 지정되었는지(태그 또는 커밋이 존재하는지), 라이브러리가 사용 중인 Xcode 버전을 지원하는지 확인하세요. 자세한 진단을 위해 carthage build --verbose를 사용하세요. 라이브러리에 프레임워크 대상이 없으면 Carthage가 빌드할 수 없습니다.

2025~2026년에 Carthage를 사용해야 하나요?

Carthage는 분산형 의존성 관리, 통합에 대한 완전한 제어 및 Xcode 프로젝트에 대한 최소한의 간섭이 필요한 프로젝트에서 계속 관련성이 있습니다. 그러나 대부분의 새 프로젝트는 Swift Package Manager(SPM)를 선택합니다 — SPM은 Xcode에 내장되어 있고, 추가 설치가 필요 없으며, Apple이 적극적으로 개발하고 있습니다. Carthage는 빌드 파이프라인이 이미 구축된 레거시 프로젝트나 사용자에게 통합 방법 선택의 자유를 제공하려는 라이브러리 작성자에게 권장됩니다.

요약

  • Carthage는 iOS, macOS, watchOS 및 tvOS용 분산형 의존성 관리자로 Git 저장소 소스에서 프레임워크를 빌드
  • Cartfile은 GitHub 저장소, 임의의 Git URL 및 시맨틱 버전 관리를 지원하는 구문의 구성 파일
  • 설치brew install carthage를 통해 수행되며, 의존성 빌드는 carthage bootstrap 또는 carthage update를 통해 수행
  • Xcode 통합은 수동: 프레임워크는 Embed & Sign 옵션과 함께 General → Frameworks, Libraries, and Embedded Content에 추가
  • Cartfile.resolved는 모든 의존성의 정확한 버전을 고정하여 CI 및 모든 팀 머신에서 빌드 재현성 보장
  • 일반적인 문제(캐시, Swift 비호환성, CI 오류)는 캐시 정리, --no-use-binaries 플래그 및 CI 캐시 구성으로 해결
  • 관리자 선택: Carthage — 완전한 제어, CocoaPods — 자동화, SPM — 내장 통합이 있는 새 프로젝트용

턴키 방식의 모바일 애플리케이션을 개발해 드립니다

IT Sectr는 2017년부터 스타트업과 기업을 위한 iOS 및 Android 애플리케이션을 만듭니다. 저희가 상담해 드리고 최적의 솔루션을 제안하겠습니다.

프로젝트 논의

더 읽어보기