O que simreel faz?
Grave o aplicativo real do usuário no Simulador iOS e transforme em dois arquivos:
reel-1080x1920.mp4: a gravação dentro de um corpo de telefone com gradiente, uma legenda por cena, e um cartão final. Para X, Reels, TikTok, Product Hunt.appstore-preview-886x1920.mp4: a gravação simples, dimensionada e codificada para App Store Connect.
Tudo roda localmente com Xcode e ffmpeg. Sem contas, sem APIs pagas.
Regras
- Mostre apenas o que o aplicativo realmente faz. As legendas descrevem o que está na tela; nunca adicione afirmações, números ou avaliações que a filmagem não mostra.
- Mantenha dados privados fora do quadro. Use um simulador novo ou dados de demonstração, e examine os quadros antes de entregar.
- Toque apenas no simulador que foi instruído a usar. Outros simuladores inicializados podem pertencer ao trabalho de outra pessoa; nunca passe
bootedquando mais de um estiver em execução. - Recuse solicitações de rastreamento e cookies durante a gravação, a menos que o usuário diga o contrário.
Passos
- Encontre o simulador.
xcrun simctl list devices booted. Se o aplicativo não estiver instalado, compile e instale com as próprias ferramentas do usuário. - Percorra o aplicativo uma vez sem gravar. Escolha de 3 a 5 momentos que mostrem os principais recursos. Limpe diálogos de integração, permissão e cookies agora para que não apareçam na captura.
- Grave uma única captura.
Pause cerca de um segundo em cada tela que deseja manter. Se toques falharem logo após o simulador inicializar, aguarde 20 segundos e tente novamente.scripts/record.sh start work/raw.mp4 <UDID> # dirija o aplicativo: sua ferramenta de simulador, um XCUITest no projeto, ou peça ao usuário para tocar scripts/record.sh stop <UDID> - Leia a captura. O arquivo termina na última mudança de tela; portanto, uma tela final estática é cortada e uma captura de uma tela que nunca muda é quase vazia. Cronometre as cenas a partir do arquivo, não da memória.
Abrapython3 scripts/compose.py frames work/raw.mp4 workwork/contact-sheet.png: 8 quadros por linha, quadro N é o segundo N. - Escreva
storyboard.json.{ "app_name": "MyApp", "background": ["#0B1020", "#3B2AA8"], "scenes": [ {"start": 0.3, "end": 5.8, "caption": "O que esta tela faz"}, {"start": 8.0, "end": 10.0, "speed": 0.8, "caption": "Próximo passo"} ], "end_card": {"title": "MyApp", "subtitle": "A própria tagline do aplicativo"} }start/endsão segundos na gravação.speedabaixo de 1 desacelera uma cena, acima de 1 acelera.holdcongela o último quadro da cena por esse número de segundos, o que é útil para permanecer em uma tela de resultado.backgroundaceita uma cor ou um gradiente de cima para baixo;text_colorecaption_sizesão opcionais. Removaend_cardpara terminar na última cena. Corte spinners de carregamento. As cenas devem totalizar de 15 a 30 segundos, caso contrário, a App Store Connect rejeitará a pré-visualização. - Renderize.
Ele imprimepython3 scripts/compose.py render work/raw.mp4 storyboard.json outout/report.jsone avisa quando a duração da pré-visualização está fora do intervalo. - Verifique antes de entregar. Extraia um quadro de cada cena (
ffmpeg -ss <t> -i out/reel-1080x1920.mp4 -frames:v 1 f.png) e examine: a legenda corresponde à tela, nada privado, nada cortado.
Notas
- Requisitos: macOS, Xcode (para
simctleswift), ffmpeg, python3. record.shdefine a barra de status para 9:41 com bateria cheia e sinal. Limpe depois comxcrun simctl status_bar <UDID> clear.- Os números de pré-visualização da App Store usados aqui (886x1920, 15-30 s, 30 fps, H.264 High 4.0, AAC estéreo) vêm das especificações de pré-visualização do aplicativo da Apple. Verifique essa página se um upload for rejeitado.
- A trilha de áudio é silenciosa. Adicione música ou voz em um editor se quiser som.