JSON を pbxproj ファイル形式に直接変換する方法はないようですが、Xcode はxml1
フォーマットされたデータを有効なプロジェクト ファイルとして読み取ります。
pbxproj/xcodeproj ファイルを読み書きするライブラリへの受け入れられた回答に触発されましたか? 、プロジェクトの変換された JSON で Xcode を実行してみることにしました。Xcode から、プロジェクトが無効であるというエラーが表示されました。を使用して JSON を XML に変換するとplutil
、Xcode はそれを問題なく読み取りました。ファイルの内容を観察すると、Xcode がロードしたときに XML のままでしたが、Xcode で値を変更した瞬間、pbxproj 形式を使用してファイルが書き換えられました。フレームワークやライブラリの順番を入れ替えているように見えましたが、それは私が扱っていた元の pbxproj が Unity3D で生成されたためかもしれません。
pbxproj ファイルを自動的に変換、操作、および使用する方法の大まかなレシピを次に示します。
#!/bin/sh
plutil -convert json -r -o project.json -- project.pbxproj
ruby my_script.rb < project.json > project-modified.json
plutil -convert xml1 -o project-modified.xml -- project-modified.json
cp project-modified.xml project.pbxproj
Xcode で変更されたファイルを元の形式に戻す簡単に自動化できる方法があるかどうかはわかりませんが、ファイルが XML 形式である間に呼び出してxcodebuild
も問題ないはずです。xcrun