Skip to main content

Migrating from v1.12.0 to v1.13.0

v1.13.0 replaces the icon-only button that opens missed earnings with a text pill reading "Report". It appears in the receipt summary header and in the receipt details navigation bar. A new "Missing rewards? / Update your receipt" footer also appears at the bottom of the Your Earnings section — it opens the same flow and requires no code changes.

This release contains two breaking changes. Both are compile-time errors in any Theme that references either removed name.


Breaking change 1 — Renamed color key​

AppearanceColorKey.postScanReceiptButtonIcon is renamed to AppearanceColorKey.postScanReceiptButtonLabel. The key now tints the button's text instead of an icon. Keep your existing color value if it works on the button background — the SDK default is .white.

// v1.12.0
func color(forKey key: AppearanceColorKey) -> UIColor? {
switch key {
case .postScanReceiptButtonIcon: // ← removed
return .white
default: return nil
}
}

// v1.13.0
func color(forKey key: AppearanceColorKey) -> UIColor? {
switch key {
case .postScanReceiptButtonLabel: // ← renamed; now the text color
return .white
default: return nil
}
}
Objective-C
// v1.12.0
- (UIColor *)colorForKey:(AppearanceColorKey)key {
switch (key) {
case AppearanceColorKeyPostScanReceiptButtonIcon: // ← removed
return UIColor.whiteColor;
default: return nil;
}
}

// v1.13.0
- (UIColor *)colorForKey:(AppearanceColorKey)key {
switch (key) {
case AppearanceColorKeyPostScanReceiptButtonLabel: // ← renamed
return UIColor.whiteColor;
default: return nil;
}
}

Breaking change 2 — Removed icon key​

AppearanceIconKey.postScanReceiptButtonIcon is removed. The button no longer renders an image, so there is no replacement. Delete the case from your image(forKey:) implementation:

// v1.12.0
func image(forKey key: AppearanceIconKey) -> UIImage? {
switch key {
case .postScanReceiptButtonIcon: // ← delete this branch
return UIImage(named: "my-receipt-icon")
default: return nil
}
}

// v1.13.0 — branch removed; nothing to replace it with
func image(forKey key: AppearanceIconKey) -> UIImage? {
nil
}
Raw value shift

Removing postScanReceiptButtonIcon shifted the raw integer values of subsequent AppearanceIconKey cases, and the new font key (below) shifted subsequent AppearanceFontNameKey cases. Always match enum cases by name, never by raw value.


New font key (optional)​

AppearanceFontNameKey.postScanReceiptButtonLabel sets the typeface of the "Report" text. It defaults to 12 pt bold, falling back to globalFontMatrix and then the system font. No action is required unless you want a specific family.


Button background shape note​

AppearanceColorKey.postScanReceiptButtonBackground is unchanged and still styles the button's background, but that background is now a rounded pill sized to the "Report" text rather than a 40 × 40 circle. Verify your custom background color still looks correct against the wider shape.