LoginSignup
14
14

More than 5 years have passed since last update.

xcodeprojで*.xcodeprojを操作してみる

Posted at

xcodeproj というgemをつかうと、*.xcodeprojをRubyからいじれるようだ。たとえば以下のようにすると、プロジェクトのビルド前に任意のスクリプトを実行するフェーズをつくることができる。

現実のプロダクトでは、CocoaPodsなどで使っているよう。

#!/usr/bin/env ruby
require 'xcodeproj'
project = Xcodeproj::Project.open(*Dir.glob('*.xcodeproj'))

PHASE_NAME = "Do something wonderful"

project.targets.each do |target|
  next if target.build_phases.any? do |phase|
    phase.respond_to?(:name) && phase.name == PHASE_NAME
  end

  phase = project.new(Xcodeproj::Project::Object::PBXShellScriptBuildPhase)
  phase.name = PHASE_NAME
  phase.shell_script = "echo do something with ${CONFIGURATION_BUILD_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/your.file"
  target.build_phases.unshift(phase)
end

project.save()
14
14
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
14
14