Swift and iOS dev with Igor
The ride of the iOS developer

fastlane: Metadata

Apple can reject an app for metadata issues like mentioning other platforms, bad-mouthing Apple, and others. Use fastlane's precheck to examine your app for App Store review rules compliance.

$ bundle exec fastlane precheck

precheck is an alias for the check_app_store_metadata.

Use Precheckfile to store your precheck defaults, run fastlane precheck init to create one. Set the desired level for the check: skip, warn, or error:

# skip checking this metadata
negative_apple_sentiment(level: :skip)

# trigger a warning
curse_words(level: :warn)

# show error and stop after precheck
unreachable_urls(level: :error)

# check for words
custom_text(
    data: ["chrome", "webos"],
    level: :warn
)

By default all levels are set to :error, so you need to list only those keys that you want to skip or warn.

At the time of writing, "precheck cannot check In-app purchases with the App Store Connect API Key (yet)", but the default is true, so it makes sense to change it to false.

Important: precheck does not check Appfile for App Store credentials and app identifiers, so you'd need to add them into Precheckfile:

app_identifier APP_IDENTIFIER
username USERNAME
team_name TEAM_NAME
team_id TEAM_ID

Use in Fastfile:

# run precheck alone
lane :check_metadata do
    precheck
end

precheck is also integrated with deliver:

# Fastfile

lane :production do
    # ...

    # by default deliver will call precheck and warn you of any problems
    # if you want precheck to halt submitting to app review, you can pass
    # precheck_default_rule_level: :error
    deliver(precheck_default_rule_level: :error)

    # ...
end

For the full list of the keys to check and more see precheck - fastlane docs.

Published on: Sep 1, 2022
Tagged with: