Dependabotが.xcodeprojマニフェストを使用するSwiftPMのXcodeプロジェクトをサポート
GitHubのDependabotが、Package.swiftファイルを持たないXcodeプロジェクト(.xcodeproj/.xcworkspace)内のSwift Package Manager依存関係の自動検出・更新をサポートするようになり、Apple開発者コミュニティの自動依存関係更新のカバレッジが大幅に拡大した。
キーポイント
XcodeプロジェクトでのSwiftPM依存関係の自動検出
Dependabotが.xcodeprojや.xcworkspaceバンドル内のPackage.resolvedファイルを自動的に検出し、Package.swiftファイルがなくてもSwiftパッケージの依存関係を更新できるようになった。
Xcode内のバージョン制約の尊重
project.pbxprojから依存関係のバージョンルールを解析し、Xcodeで設定したバージョン制約を尊重しながら更新を行う。
自動プルリクエストによる更新
適切なPackage.resolvedファイルをその場で更新するプルリクエストを自動的に作成し、Xcodeとの互換性を保ったまま手動介入なしでプロジェクトを最新状態に保つ。
コミュニティの要望に応えた機能拡張
この改善はSwiftエコシステムサポートにおいて最も要望の多かった機能の一つであり、多くのiOS/macOSアプリ開発者にとって自動依存関係更新が利用可能になった。
影響分析・編集コメントを表示
影響分析
この機能拡張により、Xcode内でSwift Package Managerを完全に管理する多くのApple開発者が初めて自動依存関係更新を利用できるようになり、セキュリティ更新やバグ修正の適用漏れを減らし、開発効率を向上させる。Swiftエコシステム全体のセキュリティとメンテナンス性が向上する重要なマイルストーンと言える。
編集コメント
開発者体験の向上とセキュリティ維持を両立する実用的な機能拡張。特定の開発者コミュニティ(Apple/iOS開発者)に絞った深いニーズへの対応が成功している好例。
Dependabotは、Package.swiftファイルが存在しない場合でも、.xcodeprojバンドルを通じてパッケージを管理するXcodeプロジェクト内のSwiftパッケージ依存関係を検出および更新できるようになりました。この機能強化は、Swiftエコシステムサポートにおいて最も要望の多かったものの一つであり、現在一般に利用可能です。
多くのiOSおよびmacOSアプリは、Swift Package Manager (SwiftPM) の依存関係を完全にXcodeで管理しており、バージョンルールはproject.pbxprojに、解決済みのバージョン情報は.xcodeprojまたは.xcworkspaceバンドル内に配置されたPackage.resolvedファイルに保存されています。従来、DependabotがSwiftの依存関係を検出・更新するには、トップレベルにPackage.swiftマニフェストファイルが必要でした。そのため、多くのApple開発者が自動化された依存関係更新を利用できていませんでした。
今回のリリースにより、Dependabotは以下のことを行うようになります:
.xcodeprojと.xcworkspaceの両方のバンドル構成において、Xcodeが管理するPackage.resolvedファイルを自動的に検出します。
Xcodeで設定したバージョン制約を遵守するため、project.pbxprojから依存関係のバージョンルールを解析します。
適切なPackage.resolvedファイルを適切な場所で更新するプルリクエストを作成し、手動での操作なくプロジェクトがXcodeとの互換性を維持できるようにします。
リポジトリにPackage.resolvedファイルを含む.xcodeprojバンドルがある場合、Dependabotは次回のスケジュール実行時に自動的にそれを検出します。また、これまでと同様に、dependabot.ymlの設定を追加または調整して、Swiftパッケージエコシステムの更新動作をカスタマイズすることもできます。この機能はクラウドですでに利用可能であり、GitHub Enterprise Server 3.22でもサポートされる予定です。
詳細については、Dependabotのエコシステムドキュメントをご覧いただき、dependabot-coreでの開発者との議論にご参加ください。
投稿「Dependabot now supports Xcode projects using SwiftPM with .xcodeproj manifests」は、The GitHub Blogで最初に公開されました。
原文を表示
Dependabot can now detect and update Swift package dependencies in Xcode projects that manage packages through .xcodeproj bundles, even when no Package.swift file is present. This improvement has been one of the most requested enhancements for Swift ecosystem support, and it’s now generally available.
Many iOS and macOS apps manage their Swift Package Manager dependencies entirely through Xcode, storing version rules in project.pbxproj and resolved pins in Package.resolved files nested inside .xcodeproj or .xcworkspace bundles. Until now, Dependabot required a top-level Package.swift manifest to discover and update Swift dependencies, leaving a large portion of the Apple developer community without automated dependency updates.
With this release, Dependabot will:
Automatically discover Xcode-managed Package.resolved files in both .xcodeproj and .xcworkspace bundle layouts.
Parse dependency version rules from project.pbxproj to respect the version constraints you’ve set in Xcode.
Open pull requests that update the appropriate Package.resolved file(s) in place, so your project stays compatible with Xcode without manual intervention.
If your repository contains an .xcodeproj bundle with a Package.resolved file, Dependabot will automatically pick it up on the next scheduled run. You can also add or adjust your dependabot.yml configuration to customize update behavior for the swift package ecosystem as usual. This is available now for cloud and will be supported in GitHub Enterprise Server 3.22.
To learn more, check out our Dependabot ecosystem documentation and join the conversation with developers in dependabot-core.
The post Dependabot now supports Xcode projects using SwiftPM with .xcodeproj manifests appeared first on The GitHub Blog.
関連記事
今日のまとめ
AI日報で今日の重要ニュースをまとめ読み