XcodeProj
8.26.0
XcodeProj是一個用Swift編寫的圖書館,用於解析和使用Xcode Projects。它受到Cocoapods Xcodeproj和Xcode的極大啟發。
| 專案 | 存儲庫 |
|---|---|
| Projlint | github.com/jamitlabs/projlint |
| Rules_xcodeProj | github.com/buildbuddy-io/rules_xcodeproj |
| 橄欖球 | github.com/swiftyfinch/rugby |
| 源 | github.com/krzysztofzablocki/sourcery |
| tuist | 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 。用Xcode旋轉。 Xcodeproj根據MIT許可發布。有關詳細信息,請參見許可證。
謝謝這些好人(表情符號鑰匙):
約瑟夫·科利西奧(Joseph Colicchio) ? | deatondg ? | 丹·弗萊明 | Sascha Schwabbauer ? | Marcin Iwanicki ? | 亞當·哈齊(Adam Khazi) ? | 埃利奧特·威廉姆斯 |
muukii ? | Yuya Oka | 基思·史萊西(Keith Smiley) ? | 伊恩·萊奇(Ian Leitch) | Daniil Subbotin | 佛羅倫薩·貝基爾(Florentin Bekier) | 瓦迪姆·史密爾(Vadim Smal) ? |
Freddi(Yuki Aki) | 克里斯托弗·傑克遜 | 傑克·普里克特(Jake Prickett) | 傑克·亞當斯 | 松 | Bogdan Belogurov | 查克·格林德爾(Chuck Grindel) |
邁克爾·麥奎爾(Michael McGuire) | c-凡 | 麥克斯韋·埃利奧特(Maxwell Elliott) | 布倫特利·瓊斯 | 團隊 | 約翰內斯·埃伯林(Johannes Ebeling) | Baegteun |
Alexkovács | 克里斯托弗·溫特克維斯特 | 蒂莫西·科斯塔(Timothy Costa) | 瑪麗 | 易卜拉欣·哈桑(Ibrahim Hassan) | tatagrigory | Ruslan Alikhamov |
拉德斯拉斯·德(Ladislas de)告訴了 | 馬特·馬西科特(Matt Massicotte) | oul | Jaewon-Yun | Mike Gerasymenko | Filip Racki | 開爾文·哈倫 |
喬治·納瓦羅 | 格言 |
該項目遵循全企業規範。歡迎任何形式的貢獻!