SwiftUI프로그래밍

[Xcode][SwfitUI] 구글 Admob 광고 설정방법 및 import GoogleMobileAds 문제 해결 방법

구글 애드몹에 가입되어 있고, ios앱을 추가하였고, 광고 단위를 추가했다는 전제에서 출발한다.

1. Xcode 프로젝트 설정

2-1. Google-Mobile-Ads-SDK 설치 (CocoaPods 또는 Swift Package Manager)

✅ Swift Package Manager (권장)

  1. Xcode 메뉴 > File > Add Packages…
  2. URL에 입력 : https://github.com/googleads/swift-package-manager-google-mobile-ads.git
  3. 버전은 자동 선택되니 추가만 하면 됨.


2. Info.plist 설정

Info.plist에 아래 항목을 추가해야 한다. GUI 방식으로 하면 노가다!! 49개를 언제 등록하냥

그래서 아래와 같은 절차로 진행하여 붙여넣기 한다.

Info.plist를 Source Code View로 열고 붙여넣기

  1. Xcode에서 Info.plist를 마우스 우클릭 > “Open As” > “Source Code” 선택.
  2. <dict> 안에 적절히 붙여넣으면 되는데, 전체 스니펫 복사하기 해서 가져와서 붙여넣으면 된다.(https://developers.google.com/admob/ios/quick-start?hl=ko#import_the_mobile_ads_sdk)
<key>GADApplicationIdentifier</key>
<string>ca-app-pub-xxxxxxxxxxxxxxxx~yyyyyyyyyy</string>
<key>SKAdNetworkItems</key>
<array>
    <dict>
        <key>SKAdNetworkIdentifier</key>
        <string>cstr6suwn9.skadnetwork</string>
    </dict>
    <!-- 구글만 추가함, 다른 서브파티 SKAdNetwork ID도 필요할 수 있음 -->
</array>


3. AppDelegate 설정

SwiftUI 프로젝트에는 AppDelegate가 기본으로 없기 때문에 생성해줘야 한다.

✅ AppDelegate.swift 파일 생성

import UIKit
import GoogleMobileAds

class AppDelegate: NSObject, UIApplicationDelegate {
    func application(
        _ application: UIApplication,
        didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]? = nil
    ) -> Bool {
        GADMobileAds.sharedInstance().start(completionHandler: nil)
        return true
    }
}

@main 구조체에 등록

@main
struct MyApp: App {
    @UIApplicationDelegateAdaptor(AppDelegate.self) var appDelegate

    var body: some Scene {
        WindowGroup {
            ContentView()
        }
    }
}


4. SwiftUI에서 배너 광고 띄우기

AdMob은 UIKit View 기반이라 SwiftUI에 넣으려면 UIViewRepresentable을 써야 한다.

✅ BannerAdView.swift

import SwiftUI
import GoogleMobileAds

struct BannerAdView: UIViewRepresentable {
    let adUnitID: String

    func makeUIView(context: Context) -> GADBannerView {
        let banner = GADBannerView(adSize: kGADAdSizeBanner)
        banner.adUnitID = adUnitID
        banner.rootViewController = UIApplication.shared.windows.first?.rootViewController
        banner.load(GADRequest())
        return banner
    }

    func updateUIView(_ uiView: GADBannerView, context: Context) {
    }
}


5. SwiftUI 화면에 광고 넣기

struct ContentView: View {
    var body: some View {
        VStack {
            Text("Hello, world!")
                .padding()

            Spacer()

            BannerAdView(adUnitID: "ca-app-pub-xxxxxxxxxxxxxxxx/zzzzzzzzzz")
                .frame(width: 320, height: 50)
        }
    }
}


import GoogleMobileAds 찾지 못해서 오류가 발생할때

import GoogleMobileAds를 못 찾는 문제는 Google Mobile Ads SDK가 프로젝트에 제대로 추가되지 않았기 때문입니다. 아래 단계대로 다시 확인해보세요.

1. Swift Package Manager(SPM)으로 SDK 추가 (Xcode에서 가장 쉬운 방법)

  1. Xcode 열기
  2. 상단 메뉴에서 → File > Add Packages… 클릭
  3. 팝업창 뜨면 다음 URL 붙여넣기: https://github.com/googleads/swift-package-manager-google-mobile-ads.git
  4. 엔터 치면 버전 선택이 나오고, 최신 버전 그대로 진행하세요.
  5. 프로젝트에 추가하려는 Target 체크하고 Add Package 버튼 클릭

👉 성공적으로 추가되면:

  • GoogleMobileAds가 Package Dependencies에 보입니다.
  • 이제 import GoogleMobileAds가 정상 작동합니다.

2. 그래도 안 될 경우 확인 사항

👉 타겟에 라이브러리 연결 확인

  • TARGETS > Build Phases > Link Binary With Libraries 에서 GoogleMobileAds.framework가 자동으로 추가되어야 합니다.
  • 안 보이면 수동으로(+버튼 눌럿) 추가하거나 SPM 다시 연결하세요.

error: Content is protected !!