Skip to content

Commit 2996b94

Browse files
committed
refactor: move AdMob sample overrides to local config
Read API key, proxy URL, and all ad unit IDs from optional local build settings while preserving committed defaults in source so developers can test locally without creating tracked diffs.
1 parent 181cacb commit 2996b94

15 files changed

Lines changed: 144 additions & 18 deletions

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/README.md

Lines changed: 19 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -72,9 +72,23 @@ This sample uses RevenueCatAdMob APIs exposed as experimental Swift SPI (`@_spi(
7272

7373
### 2. Configure the app
7474

75-
1. Open `Sources/Constants.swift`.
76-
2. Replace `YOUR_REVENUECAT_API_KEY` with your real RevenueCat API key.
77-
3. Keep the default AdMob test ad unit IDs in each `Sources/AdManagers/*AdManager.swift` file for local testing.
75+
1. Copy `Local.xcconfig.SAMPLE` to `Local.xcconfig` (repo root). `Local.xcconfig` is ignored by git.
76+
2. Set local override keys in `Local.xcconfig` (without quotes), for example:
77+
- `RC_REVENUECAT_API_KEY = appl_...`
78+
- `RC_PROXY_URL = http://localhost:8000/`
79+
- `RC_REWARDED_AD_UNIT_ID_OVERRIDE = ca-app-pub-.../...`
80+
- `RC_REWARDED_INTERSTITIAL_AD_UNIT_ID_OVERRIDE = ca-app-pub-.../...`
81+
- Available ad unit override keys:
82+
- `RC_BANNER_AD_UNIT_ID_OVERRIDE`
83+
- `RC_INTERSTITIAL_AD_UNIT_ID_OVERRIDE`
84+
- `RC_APP_OPEN_AD_UNIT_ID_OVERRIDE`
85+
- `RC_REWARDED_AD_UNIT_ID_OVERRIDE`
86+
- `RC_REWARDED_INTERSTITIAL_AD_UNIT_ID_OVERRIDE`
87+
- `RC_NATIVE_AD_UNIT_ID_OVERRIDE`
88+
- `RC_NATIVE_VIDEO_AD_UNIT_ID_OVERRIDE`
89+
- `RC_INVALID_AD_UNIT_ID_OVERRIDE`
90+
3. Run `tuist generate Projects/AdMobIntegrationSample` so these settings are applied to the generated project.
91+
4. Keep committed defaults in source files (placeholder RevenueCat key + Google test AdMob IDs).
7892

7993
### 3. Build and run
8094

@@ -168,7 +182,7 @@ These are official Google test IDs and are safe for development.
168182
Native and native video test IDs can be less reliable than other formats depending on environment. For more reliable native testing:
169183

170184
1. Create ad units in your [AdMob account](https://admob.google.com/)
171-
2. Replace test IDs in the relevant `Sources/AdManagers/*AdManager.swift` file
185+
2. Set override keys in `Local.xcconfig` (for example `RC_NATIVE_AD_UNIT_ID_OVERRIDE`) and regenerate with Tuist
172186
3. Configure your device as a test device in AdMob
173187
4. Keep test mode enabled during validation
174188

@@ -188,7 +202,7 @@ Use the **Error Handling** section in the sample UI:
188202

189203
### "Missing RevenueCat API key" or build fails at startup
190204

191-
Make sure `revenueCatAPIKey` in `Sources/Constants.swift` is set to your real RevenueCat API key (replace the `YOUR_REVENUECAT_API_KEY` placeholder).
205+
Set `RC_REVENUECAT_API_KEY` in `Local.xcconfig`, regenerate with Tuist, and relaunch the app.
192206

193207
### Ads not loading
194208

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/AppOpenAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class AppOpenAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/5575463023"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_APP_OPEN_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/5575463023"
11+
)
12+
}
813

914
var appOpenAd: AppOpenAd?
1015
@Published var message: String?

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/BannerAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class BannerAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/2435281174"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_BANNER_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/2435281174"
11+
)
12+
}
813

914
private(set) var bannerView: BannerView?
1015

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/ErrorTestingAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class ErrorTestingAdManager: NSObject, ObservableObject {
66

7-
private static let invalidAdUnitID = "invalid-ad-unit-id"
7+
private static var invalidAdUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_INVALID_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "invalid-ad-unit-id"
11+
)
12+
}
813

914
private var errorTestBannerView: BannerView?
1015

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/InterstitialAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class InterstitialAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/4411468910"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_INTERSTITIAL_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/4411468910"
11+
)
12+
}
813

914
var interstitialAd: InterstitialAd?
1015
@Published var message: String?

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/NativeAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class NativeAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/2247696110"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_NATIVE_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/2247696110"
11+
)
12+
}
813

914
var nativeAdLoader: AdLoader?
1015

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/NativeVideoAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class NativeVideoAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/1044960115"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_NATIVE_VIDEO_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/1044960115"
11+
)
12+
}
813

914
var nativeVideoAdLoader: AdLoader?
1015

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/RewardedAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class RewardedAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/1712485313"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_REWARDED_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/1712485313"
11+
)
12+
}
813

914
var rewardedAd: RewardedAd?
1015
@Published var message: String?

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/RewardedInterstitialAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class RewardedInterstitialAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/6978759866"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_REWARDED_INTERSTITIAL_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/6978759866"
11+
)
12+
}
813

914
var rewardedInterstitialAd: RewardedInterstitialAd?
1015
@Published var message: String?

AdapterSDKs/RevenueCatAdMob/Examples/AdMobIntegrationSample/Sources/AdManagers/VerifiedRewardedAdManager.swift

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,12 @@ import GoogleMobileAds
44

55
final class VerifiedRewardedAdManager: NSObject, ObservableObject {
66

7-
private static let adUnitID = "ca-app-pub-3940256099942544/1712485313"
7+
private static var adUnitID: String {
8+
return Constants.configuredAdUnitID(
9+
forOverrideKey: "RC_REWARDED_AD_UNIT_ID_OVERRIDE",
10+
defaultValue: "ca-app-pub-3940256099942544/1712485313"
11+
)
12+
}
813

914
var rewardedAd: RewardedAd?
1015
@Published var message: String?

0 commit comments

Comments
 (0)