LoginSignup
1
0

More than 5 years have passed since last update.

iTunesConnectでInReviewのときにアプリをちょっと古いFastlaneで差し替えるのは危険

Posted at

題名通り危ない。
もしかしたらFastlaneのドキュメントに書いてあるのかもしれない。
またどこ(Fastlane(deliver?) or Apple?)の不具合なのか本記事では追跡はしていない。

何が危ないのか

iTunesConnect上で、配信準備完了となっているバージョン/ビルドが、実際に公開されているものと異なることが発生する。

何故異なる事に気がついたのか

実装/リリースした機能が動作しなかったことで発覚。
また、サーバー側でアプリからのリクエストのヘッダーをロギングしているのだが、
そのログにアプリ側からおくったヘッダー情報内に含めているバージョンやビルドが異なっていることが分かった。
最終的に申請中にFastlaneで申請しているアプリを変更したもの のみ この症状が出ていることまで特定でき、原因判明となった。

どの様な環境/状況で、どのようなFastlaneのlaneを実行したのか

環境

macOS Sierra 10.12.1

➜  ~ ruby --version
ruby 2.3.1p112 (2016-04-26 revision 54768) [x86_64-darwin16]
➜  ~  fastlane --version
fastlane 1.111.0
➜  ~ gym --version
gym 1.12.1
➜  ~ deliver --version
deliver 1.16.1

※12月10日の時点でのバージョンとなる。のでバージョンが若干異なる可能性あり。

ビルド用のlane

アプリをBuild(gym)してiTunesConnectにUpload(deliver)するだけ。

Fastfile.rb
  lane :build do
            gym(scheme: "jp.foo.baaa.bbb", use_legacy_build_api:true)
            deliver(force: true,
                skip_screenshots:true,
                submit_for_review:false,
                skip_metadata:true,
                app_identifier:scheme_name)
  end

TestFlightとSubmit用のlane

Apple側での処理が完了したらこれを実行する。
申請とTestFlightをやってくれる。

Fastfile.rb
lane :submit_test do

Spaceship::Tunes.login('account', 'pw')
Spaceship::Tunes.select_team

begin
    app = Spaceship::Tunes::Application.find("jp.fooo.baaaa.aaaa")
    v = app.edit_version
    v.release_notes["ja"] = "Thank you guys"
    v.release_on_approval = 'true'
    builds = v.candidate_builds
    v.select_build(builds.first)
    v.save!

    # Testflight
    begin
      train = app.build_trains["77.1.0"]


      # Access all builds for a given train
      train.builds.count
      build = train.builds.last

      # Enable beta testing for a build train
      # This will put the latest build into beta testing mode
      # and turning off beta testing for all other build trains
      train.update_testing_status!(true, 'internal', build)
      slack(message: "`#{my_address}` Testflight: #{"jp.fooo.baaaa.aaaa"} ", success: true)
    rescue => ex
      slack(message: "(2) `#{my_address}` #{"jp.fooo.baaaa.aaaa"} #{ex}", success: false)
    end

    # Submit
    begin
      submission = app.create_submission
      submission.export_compliance_uses_encryption = false
      submission.add_id_info_uses_idfa = false
      submission.content_rights_contains_third_party_content = false
      submission.content_rights_has_rights = false

      # Finalize app submission
      submission.complete!
      slack(message: "`#{my_address}`: Submit: #{"jp.fooo.baaaa.aaaa"} ", success: true)
    rescue => ex
      UI.error("(3) Something went wrong: #{ex}")
      slack(message: "(3) `#{my_address}` #{"jp.fooo.baaaa.aaaa"} #{ex}", success: false)
    end

    rescue => ex
    UI.error("(1) Something went wrong: #{ex}")
    slack(message: "(1) `#{my_address}` #{"jp.fooo.baaaa.aaaa"} #{ex}", success: false)
    end

end
end

状況

  • 2016年11月24日〜25日に申請
  • 2016年12月2日に再度Upload
  • 2016年12月6日に発覚

最新版では大丈夫なのか?

不明.
ただし、Rejectすることができるようになった。
https://github.com/fastlane/fastlane/commit/3263ea1e0bdc5fc17de500a5efb8ec26345ac3af
spaceship 1.111.0~

最後に

発覚したとき冷や汗かいた。
きちんとRejectさせてからUploadしてやったほうが安全ということを学習した。

1
0
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
1
0