iOSでネイティブ広告を出す際にIBOutletを繋げられない時の対処法

これは エキサイトホールディングス Advent Calendar 2021 18日目の記事です。

エキサイト株式会社の高野です。今回はFlutterにおけるネイティブ広告の話です。

はじめに

今回の記事はgoogle_mobile_ads(1.0.0)の話ですので他のライブラリを使っていたり、バージョンが上がって修正されているかもしれませんのでご容赦ください。

対処法

まず、原因としてですがSDKのIssueを除いてみると以下のようです。

xcframeworkは一般的に.xibファイルと互換性がありません。 これはAppleのバグであり、いつ修正されるかはわかりません。

このような状況ですのでいつ治るかというのは不明みたいです。これによってIBOutletを接続することができないのできません。

解決方法ですが、以下ディレクトリに存在するGADNativeAdをRunnerと同階層に一度コピーしてあげることでIBOutletの接続が可能になります。

/Pods/Google-Mobile-Ads-SDK/Frameworks/GoogleMobileAdsFramework-Current/GoogleMobileAds.xcframework/ios-arm64_armv7/GoogleMobileAds.framework/Headers/GADNativeAd.h

接続することができましたらコピーしたGADNativeAdは削除していただいて構いません。
元のGADNativeAdと連携されているので、そちらを確認してみると繋がれています。
こちらの仕組みに関しましては自分の方でも詳しく調べられていないのでご教示いただけると大変助かります。

最後に

弊社では絶賛採用強化中です。もしご興味がある方がいましたら下記リンクよりアクセスいただけると幸いです。(カジュアルからもOKです) www.wantedly.com