Store Configuration (Xcode)
Jasonelle manages Apple App Store release metadata through store.jsonc.
Overview
The build pipeline merges lib/common/config/store.jsonc with lib/xcode/config/store.jsonc.
The merged output is written to build/xcode/config/store.jsonc.
The configuration follows standard Fastlane parameter names.
Run the following command to merge the configuration files:
task jsonc.xcode
File Locations
-
lib/common/config/store.jsonc: Common store metadata and release settings. -
lib/xcode/config/store.jsonc: Xcode specific settings and overrides. -
build/xcode/config/store.jsonc: Merged file consumed by the build pipeline.
Common Configuration (lib/common/config/store.jsonc)
The lib/common/config/store.jsonc file defines settings shared across Android and iOS stores.
These values provide the baseline store presence for the application.
Common Sections
metadata
Provides localized store listing content per language code.
| Property | Type | Description |
|---|---|---|
|
String |
The primary locale code for store listings (for example, |
|
String |
The application name displayed on store listings. |
|
String |
The full descriptive text for the application. |
|
String |
The comma-separated keywords for search indexing. |
|
String |
The privacy policy URL required by app stores. |
|
String |
The customer support website URL. |
|
String |
The marketing or product website URL. |
|
String |
The changelog description for this release. |
review_information
Stores contact information and test account credentials for app reviewers.
| Property | Type | Description |
|---|---|---|
|
String |
The first name of the developer contact. |
|
String |
The last name of the developer contact. |
|
String |
The email address of the developer contact. |
|
String |
The telephone number of the developer contact. |
|
String |
The username for the reviewer test account. |
|
String |
The password for the reviewer test account. |
|
String |
Instructions for the store review team. |
release
Controls shared release and upload automation behavior.
| Property | Type | Description |
|---|---|---|
|
Boolean |
Skip uploading screenshots during deployment. |
|
Boolean |
Skip uploading store metadata during deployment. |
|
Boolean |
Submit the release for review automatically. |
|
Boolean |
Release the app automatically after store approval. |
Common Configuration Example
{
"metadata": {
"default_language": "en-US",
"en-US": {
"title": "Jasonelle v4",
"description": "Jasonelle turns web applications into high-performance native iOS and Android apps with full native capabilities.",
"keywords": "jasonelle, webview, mobile, ios, android, hybrid, native",
"privacy_url": "https://jasonelle.com/privacy",
"support_url": "https://jasonelle.com/support",
"marketing_url": "https://jasonelle.com",
"release_notes": "Initial release of Jasonelle v4."
}
},
"review_information": {
"contact_first_name": "Jason",
"contact_last_name": "Elle",
"contact_email": "developer@example.com",
"contact_phone": "+1234567890",
"demo_user": "demo@example.com",
"demo_password": "DemoPassword123!",
"notes": "Test login credentials provided above for app review."
},
"release": {
"skip_screenshots": false,
"skip_metadata": false,
"submit_for_review": false,
"automatic_release": false
}
}
Xcode Configuration (lib/xcode/config/store.jsonc)
The lib/xcode/config/store.jsonc file specifies Apple App Store parameters and overrides.
Xcode Sections
appfile
Configures Apple identifiers and credentials for Fastlane tools.
| Property | Type | Description |
|---|---|---|
|
String |
The iOS bundle identifier. |
|
String |
The Apple ID email address. |
|
String |
The Apple Developer Portal Team ID. |
|
String |
The App Store Connect Team ID. |
|
String |
The Apple Developer Portal Team Name. |
deliver
Configures the Fastlane deliver tool for App Store publishing.
| Property | Type | Description |
|---|---|---|
|
String |
The deployment platform ( |
|
Boolean |
Modify metadata of the currently live version. |
|
Boolean |
Skip uploading the IPA build package. |
|
Boolean |
Skip uploading device screenshots. |
|
Boolean |
Skip uploading App Store text metadata. |
|
Boolean |
Retain existing app version number on App Store Connect. |
|
Boolean |
Bypass HTML verification report preview. |
|
Boolean |
Enable 7-day phased rollout for app updates. |
|
Boolean |
Reset the rating summary for this app version. |
|
Number |
The pricing tier number ( |
|
String |
Path to the age rating configuration JSON file. |
|
Object |
Export compliance and advertising identifier declarations. |
match
Configures Fastlane match for automated iOS code signing.
| Property | Type | Description |
|---|---|---|
|
String |
Certificate type ( |
|
String |
Certificate storage backend ( |
|
String |
Git repository URL containing encrypted certificates. |
|
Boolean |
Execute shallow git clone during signing operations. |
|
Boolean |
Prevent certificate regeneration in CI environments. |
Xcode Configuration Example
{
"appfile": {
"app_identifier": "com.example.application",
"apple_id": "developer@example.com",
"team_id": "XXXXXXXXXX",
"itc_team_id": "12345678",
"team_name": "Example Team"
},
"deliver": {
"platform": "ios",
"edit_live": false,
"skip_binary_upload": false,
"skip_screenshots": false,
"skip_metadata": false,
"skip_app_version_update": false,
"force": false,
"phased_release": true,
"reset_ratings": false,
"price_tier": 0,
"app_rating_config_path": "lib/xcode/config/rating.json",
"submission_information": {
"export_compliance_uses_encryption": false,
"export_compliance_encryption_updated": false,
"add_id_info_uses_idfa": false,
"add_id_info_serves_ads": false,
"add_id_info_tracks_install": false,
"add_id_info_tracks_action": false
}
},
"match": {
"type": "appstore",
"storage_mode": "git",
"git_url": "git@github.com:example/certificates.git",
"shallow_clone": true,
"readonly": true
},
"metadata": {
"en-US": {
"subtitle": "Web to Native Wrapper",
"promotional_text": "Experience Jasonelle v4 with modern web technologies."
}
},
"gym": {
"scheme": "Application",
"clean": true,
"export_method": "app-store"
}
}
Merged Output (build/xcode/config/store.jsonc)
The following example shows the resulting merged file after running task jsonc.xcode:
{
"appfile": {
"app_identifier": "com.example.application",
"apple_id": "developer@example.com",
"itc_team_id": "12345678",
"team_id": "XXXXXXXXXX",
"team_name": "Example Team"
},
"deliver": {
"app_rating_config_path": "lib/xcode/config/rating.json",
"edit_live": false,
"force": false,
"phased_release": true,
"platform": "ios",
"price_tier": 0,
"reset_ratings": false,
"skip_app_version_update": false,
"skip_binary_upload": false,
"skip_metadata": false,
"skip_screenshots": false,
"submission_information": {
"add_id_info_serves_ads": false,
"add_id_info_tracks_action": false,
"add_id_info_tracks_install": false,
"add_id_info_uses_idfa": false,
"export_compliance_encryption_updated": false,
"export_compliance_uses_encryption": false
}
},
"gym": {
"clean": true,
"export_method": "app-store",
"scheme": "Application"
},
"match": {
"git_url": "git@github.com:example/certificates.git",
"readonly": true,
"shallow_clone": true,
"storage_mode": "git",
"type": "appstore"
},
"metadata": {
"default_language": "en-US",
"en-US": {
"description": "Jasonelle turns web applications into high-performance native iOS and Android apps with full native capabilities.",
"keywords": "jasonelle, webview, mobile, ios, android, hybrid, native",
"marketing_url": "https://jasonelle.com",
"privacy_url": "https://jasonelle.com/privacy",
"promotional_text": "Experience Jasonelle v4 with modern web technologies.",
"release_notes": "Initial release of Jasonelle v4.",
"subtitle": "Web to Native Wrapper",
"support_url": "https://jasonelle.com/support",
"title": "Jasonelle v4"
}
},
"release": {
"automatic_release": false,
"skip_metadata": false,
"skip_screenshots": false,
"submit_for_review": false
},
"review_information": {
"contact_email": "developer@example.com",
"contact_first_name": "Jason",
"contact_last_name": "Elle",
"contact_phone": "+1234567890",
"demo_password": "DemoPassword123!",
"demo_user": "demo@example.com",
"notes": "Test login credentials provided above for app review."
}
}