fastlane: [snapshot/deliver] iPhone XR screenshots size mismatch

While investigating #13610/#13698 I encountered a problem regarding the iPhone XR screenshots:

So snapshot takes a XR screenshot as 828x1792, but App Store Connect expects a XR screenshot as 1242x2688 from deliver - which is causing problems for fastlane users.


Why does Apple expect a different resolution than the actual device has? The problem is that they don’t really support the iPhone XR in App Store Connect at all: The actual Device is 6.1 inches, but in the screenshot specification it is grouped with the 6.5 inch iPhone XS Max.

(Reasoning behind this is that because of the different ppi the both devices use to display their screenshots, the actual, real world size is pretty similar.)


So, what should we do about this?

The XR is a real device, so being able to take screenshots with snapshot in its device resolution makes sense. But we can’t let users upload those screenshots to App Store Connect via deliver, because it will fail.

About this issue

  • Original URL
  • State: closed
  • Created 5 years ago
  • Comments: 20 (7 by maintainers)

Most upvoted comments

Oh right, sorry, you actually only reported problems with iPhone XR, so your information is at the right place here:

Alright, this is the output of my fastlane env:

✅ fastlane environment ✅

Stack

Key Value
OS 10.14.2
Ruby 2.4.1
Bundler? true
Git git version 2.17.2 (Apple Git-113)
Installation Source ~/.rvm/gems/ruby-2.4.1/bin/fastlane
Host Mac OS X 10.14.2 (18C54)
Ruby Lib Dir ~/.rvm/rubies/ruby-2.4.1/lib
OpenSSL Version OpenSSL 1.1.0f 25 May 2017
Is contained false
Is homebrew false
Is installed via Fabric.app false
Xcode Path /Applications/Xcode 10.app/Contents/Developer/
Xcode Version 10.1

System Locale

Variable Value
LANG fr_CA.UTF-8
LC_ALL
LANGUAGE

fastlane files:

`./fastlane/Fastfile`

platform :ios do
  xcWorkspace = ''
  exportPath = ''

  desc "Set build number to some value"
  lane :set_build_number do |options|
    increment_build_number(
      xcodeproj: ''
    )
  end

  desc "Create snapshots and upload to iTunes Connect"
  lane :screenshots do
    snapshot
  end

  desc "Deploy a new version to the App Store"
  lane :prod do |options|
    set_build_number

    clear_derived_data

    gym(
      scheme: '42Bieres',
      workspace: xcWorkspace,
      output_directory: exportPath,
      output_name: '',
      export_method: 'app-store',
      xcargs: '-allowProvisioningUpdates'
    )

    screenshots

    deliver(
      submit_for_review: false,
      ipa: '',
      app_version: options[:appVersion],
      metadata_path: ''
      force: false,
      overwrite_screenshots: true
    )
  end
end

platform :android do
  projectDir = ''

  desc "Deploy a new version to the Google Play"
  lane :deploy do
    # Upload to Google Play Store
    supply(
      track: 'alpha',
      metadata_path: '' 
    )
  end
end

`./fastlane/Appfile`
# iOS
app_identifier "" # The bundle identifier of your app
apple_id "" # Your Apple email address
team_id ""  # Developer Portal Team ID

# Android
json_key_file("") # Path to the json secret file - Follow https://docs.fastlane.tools/actions/supply/#setup to get one
package_name("") # e.g. com.krausefx.app

fastlane gems

Gem Version Update-Status
fastlane 2.113.0 ✅ Up-To-Date

Loaded fastlane plugins:

No plugins Loaded

Loaded gems
Gem Version
did_you_mean 1.1.0
io-console 0.4.6
CFPropertyList 3.0.0
concurrent-ruby 1.0.5
i18n 0.9.1
minitest 5.10.1
thread_safe 0.3.6
tzinfo 1.2.4
activesupport 4.2.10
public_suffix 2.0.5
addressable 2.5.2
atomos 0.1.3
babosa 1.0.2
bundler 1.16.1
claide 1.0.2
fuzzy_match 2.0.4
nap 1.1.0
cocoapods-core 1.5.3
cocoapods-deintegrate 1.0.2
cocoapods-downloader 1.2.1
cocoapods-plugins 1.0.0
cocoapods-search 1.0.0
cocoapods-stats 1.0.0
netrc 0.11.0
cocoapods-trunk 1.3.0
cocoapods-try 1.1.0
colored2 3.1.2
escape 0.0.4
fourflusher 2.0.1
gh_inspector 1.1.3
molinillo 0.6.5
ruby-macho 1.1.0
nanaimo 0.2.6
xcodeproj 1.7.0
cocoapods 1.5.3
colored 1.2
highline 1.7.10
commander-fastlane 4.4.6
declarative 0.0.10
declarative-option 0.1.0
digest-crc 0.4.1
unf_ext 0.0.7.5
unf 0.1.4
domain_name 0.5.20180417
dotenv 2.6.0
emoji_regex 0.1.1
excon 0.62.0
multipart-post 2.0.0
faraday 0.15.4
http-cookie 1.0.3
faraday-cookie_jar 0.0.6
faraday_middleware 0.12.2
fastimage 2.1.5
jwt 2.1.0
memoist 0.16.0
multi_json 1.13.1
os 1.0.0
signet 0.11.0
googleauth 0.6.7
httpclient 2.8.3
mime-types-data 3.2018.0812
mime-types 3.2.2
uber 0.1.0
representable 3.0.4
retriable 3.1.2
google-api-client 0.23.9
google-cloud-env 1.0.5
google-cloud-core 1.2.7
google-cloud-storage 1.15.0
json 2.1.0
mini_magick 4.5.1
multi_xml 0.6.0
plist 3.5.0
rubyzip 1.2.2
security 0.1.3
naturally 2.2.0
simctl 1.6.5
slack-notifier 2.3.2
terminal-notifier 1.8.0
unicode-display_width 1.4.1
terminal-table 1.8.0
tty-screen 0.6.5
tty-cursor 0.6.0
tty-spinner 0.9.0
word_wrap 1.0.0
rouge 2.0.7
xcpretty 0.3.0
xcpretty-travis-formatter 1.0.0

generated on: 2019-01-15


Although that problem really is a more general thing: Fastlane has no concept of the screenshot mapping Apple is doing as far as I know, which is the underlying problem of the iPhone XR problem.