App Store のアプリプレビューを台本から作れるようにする - #134
Merged
Merged
Conversation
One preview per device class — iPhone, iPad, Mac and Vision Pro, fifteen to twenty seconds each — made the way the teaser is: a UI test presses, a script records and cuts. `ruby Tools/film/previews.rb` writes them to Apple's sizes and rules, which are stricter than the website's: the screen as captured with no zoom, no backdrop or cards, 15–30 seconds, an audio track even when it is silence. They come out silent, for music added by hand, and are uploaded by hand; deliver does not take previews. The teaser's tooling moves to Tools/film/ and splits: film.rb records and cuts, teaser.rb and previews.rb edit, and the tests share FilmTestCase. iPhone and iPad are scripted on the simulators. Vision Pro is launched with the screenshot rig's arguments. The Mac is scripted on this Mac and recorded by ScreenCaptureKit (window-recorder.swift). What it took, in Tools/film/README.md: - `simctl io recordVideo` running through a visionOS launch keeps the immersive space from opening, every time. The recorder now starts once the sheet is up, and `-TBPlay <seconds>` holds the drawing until then; `TBPlaying` logs when it starts. - The recorder's decode times drift from its presentation times, eleven seconds by the end of a phone run. Conversion now ignores them (`-fflags +igndts`). This also affected the teaser, less visibly. - A phone's taps return up to 1.4s after the touch. Touches are now found in the recording, as the first break in stillness after the tap was called. - A Mac window recorded as itself wears macOS's purple "sharing this window" control where its close, minimise and zoom buttons belong. The display is recorded instead, without every other application, and cropped to the window. - The Mac's test runner is sandboxed, so its log comes back as a result-bundle attachment. - A Mac row folds its chips into itself, so the chip is placed by measurement.
The how of making the teaser and the previews was a paragraph in the screenshots skill, and the why was Tools/film/README.md. Neither said what a reshoot actually involves: - the maintainer has to be told before the Mac preview and type the password; - the films have to be checked against the spec and on a contact sheet; - someone has to watch them, because movement is not judged from stills; - they have to be copied out of $TMPDIR and uploaded by hand. That is now the film skill. The README keeps the reasons. The screenshots skill keeps one line, because the films share its DerivedData. The release skill notes that previews are the one part of the listing fastlane does not carry.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
iPhone・iPad・Mac・Vision Pro の App Store 用アプリプレビューを、ティーザー動画(#132)と同じく台本から作れるようにしました。
ruby Tools/film/previews.rbを実行すると、機種ごとに 15〜20 秒の動画を Apple の仕様どおりに書き出します。動画は英語・字幕なし・音なしです。音楽はあとから手作業で入れます。fastlane の deliver はプレビューをアップロードできないので、App Store Connect には手でアップロードします。動画ファイルはリポジトリに入れていません。
できるプレビュー
Apple の決まりに合わせたこと
構成
ティーザーの仕組みを
Tools/film/に移して分けました。film.rb:録画、止まっている時間の切り詰め、タッチの描画(共通)teaser.rb/previews.rb:それぞれの編集window-recorder.swift:Mac のウィンドウを ScreenCaptureKit で録画FilmTestCase(共通の操作)、TeaserTests、AppPreviewTests(iPhone・iPad)、MacPreviewTests作業の手順は新しいスキル
filmにまとめました。内容は、Mac を撮る前にメンテナへ声をかけること、撮ったあとの確かめ方、動画の受け渡し、失敗したときの原因の見方です。仕組みと理由はTools/film/README.mdにあります。screenshots スキルには、この新しいスキルへの案内だけを残しました。release スキルには、「プレビューは fastlane で送れないので手でアップロードする」という 1 文を足しました。アプリ本体の変更は、visionOS の開発用起動引数
-TBPlayに秒数を渡せるようにしたことだけです(下記)。分かったこと
詳しくは
Tools/film/README.mdに書きました。TBNotReady)。そこで、絵が出てから録画を始めます。-TBPlay 6で再生を 6 秒遅らせ、始まった瞬間をTBPlayingのログで知らせるようにしました。-fflags +igndtsで直しています。ティーザーにも(目立たない形で)効いていた問題です。確認したこと
swift format lint --strictConnectHardwareKeyboard)と自動操作モードが元に戻ることアップロードのときに