上次說到 rake 是幫忙 iOS App 本地化的好用工具,但其實幾乎所有要自動化的事情都能請它幫忙, 例如寫 game 的人需要做的 sprite sheet 也能請 rake 自動產生

除此之外,準備各種不同的 build 也是頗煩人的事,如果你也用 rake 的話就可以用 wox 這個 gem 來幫忙,下面的範例是 wox 文檔建議的方式:

# Rakefile
Wox::Tasks.create :info_plist => 'Resources/Info.plist', :sdk => 'iphoneos', :configuration => 'Release' do
  build :debug, :configuration => 'Debug'

  build :release, :developer_certificate => 'iPhone Developer: Dangerous Dave (9GZ84DL0DZ)' do
    ipa :app_store, :provisioning_profile => 'App Store'
    ipa :adhoc, :provisioning_profile => 'Team Provisioning Profile' do
      testflight :publish, :api_token => 'nphsZ6nVXMl0brDEsevLY0wRfU6iP0NLaQH3nqoh8jG',
                          :team_token => 'Qfom2HnGGJnXrUVnOKAxKAmpNO3wdQ9panhtqcA',
                          :notes => proc { File.read("CHANGELOG") },
                          :distribution_lists => %w[Internal QA],
                          :notify => true

    end
  end
end

使用 wox 的優點是不同 task 的 configuration 是可以繼承的,例如 ipa:app_store 套用的就是上一層 build:release 的設定,但用的是上傳 App Store 用的 provisioning profile。同樣道理 ipa:adhoc 用的是 Team Provisioning Profile。而如果你有用 TestFlight 的話,就可以繼承 ipa:adhoc 把做出來 的 ipa 檔直接上傳到 TestFlight。

關於 TestFlight,可以參考 Polydice 的介紹