From 166aa470775768bd17970eaa5200f30422b4bc6e Mon Sep 17 00:00:00 2001 From: Jay Kim Date: Fri, 24 Jan 2025 00:34:40 +0900 Subject: [PATCH 1/2] fix(ios): register asset view properly in old arch --- .../RNGoogleMobileAdsNativeView.mm | 15 ++++++++++----- 1 file changed, 10 insertions(+), 5 deletions(-) diff --git a/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm b/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm index 874b5f50..4ce94964 100644 --- a/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm +++ b/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm @@ -127,7 +127,12 @@ - (void)setResponseId:(NSString *)responseId { - (void)registerAsset:(NSString *)assetType reactTag:(NSInteger)reactTag { RCTExecuteOnMainQueue(^{ UIView *view = [_bridge.uiManager viewForReactTag:@(reactTag)]; - + if (!view) { + RCTLogError(@"Cannot find NativeAssetView with tag #%zd while registering asset type %@", + reactTag, assetType); + return; + } + if ([assetType isEqual:@"media"] && [view isKindOfClass:RNGoogleMobileAdsMediaView.class]) { #ifdef RCT_NEW_ARCH_ENABLED GADMediaView *mediaView = ((RNGoogleMobileAdsMediaView *)view).contentView; @@ -194,9 +199,9 @@ - (UIView *)view { } RCT_EXPORT_METHOD(registerAsset - : (nonnull NSNumber *)reactTag commandID - : (NSInteger)commandID commandArgs - : (NSArray *)commandArgs) { + : (nonnull NSNumber *)reactTag assetType + : (nonnull NSString *)assetType assetReactTag + : (nonnull NSNumber *)assetReactTag) { [self.bridge.uiManager addUIBlock:^(RCTUIManager *uiManager, NSDictionary *viewRegistry) { RNGoogleMobileAdsNativeView *view = viewRegistry[reactTag]; @@ -204,7 +209,7 @@ - (UIView *)view { RCTLogError(@"Cannot find NativeView with tag #%@", reactTag); return; } - [view registerAsset:commandArgs[0] reactTag:((NSNumber *)commandArgs[1]).intValue]; + [view registerAsset:assetType reactTag:assetReactTag.intValue]; }]; } #endif From 28fad85a81a739958fa97db5780bce9d759758eb Mon Sep 17 00:00:00 2001 From: Jay Kim Date: Fri, 24 Jan 2025 00:43:29 +0900 Subject: [PATCH 2/2] chore: fix lint issue --- ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm b/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm index 4ce94964..c3c612a0 100644 --- a/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm +++ b/ios/RNGoogleMobileAds/RNGoogleMobileAdsNativeView.mm @@ -132,7 +132,7 @@ - (void)registerAsset:(NSString *)assetType reactTag:(NSInteger)reactTag { reactTag, assetType); return; } - + if ([assetType isEqual:@"media"] && [view isKindOfClass:RNGoogleMobileAdsMediaView.class]) { #ifdef RCT_NEW_ARCH_ENABLED GADMediaView *mediaView = ((RNGoogleMobileAdsMediaView *)view).contentView;