[iOS] Error: SDK tried to perform a networking task before being initialized

Google Mobile Ads Unity Plugin을 사용할 때는 연관되어 있는 SDK나 라이브러리와의 버전 호환성을 체크해야 한다. 버전 하나 차이나 가장 최신 버전이 항상 동작하는 것은 아니기 때문이다.

Google Mobile Ads Unity Plugin v5.4.0을 사용하면서 광고가 로드 되지 않는 버그를 발견하고 디버깅을 해보았다.광고 로드가 실패할 때의 Message는 OnAdFailedToLoad 이벤트를 등록하여 받아볼 수 있다.

rewardAd.OnAdFailedToLoad += HandleFailedToLoad;

public void HandleFailedToLoad(object sender, AdErrorEventArgs args)
{
	Debug.Log("HandleFailedToLoad:" + args.Message);
}
> HandleFailedToLoad: SDK tried to perform a networking task before being initialized

이전부터 광고를 사용해 왔기 때문에 초기화에 문제가 있을 리 없다고 가정하고, 관련 라이브러리의 문제가 있는지 살펴보았다.

Google Mobile Ads Unity Plugin v5.4.0 페이지에 보면 다음과 같다.

아래 3개의 관련 라이브러리들이 제대로 설치되어 있고, 버전이 맞는지 확인할 필요가 있다.

Google Mobile Ads iOS SDK의 경우 iosPod 설정을 확인하여 버전을 체크해보자.

<iosPod name="Google-Mobile-Ads-SDK" version="~> 7.68">
      <sources>
        <source>https://github.com/CocoaPods/Specs</source>
      </sources>
</iosPod>

나의 경우 External Dependency Manager for Unity 1.2.164를 사용하고 있었는데, 이는 Firebase를 업데이트시에 적용한 것이어서 섣불리 버전을 1.2.161로 내리기가 망설여졌다.  그래서 일단 1.2.163으로 테스트를 해보았다. 

결국 광고가 잘 로드가 되고, 다른 기능들도 큰 문제 없이 동작하였다.

버전 하나 차이로 나처럼 많은 개발자들이 고생하리라 생각한다.  에러 메세지가 조금이라도 구체적이고 정확했더라면 수 많은 시간이 허비되지는 않았을 텐데 말이다. 


Leave a Reply

Your email address will not be published. Required fields are marked *