作ったもの
Carthage/Build/[Platform]/内のframeworkをRun ScriptのInput Filesに書き込みます。
Ver 0.3
- 差分機能
- プレビュー機能
- 選択機能
- 出力の色付け
を付けました
Ver 0.4
- ターゲット一覧から処理したいターゲットを選択できるようにしました。
Carthageを使うときに$(SRCROOT)/Carthage/Build/iOS/*.frameworkなどと毎回書くのがめんどくさかったので作りました。
1年前くらいからpythonでは作ってあったのですが折角なのでSwiftで作ってみました。
実行結果
使い方
-
Cartfileを作成
Cartfileを作成し、その中にライブラリを追加してください。 -
carthage update
まずはビルドしてframeworkを生成します。 -
Run Scriptを追加
Xcode -> Targets -> Build Phasesの左上の+ボタンを押してRun Scriptを追加します。
/usr/local/bin/carthage copy-framework -
carthage-input-files YourXcodeProject.xcodeproj
このコマンドでInput Filesのところにframeworkが書き込まれます。
現在は$(SRCROOT)/Carthage/Build/[Platform]/内のframeworkを全て書き込んでしまうので、
もし余計なものが入ってしまった場合は、実行後に(Ver 0.3で修正)Input Filesのところの-を押して消していただきたいです。 -
diffをなくす
現状コマンドを実行したままだと、project.pbxprojのフォーマットの違いから大量のdiffが発生してしまいます。
それを解消するために、実行結果を確認するついでに、Input Filesの+を一度押して、その後、-を押していただきたいです。
そうすると、いままで通りのフォーマットになって実際の差分だけを取り出すことができます。
インストール方法
git clone git@github.com:ken0nek/CarthageInputFiles.git // or git clone https://github.com/ken0nek/CarthageInputFiles.git
cd CarthageInputFiles
make install
で、/usr/local/binにcarthage-input-filesというコマンドが置かれます
展望
- frameworkの選択 (Ver 0.3)
- targetごとに設定 (Ver 0.4)
-
Run Scriptごと追加 <- keyをどうやって決めればいいのかが分からないです
免責
project.pbxprojをいじるものなので、最悪プロジェクトが開けなくなってしまう場合が起きてしまうかもしれませんが、ご自身の責任でご利用ください。
バグや改善点がありましたらプルリクなどお待ちしております、、
参考
- Swift Package Manager (SwiftPM) で作るコマンドラインツール - Qiita
- JohnSundell/SwiftPlate: Easily generate cross platform Swift framework projects from the command line
- 0xced/xcproj: Command line tool for manipulating Xcode project files
- tomlokhorst/Xcode.swift: Swift library for reading and writing Xcode project files in OpenStep format
- venmo/synx: A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
- .xcodeproj/project.pbxproj を解読する - Qiita


