Vungle iOS SDK 3.2.0으로 업데이트하기

우리는 항상 우리의 최신 SDK를 이용하는 것을 추천합니다. 최신 SDK를 사용하는 것은, 더 안정적이고 효율적이며 최신의 광고 포맷들을 사용할 수 있는 장점들이 있습니다. 우리의 최신 SDK를 사용하기 위해 기존 프로젝트에서 몇가지가 수정되야 합니다 :

 

  1. WebKit.framework 가 optional로 추가되어야 합니다.
    • 이를 위해 Xcode에서 프로젝트를 열고, Project Settings의 General 탭에서 WebKit.framework를 추가합니다.
  2. linker flag -ObjC 가 필요합니다
    • Build Settings 탭의 Linking 색션에서 Other Linker Flags에 -ObjC 를 추가합니다.

 

위의 두가지 수정이 전부 입니다!

 

만약 WebKit.framework 이 빠지면 아래와 같은 컴파일 에러가 발생할 수 있습니다 :


Undefined symbols for architecture x86_64:
  "_OBJC_CLASS_$_WKWebView", referenced from:
      l_OBJC_$_CATEGORY_WKWebView_$_VungleWKWebView in VungleSDK(WKWebView+VungleWKWebView.o)
ld: symbol(s) not found for architecture x86_64

만약 -ObjC linker flag 가 빠지면 아래와 같은 런타임 익셉션이 발 생할 수 있습니다 :


2015-09-10 10:18:22.895 Vungle Sample App[20636:14463247] -[UIWebView setDelegateViews:]: unrecognized selector sent to instance 0x7f9548e59b10
2015-09-10 10:18:22.898 Vungle Sample App[20636:14463247] *** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '-[UIWebView setDelegateViews:]: unrecognized selector sent to instance 0x7f9548e59b10'
*** First throw call stack:

3.1.2 이전 버전에서 업데이트 하기?

만약 당신이 3.1.2 이전 버전에서 업데이트 한다면, 아래의 내용들도 확인하셔야 합니다.

3.1.2 이후 SDK에는 몇가지 API 변화가 있었습니다. 하지만 많지 않은 양이므로 아래 내용을 따라하시면 금방 적용 할 수 있습니다.

 

isCachedAdAvailable 이 isAdPlayable 으로 바꾸었습니다. 

여기 예제가 있습니다.:

이전 API 적용


if ([[VungleSDK sharedSDK] isCachedAdAvailable]) {

    //Do some awesome stuff here!

}

 

최신 API 적용


if ([[VungleSDK sharedSDK] isAdPlayable]) {

    //Do some awesome stuff here

}

 

vungleSDKhasCachedAdAvailable 이vungleSDKAdPlayableChanged:(BOOL)isAdPlayable 로 바뀌었습니다.

바뀐 델리게이트는 광고가 가능한지 확인할 수 있는 파라미터 isAdPlayable를 제공합니다. 여기 예제가 있습니다 :

 

이전 API 적용


- (void)vungleSDKhasCachedAdAvailable {
    NSLog(@"A new cached ad has been downloaded");
    //Update UI / GameLogic
}

최신 API 적용

- (void)vungleSDKAdPlayableChanged:(BOOL)isAdPlayable {
	if (isAdPlayable) {
		NSLog(@"An ad is available for playback");
                //Enable Ad-Driven UI / GameLogic
	} else {
		NSLog(@"No ads currently available for playback");
                //Disable Ad-Driven UI / GameLogic
	}
}
또 다른 질문이 있으십니까? 문의 등록

댓글