Dependabot이 Xcode 프로젝트 내 Swift Package Manager(SwiftPM) 의존성 업데이트를 지원하며, .xcodeproj 매니페스트(Manifest)를 사용하는 프로젝트도 자동 업데이트 가능
기존에는 Package.swift 파일이 필요했으나, 이번 업데이트로 .xcodeproj 및 .xcworkspace 내 Package.resolved 파일을 직접 파싱(Parsing)하여 의존성 업데이트 지원
자동 업데이트 기능을 통해 개발자는 수동 개입 없이 최신 버전의 의존성을 유지할 수 있으며, GitHub Enterprise Server 3.22에서도 지원 예정
본문에 따르면 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은 .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을 활용할 수 있도록 돕는다.