Dependabot, Xcode 프로젝트의 SwiftPM 의존성 자동 업데이트 지원!

by DD
2개월 전
조회수 4

Dependabot이 Xcode 프로젝트 내 Swift Package Manager(SwiftPM) 의존성 업데이트를 지원하며, .xcodeproj 매니페스트(Manifest)를 사용하는 프로젝트도 자동 업데이트 가능

기존에는 Package.swift 파일이 필요했으나, 이번 업데이트로 .xcodeproj 및 .xcworkspacePackage.resolved 파일을 직접 파싱(Parsing)하여 의존성 업데이트 지원

자동 업데이트 기능을 통해 개발자는 수동 개입 없이 최신 버전의 의존성을 유지할 수 있으며, GitHub Enterprise Server 3.22에서도 지원 예정

Xcode 프로젝트의 SwiftPM 의존성 관리 자동화

본문에 따르면 Dependabot은 Xcode 프로젝트 내 Swift Package Manager(SwiftPM) 의존성을 자동으로 업데이트하여 개발 생산성을 향상시킨다. 특히, .xcodeproj 번들(Bundle)을 통해 패키지를 관리하는 프로젝트에서 Package.swift 파일 없이도 의존성 업데이트를 지원한다.

.xcodeproj 및 .xcworkspace: Package.resolved 파일을 찾아 의존성 버전 정보를 파싱

project.pbxproj: Xcode에서 설정한 버전 제약 조건(Version Constraints)을 준수

Pull Request 자동 생성: Package.resolved 파일을 업데이트하여 수동 개입 최소화

이러한 자동화 기능은 의존성 관리(Dependency Management)의 번거로움을 줄여 개발자가 코드 작성에 집중할 수 있도록 돕는다.

기존 방식과의 차이점 및 개선 사항

기존에는 Dependabot이 SwiftPM 의존성을 업데이트하기 위해 Package.swift 파일이 필요했다. 하지만, 많은 iOS 및 macOS 앱이 Xcode를 통해 SwiftPM 의존성을 관리하므로, 이 방식은 자동 업데이트 지원 범위(Automated Update Support Range)를 제한했다.

Package.resolved 파일: 의존성 버전 규칙(Dependency Version Rules)과 핀(Pin) 정보를 저장

project.pbxproj: 프로젝트 설정 파일로, 의존성 버전 제약 조건 포함

자동 업데이트: 수동 업데이트(Manual Update) 없이 최신 버전의 의존성을 유지

이번 업데이트를 통해 Dependabot은 Apple 개발 생태계(Apple Developer Ecosystem)의 Swift 의존성 관리 효율성을 크게 개선했다.

Dependabot 설정 및 GitHub Enterprise Server 지원

Dependabot은 .xcodeproj 번들을 포함하는 저장소(Repository)에서 Package.resolved 파일을 자동으로 감지하여 업데이트를 수행한다. 또한, dependabot.yml 설정 파일을 통해 swift package 생태계에 대한 업데이트 동작을 사용자 정의할 수 있다.

자동 감지: 다음 예약 실행(Scheduled Run) 시 .xcodeproj 번들 내 Package.resolved 파일 자동 감지

dependabot.yml: 업데이트 빈도, 알림 설정 등을 커스터마이징

GitHub Enterprise Server 3.22 지원: 온-프레미스(On-Premise) 환경에서도 Dependabot 사용 가능

이러한 유연성은 개발팀이 자신들의 개발 환경(Development Environment)에 맞춰 Dependabot을 활용할 수 있도록 돕는다.

Dependabot now supports Xcode projects using SwiftPM with .xcodeproj manifests