Automating app store screenshots


My notes on automating screenshots for the app store.

⚠️️ This is now outdated, we can use XCodes built in screenshot gallary + a simple snippet that can be found here: https://github.com/eonist/UITestSugar#take-screenshot ⚠️️

The quality of an app’s screenshot is fundamental in the decision of buying / downloading on the AppStore.

Requisites:

  1. Download and install Fastlane Snapshot for terminal: https://github.com/fastlane/fastlane/releases
  2. Install brew: https://brew.sh (Needed for imagemagick)
  3. Install imagemagick Terminal: brew install imagemagick (Need for FrameIt )
  4. Install frameIt: fastlane frameit

Workflow:

  1. Add the Snapfile to the project root folder
  2. Terminal: fastlane snapshot And remember to add setupSnapshot(app) just before app.launch in the UITests
  3. Terminal: fastlane frameit download_frames
  4. Terminal: fastlane framit or fastlane frameit silver if you want the white iPhone bezel
  5. Configure the Frameit.conf file. Use the MindNode example from the resource paragraph
  6. Set the titles to match the .png names in title.strings and keywords.strings (⚠️️ Edit these .strings files in XCode ⚠️️)

Gotchas:

  • To create multiline titles use the newline: \n character
  • Edit the titles.strings file in xcode (other apps breaks the syntax)
  • To only add frame with out title, just provide the default fastlane.json
  • ⚠️Important: ⚠️If you set the langue to different than english in snapfile, then after you run a snapshot session. This lang will be inherited in xcode simulator. If you use the setupSnapshot method. To roll this back either set the lang to english and run a snapshot session from terminal or comment out the setupSnapshot method.
  • ⚠️Important: ⚠️Language will hang in snapshot: if you don’t set the scheme lang back to system lang. Also uncomment setupSnapshot if you did that

Tips:

  • To reset all simulators: Terminal: fastlane snapshot reset_simulators

Resources: