SDK 설치하기

1) Cocoapods 사용하여 설치

  • 프로젝트의 Podfile에 pod 'KakaoAdSDK' 를 추가합니다.
  • 터미널에서 pod install 명령을 실행합니다.

2) SPM 을 사용하여 설치

  • Project > Package Dependencise 항목을 선택합니다.
  • 플러스 버튼을 눌러 패키지 설치 윈도우가 나오면 우측 상단의 검색 창에서 패키지명 KakaoAdPackage 또는 레포지토리 주소 https://github.com/KakaoAd/KakaoAdPackage.git 를 입력합니다.
  • 현재 SPM 지원 버전은 “0.7.0” 버전 부터 입니다.

3) 수동 설치 (Dynamic Framework)

  • Framework/Dynamic/KakaoAdSDK를 다운로드 받습니다.
  • KakaoAdSDK.framework을 앱 프로젝트의 General > Embeded Binaries 항목으로 끌어서 놓습니다.

4) 수동 설치 (Static Framework)

  • Framework/Static/KakaoAdSDK를 다운로드 받습니다.
  • KakaoAdSDK.framework을 앱 프로젝트의 General > Frameworks, Libraries, and Embedded Content 항목으로 끌어서 놓습니다.
  • Build Settings > Linking > Other Linker Flags 항목에 -ObjC, -all_load 문자열을 설정합니다.

5) 수동 설치 (XCFramework)

  • Framework/XCFramework/KakaoAdSDK.xcframework.zip을 다운로드 받습니다.
  • KakaoAdSDK.xcframework.zip 압축파일의 압축을 풉니다.
  • KakaoAdSDK.xcframework를 앱 프로젝트의 General > Frameworks, Libraries, and Embedded Content 항목으로 끌어서 놓습니다.
  • XCFramework 사용시에는 팻 바이너리리를 제거해주는 아래의 스크립트 추가 과정이 필요없습니다. (하단의 strip-frameworks.sh 추가 과정)

앱스토어에 앱 업로드 시 Unsupported Architectures 에러 또는

Failed to verify bitcode: 에러가 발생하는 경우

KakaoAdSDK는 개발 편의를 위해 시뮬레이터용 / 실기기용 바이너리가 하나로 합쳐진 fat binary 형태로 제공됩니다.
따라서 KakaoAdSDK를 수동으로 설치한 경우, 앱스토어에 앱을 업로드 할 때 Unsupported Architectures 에러가 발생할 수 있습니다.
이러한 경우 다음의 안내를 따라주세요.

  • Xcode에서 앱 프로젝트를 선택하고, Build Phases 탭으로 이동합니다.
  • 메인 영역 좌측 상단의 + 버튼을 클릭 후 New Run Script Phase 항목을 선택합니다.
  • 추가된 Run Script 항목의 입력 폼에 다음 코드를 복사해서 붙여넣습니다.
bash "${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}/KakaoAdSDK.framework/strip-frameworks.sh"

ad-hoc 또는 enterprise 배포시 Rebuild from Bitcode 옵션이 체크 되었을때 에러가 발생하는 경우

Xcode 9.0 의 known Issues 로 아래와 같습니다.

When exporting an ad-hoc or enterprise IPA, Swift symbol stripping requires enabling app thinning or Rebuild from Bitcode. For more information, see Distribution options in Xcode Help. (31737836)
Workaround: Enable app thinning or Rebuild from Bitcode when exporting the app. 

참고사이트

  • Rebuild from Bitcode 옵션 체크를 해제하고 진행 하는것으로 이슈를 회피 할 수 있습니다.