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

View File

@@ -22,9 +22,13 @@ enum CurrencyCode: String, CaseIterable, Codable {
struct AppConfig {
// 1. CONTACT EMAIL (Required by Scryfall)
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)
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
static let enableFoilDetection = true
@@ -53,7 +57,7 @@ struct AppConfig {
}
static var scryfallUserAgent: String {
return "IYmtg/1.0 (\(contactEmail))"
return "IYmtg/\(appVersion) (\(contactEmail))"
}
static func validate() {