08/07/2024
Tag skærmbilleder og optag videoer fra din iOS Simulator i Xcode
Som iOS-udvikler vil du ofte have brug for at fange din apps skærm eller optage en video af den. Dette kan være til brug for App Store screenshots, preview-videoer eller simpelthen til intern dokumentation og deling. Heldigvis behøver du ikke eksterne værktøjer for at opnå dette. Xcode og dens medfølgende værktøjer giver dig mulighed for at håndtere disse opgaver direkte fra din Mac.

Den hurtigste og mest intuitive måde at tage et skærmbillede på er direkte i iOS Simulatoren. Når din app kører i Simulatoren, kan du blot bruge tastaturgenvejen ⌘ Command + S. Alternativt kan du navigere i menuen øverst i Simulatoren til File > New Screen Shot. Uanset hvilken metode du vælger, vil skærmbilledet automatisk blive gemt på dit skrivebord (Desktop).
Avanceret kontrol med xcrun
For dem, der ønsker mere kontrol eller ønsker at automatisere processen, tilbyder Apple værktøjet xcrun. xcrun er en kraftfuld kommandolinje-utility, der giver dig adgang til at køre forskellige værktøjer inden for Xcode. Dette inkluderer muligheden for at tage skærmbilleder og optage videoer af din simulator.
Tag et skærmbillede med xcrun
For at tage et skærmbillede ved hjælp af xcrun, skal du først køre din app i Simulatoren. Åbn derefter Terminal.app (findes typisk i /Applications/Utilities) og indtast følgende kommando:
xcrun simctl io booted screenshot <filnavn>.<filtype>
Erstat <filnavn> med det ønskede navn til dit skærmbillede og <filtype> med den ønskede billedformat (f.eks. png, jpeg). Skærmbilledet vil blive gemt i den aktuelle mappe i Terminal. Hvis du er usikker på, hvor den aktuelle mappe er, kan du altid skrive pwd i Terminal og trykke Enter.

Eksempel:
xcrun simctl io booted screenshot myScreenshot.png
xcrun muligheder for skærmbilleder
xcrun simctl io booted screenshot kommandoen tilbyder flere nyttige muligheder for at tilpasse dit skærmbillede:
- --type: Angiver billedformatet. Mulige værdier er
png(standard),tiff,bmp,gif,jpeg. - --display: Specificerer, om skærmbilledet skal tage udgangspunkt i den interne eller eksterne visning af simulatoren. For iOS er standarden
internal. tvOS understøtter kunexternal, mens watchOS kun understøtterinternal. - --mask: Bruges til ikke-rektangulære skærme (f.eks. med notch eller afrundede hjørner) til at håndtere masken. Mulighederne er
ignored(ignorerer masken),alpha(bruger masken som premultiplied alpha) ogblack(gør maskeområdet sort).
Eksempel med muligheder:
Her er et eksempel, der tager et JPEG-skærmbillede med en sort maske for at inkludere enhedens notch og afrundede hjørner:
xcrun simctl io booted screenshot --type=jpeg --mask=black myScreenshot.jpeg
Optag en video med xcrun
xcrun er også ideel til at optage video af din simulator. Selvom du kan bruge værktøjer som QuickTime, er xcrun ofte mere bekvemt.
Start med at køre din app i Simulatoren. Åbn derefter Terminal.app og indtast følgende kommando:
xcrun simctl io booted recordVideo <filnavn>.<filtype>
Erstat <filnavn> og <filtype> som tidligere. For at stoppe videooptagelsen trykker du på ⌃ Control + C.
Videoen vil blive gemt i den aktuelle mappe. Igen, brug pwd hvis du er usikker på placeringen.

Eksempel:
xcrun simctl io booted recordVideo myVideo.mov
xcrun muligheder for videooptagelse
Ligesom med skærmbilleder tilbyder videooptagelse også tilpasningsmuligheder:
- --codec: Angiver videocodecen. Standard er
hevc, men du kan også brugeh264. - --display: Som ved skærmbilleder, vælg mellem
internalellerexternalvisning. - --mask: Håndterer masken for ikke-rektangulære skærme med de samme muligheder:
ignored,alpha(bemærk: ikke understøttet for alpha, men bibeholdt for kompatibilitet; masken renderes som sort) ogblack. - --force: Tvinger overskrivning af en eksisterende fil med samme navn og sti.
Eksempel med muligheder:
Optag en video med H.264 codec, sort maske og tving overskrivning af en eksisterende fil:
xcrun simctl io booted recordVideo --codec=h264 --mask=black --force myVideo.mov
Valg af specifik simulator
Hvis du har flere simulatorer kørende, eller ønsker at målrette en specifik enhed, kan du bruge dens unikke ID i stedet for booted. Du kan finde en liste over alle tilgængelige simulatorer og deres ID'er ved at køre:
xcrun simctl list
Outputtet vil vise en liste som denne:
-- iOS 14.0 -- iPhone 8 (E3534007-01B1-4D14-BA34-EF0FD2120AD5) (Shutdown) iPhone 11 Pro (DB2F38F1-D672-4788-87D8-32C764F9C4E6) (Booted)
Du kan derefter erstatte booted med ID'et for den ønskede simulator, f.eks.:
xcrun simctl io E3534007-01B1-4D14-BA34-EF0FD2120AD5 screenshot mySpecificSimulatorScreenshot.png
Skærmbillede med enhedskant (Device Frame)
Nogle gange ønsker du at inkludere selve enhedens ramme eller "kant" omkring dit skærmbillede, for at give det et mere autentisk udseende, især til marketingmateriale. Mens xcrun som standard ikke inkluderer dette, kan du opnå det via tredjeparts værktøjer eller ved at tage et skærmbillede og derefter tilføje rammen separat. Værktøjer som "WithFrame" kan automatisk detektere enhedskanten baseret på skærmbilledets dimensioner og tilføje den korrekt.
Konklusion
At tage skærmbilleder og optage videoer af din iOS Simulator er en ligetil proces, der kan udføres med få simple trin eller avancerede kommandolinje-kommandoer. Ved at mestre xcrun kan du ikke blot spare tid, men også automatisere disse opgaver, hvilket er en stor fordel, især hvis du arbejder med flere enheder eller skal generere hyppige opdateringer til App Store.
For yderligere detaljer om xcrun simctl og dets mange muligheder, kan du altid køre kommandoen:
xcrun simctl io help
Ofte stillede spørgsmål (FAQ)
- Hvad er den hurtigste måde at tage et skærmbillede på i iOS Simulator?
- Brug tastaturgenvejen ⌘ Command + S eller gå via menuen File > New Screen Shot.
- Hvor gemmes skærmbilleder taget med genvejen?
- De gemmes automatisk på dit skrivebord (Desktop).
- Kan jeg vælge filformatet for skærmbilledet med xcrun?
- Ja, brug
--typeparameteren, f.eks.--type=jpeg. - Hvordan stopper jeg en videooptagelse med xcrun?
- Tryk på ⌃ Control + C i Terminal-vinduet, hvor optagelsen kører.
- Hvordan tager jeg et skærmbillede med enhedens ramme (notch, afrundede hjørner)?
- Brug
--maskparameteren medblackelleralpha, eller brug et tredjeparts værktøj som "WithFrame" efterfølgende.
Hvis du vil læse andre artikler, der ligner Skærmbilleder og video fra iOS Simulator, kan du besøge kategorien Teknologi.
