作ったもの
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