In our RubyMotion Rakefile, we'll want to be able to have different settings — especially for codesigning — when building for the simulator, device for development testing or device for adhoc/release testing. Based on this nice tip from Ben Sheldon, I've derived something simple for myself. Here's the relevant parts:
Motion::Project::App.setup do |app| env = if ENV['dev'] == '1' 'dev' elsif ENV['adhoc'] == '1' 'adhoc' else 'dev' #default end #... if env == 'dev' #... elsif env == 'adhoc' #... end end task :set_adhoc do ENV['adhoc'] = '1' end task :tf => [ :set_adhoc, :testflight ]
Use the :tf task instead of :testflight and everything will work as expected:
rake retina=4 #This will default to dev=1, but it doesn't matter rake device debug #This will default to dev=1 rake tf notes="//" #This will run testflight with adhoc=1
Note: Updated based on feedback from Ben Sheldon.
Like this post? Follow me @hboon on Twitter.