XcodeProj
8.26.0
XCodeProjは、Xcodeプロジェクトを解析して作業するためにSwiftで書かれたライブラリです。 cocoapods xcodeprojとXcodeに深くインスピレーションを受けています。
| プロジェクト | リポジトリ |
|---|---|
| projlint | github.com/jamitlabs/projlint |
| rules_xcodeproj | github.com/buildbuddy-io/rules_xcodeproj |
| ラグビー | github.com/swiftyfinch/rugby |
| ソースケリー | github.com/krzysztofzablocki/sourcery |
| チュイスト | github.com/tuist/tuist |
| XCodeGen | github.com/yonaskolb/xcodegen |
| XSPM | gitlab.com/pyroh/xspm |
| プライバシーマニフェスト | github.com/stelabouras/privacy-manifest |
また、プロジェクトでXcodeProjを活用している場合は、PRを開いて上記のリストに含めるようにしてください。
Package.swiftに依存関係を追加します。swiftファイル:
let package = Package (
name : " myproject " ,
dependencies : [
. package ( url : " https://github.com/tuist/XcodeProj.git " , . upToNextMajor ( from : " 8.12.0 " ) ) ,
] ,
targets : [
. target (
name : " myproject " ,
dependencies : [ " XcodeProj " ] ) ,
]
)swift-shを使用すると、スクリプトを使用してプロジェクトタスクを自動化できます。たとえば、プロジェクトのバージョンキーを使用して、プロジェクトのバージョンを表す現在のgitタグと同期するスクリプトを作成できます。
#!/usr/bin/swift sh
import Foundation
import XcodeProj // @tuist ~> 8.8.0
import PathKit
guard CommandLine . arguments . count == 3 else {
let arg0 = Path ( CommandLine . arguments [ 0 ] ) . lastComponent
fputs ( " usage: ( arg0 ) <project> <new-version> n " , stderr )
exit ( 1 )
}
let projectPath = Path ( CommandLine . arguments [ 1 ] )
let newVersion = CommandLine . arguments [ 2 ]
let xcodeproj = try XcodeProj ( path : projectPath )
let key = " CURRENT_PROJECT_VERSION "
for conf in xcodeproj . pbxproj . buildConfigurations where conf . buildSettings [ key ] != nil {
conf . buildSettings [ key ] = newVersion
}
try xcodeproj . write ( path : projectPath )次に、これをリポジトリ、たとえばscripts/set-project-versionに保存して、実行できます。
$ scripts/set-project-version ./App.xcodeproj 1.2.3
$ git add App.xcodeproj
$ git commit -m " Bump version "
$ git tag 1.2.3将来の適応には、バージョンを簡単に決定し、自動的にぶつけることが含まれます。その場合は、 Versionオブジェクトを提供するライブラリを使用することをお勧めします。
[email protected]:tuist/xcodeproj.git 。Package.swiftを開きます。 XCodeProjはMITライセンスの下でリリースされます。詳細については、ライセンスを参照してください。
これらの素晴らしい人々に感謝します(絵文字キー):
ジョセフ・コリチオ ? | deatondg ? | ダンフレミング | Sascha Schwabbauer ? | マーシン・イワニキ ? | アダム・カジ ? | エリオット・ウィリアムズ |
ムーキイ ? | Yuya Oka | キース・スマイリー ? | イアン・レッチ | Daniil Subbotin | フロンチン・ベキエ | Vadim Smal ? |
フレディ(ゆくが) | クリストファー・ジャクソン | ジェイク・プリケット | ジェイク・アダムス | マツジ | ボグダン・ベログロフ | チャック・グリンデル |
マイケル・マクガイア | c-凡 | マックスウェル・エリオット | ブレントリー・ジョーンズ | チーム | ヨハネス・エベリング | Baegteun |
アレックス・コバカス | Christoffer Winterkvist | ティモシー・コスタ | メアリー | Md。IbrahimHassan | タタグリゴリー | Ruslan Alikhamov |
ラディスラス・デ・テルリ | マット・マシコット | ™™орхлик | Jaewon-Yun | マイク・ゲラシメンコ | フィリップラック | ケルビン・ハロン |
ジョージ・ナバロ | マキシム |
このプロジェクトは、全委員会の仕様に従います。あらゆる種類の貢献を歓迎します!