App Store
The appstore target publishes your package artifacts to the App Store Connect.
Set up environment variables
requires some environment variables set up to run correctly,Choose one of the following ways.
- Username and password
Get an app-specific password:https://support.apple.com/HT204397
export APPSTORE_USERNAME="Login Username"
export APPSTORE_PASSWORD="App-specific password"
- API key
App Store Connect API: https://developer.apple.com/documentation/appstoreconnectapi
export APPSTORE_APIKEY="API key"
export APPSTORE_APIISSUER="API issuer"
Usage
Run:
fastforge publish \
--path dist/1.0.0+1/hello_world-1.0.0+1-ios.ipa \
--targets appstore /
Configure distribute_options.yaml
yaml
variables:
APPSTORE_USERNAME: 'xxx'
APPSTORE_PASSWORD: 'xxx'
# or
# APPSTORE_APIKEY: "xxx"
# APPSTORE_APIISSUER: "xxx"
output: dist/
releases:
- name: dev
jobs:
- name: release-dev-ios
package:
platform: ios
target: ipa
build_args:
target: lib/main.dart
export-options-plist: ios/ExportOptions.plist
# Publish to appstore
publish:
target: appstore
Note: Make sure your
export-options-plist
has themethod
set toapp-store
. Other export methods likead-hoc
,development
, orenterprise
will cause the upload to App Store Connect to fail.
Here's an example of an ExportOptions.plist
file with the correct settings for App Store submission:
xml
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>method</key>
<string>app-store</string>
<!-- ... other settings ... -->
</dict>
</plist>
Run:
fastforge release --name dev