説明した問題を解決することを目的とする新しいツールについてお話したいと思います。 XcodeProjectは、Xcodeプロジェクトデータの読み取りと変更、プロジェクトのビルド、アーカイブ、およびタスクの自動化に使用できるRuby言語ライブラリです。

設置
ライブラリはgemであり、次のコマンドを使用してターミナルからインストールできます。
gem install xcodeproject
はじめに
プロジェクトのすべての目標を表示するライブラリを使用する最も簡単な例:
require 'rubygems' require 'xcodeproject' proj = XcodeProject::Project.new('path/to/example.xcodeproj') proj.read.targets.each do |target| puts target.name end
最初に、タイプXcodeProject :: Projectのオブジェクトを作成する必要があります。
proj = XcodeProject::Project.new('path/to/example.xcodeproj')
または、特定のディレクトリですべてのXcodeプロジェクトを見つけることができます。
projs = XcodeProject::Project.find('path/to/dir')
または、指定されたパターンに従って:
projs = XcodeProject::Project.find('*/**')
プロジェクトオブジェクトの作成後、データを読み取ることができます。
data = proj.read p data.target('example').config('Release').build_settings
または、データを変更します。
proj.change do |data| data.target('example').config('Release').build_settings['GCC_VERSION'] = 'com.apple.compilers.llvmgcc42' end
ファイル、グループ、およびディレクトリ
最高レベルのすべてのグループを表示します。
data.main_group.children.each do |child| p child.name end
指定されたグループのファイルのみを表示します。
group = data.group('path/from/main_group') group.files.each do |file| p file.name end
GroupPathグループはいつでも取得できます。 GroupPathは、プロジェクトルート(プロジェクトのルートはメイングループ、すべてのプロジェクトグループの親である非表示グループ)または現在のグループに相対的なグループへのパスです。
group.group_path
ディレクトリは、ファイルシステムで表されるグループです。 それらの場合、FilePath-オブジェクトが関連付けられているディレクトリへのファイルシステム内の実際のパスを取得できます。
group.total_path
プロジェクトのルートを基準にしてGroupPathを指定することで、プロジェクトにグループを追加できます。
data.add_group('path/from/main_group')
または現在のグループに関連して:
group.add_group('path/from/current_group')
プロジェクトにディレクトリを追加するには、FilePathを指定する必要があります。
data.add_dir('group_path/to/parent', '/file_path/to/dir') group.add_dir('/file_path/to/dir')
同じ方法でプロジェクトにファイルを追加できます。
data.add_file('group_path/to/parent', '/file_path/to/file') group.add_file('/file_path/to/file')
プロジェクトからファイルとグループを削除することもできます。
data.remove_file('path/from/main_group') data.remove_group('path/from/main_group') group.remove_file('path/from/current_group') group.remove_group('path/from/current_group')
目標
ターゲットオブジェクトの取得は簡単です。
target = data.target('example')
ファイルがプロジェクトに追加されたら、それを使用してターゲットをビルドできます。
file = main_group.add_file('/file_path/to/file') target.add_source(file)
次のようにして、アセンブリからファイルを除外できます。
target.remove_source(file)
Proctアセンブリ
XcodeProjectはXcodeBuilderを使用してプロジェクトをビルドします。
開始するには、rakefileを作成する必要があります。 単純な場合、次のようになります。
require 'rubygems' require 'xcodeproject' proj = XcodeProject::Project.new('path/to/example.xcodeproj') XcodeProject::Tasks::BuildTask.new(proj)
プロジェクトの構築など、多くのタスクが利用可能になりました。 rake -Tを実行すると、タスクの完全なリストを取得できます。
$ rake -T rake example:archive # Creates an archive build of the specified target(s). rake example:build # Builds the specified target(s). rake example:clean # Cleans the build using the same build settings. rake example:cleanbuild # Builds the specified target(s) from a clean slate.
ビルドパラメータを変更します。
XcodeProject::Tasks::BuildTask.new(proj) do |t| t.target = "libexample" t.configuration = "Release" end
XcodeBuilderの詳細については、ここをクリックしてください 。
結論として、XcodeProjectプロジェクトに関するいくつかの言葉。 このプロジェクトは開発中であり、Xcodeで提供される機能はごくわずかです。 新しい機会の出現は、それらの本当の移植性に関連するでしょう。 プロジェクトはMITライセンスの下で利用できます。プロジェクトコードは自由に使用できます。 プロジェクトの開発にご協力いただければ幸いです。
githubのプロジェクトアドレス。