feat: Implement app versioning and update gitignore

- Adds appVersion and buildNumber to AppConfig.swift for centralized version management.
- Updates scryfallUserAgent to use the dynamic appVersion.
- Updates .gitignore to exclude AI asset and training directories.
- Adds a version check step to the README release checklist.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
This commit is contained in:
2026-03-05 12:19:35 -05:00
parent 24dcb44af4
commit 52afbd56af
3 changed files with 14 additions and 2 deletions

7
.gitignore vendored
View File

@@ -27,3 +27,10 @@ env/
# Mac-specific # Mac-specific
.DS_Store .DS_Store
# AI-generated assets
Raw_Assets/
Ready_Assets/
# ML Training Data
IYmtg_Training/

View File

@@ -22,9 +22,13 @@ enum CurrencyCode: String, CaseIterable, Codable {
struct AppConfig { struct AppConfig {
// 1. CONTACT EMAIL (Required by Scryfall) // 1. CONTACT EMAIL (Required by Scryfall)
static let contactEmail = "support@iymtg.com" // Example: Use your real email static let contactEmail = "support@iymtg.com" // Example: Use your real email
// 2. IN-APP PURCHASE ID (Use a "Consumable" type in App Store Connect for repeatable tips) // 2. IN-APP PURCHASE ID (Use a "Consumable" type in App Store Connect for repeatable tips)
static let tipJarProductIDs: [String] = [] // Example: Use your real Product ID static let tipJarProductIDs: [String] = [] // Example: Use your real Product ID
// 3. VERSIONING
static let appVersion = "1.0.0" // Follows Semantic Versioning (Major.Minor.Patch)
static let buildNumber = "1" // Increments with each build submitted to App Store Connect
// Feature Flags // Feature Flags
static let enableFoilDetection = true static let enableFoilDetection = true
@@ -53,7 +57,7 @@ struct AppConfig {
} }
static var scryfallUserAgent: String { static var scryfallUserAgent: String {
return "IYmtg/1.0 (\(contactEmail))" return "IYmtg/\(appVersion) (\(contactEmail))"
} }
static func validate() { static func validate() {

View File

@@ -302,6 +302,7 @@ Perform these steps before submitting to the App Store.
* [ ] Verify `contactEmail` is valid. * [ ] Verify `contactEmail` is valid.
* [ ] Verify `tipJarProductIDs` match App Store Connect. * [ ] Verify `tipJarProductIDs` match App Store Connect.
* [ ] Ensure `enableFoilDetection` and other flags are `true`. * [ ] Ensure `enableFoilDetection` and other flags are `true`.
* [ ] Update `appVersion` (Semantic Versioning: Major.Minor.Patch) and `buildNumber` for this release.
2. **iCloud / CloudKit:** 2. **iCloud / CloudKit:**
* [ ] Signing & Capabilities → iCloud → CloudKit enabled. * [ ] Signing & Capabilities → iCloud → CloudKit enabled.
* [ ] CloudKit container added: `iCloud.<bundle-id>`. * [ ] CloudKit container added: `iCloud.<bundle-id>`.