개요
Unreal 5.4 로 게임 개발을 마치고 Android aab 파일 생성 후 업로드 하면 결제 라이브러리 관련한 오류가 발생했습니다. 게임 내에 결제 요소가 없는데 기본적으로 결제 라이브러리가 사용되도록 되어 있어 발생한 것 같았습니다. 이 문제를 해결하는 방법을 알아보도록 하겠습니다.
오류 메시지
앱을 업로드 하면 다음과 같은 오류 메시지가 나타납니다.
앱에서 현재 Play 결제 라이브러리 AIDL 버전을 사용 중입니다. Google Play의 최신 수익 창출 기능을 사용하려면 5.2.1 버전 이상으로 업데이트해야 합니다.
실제 결제 기능이 있다면 버전을 업데이트 하는 작업을 진행해야 합니다. 필자가 제작한 게임에는 결제 기능이 없어서 처음에는 이상하다고 생각했습니다.
문제 파악
이리 저리 알아보니 인앱결제 사용 여부를 지정하도록 되어 있는 것 같았습니다. 그 값이 기본으로 사용하도록 되어 있는 것 같았습니다. 설정을 모두 찾아보았으나 인앱결제를 사용하는 여부를 선택하는 항목은 없었습니다.
C:\YourInstallPath\UE_5.4\Engine\Plugins\Online\Android\OnlineSubsystemGooglePlay\Source\OnlineSubsystemGooglePlay_UPL.xml 파일을 살펴보면 다음과 같은 내용이 있습니다.
<if condition="bSupportsInAppPurchasing">
...
</if>
이런 부분이 여러 곳에 있는데 조건에 따라 결제에 필요한 사항을 추가하는 것으로 생각되었습니다. bSupportsInAppPurchasing 이 항목의 값을 False 로 변경하면 문제가 해결될 것 같았습니다.
해결방법
YourProject\Config\Android\AndroidEngine.ini 파일을 수정합니다. 필자의 경우 없어서 생성했습니다. 파일의 내용을 다음과 같이 입력합니다.
[OnlineSubsystem]
DefaultPlatformService=GooglePlay
[OnlineSubsystemGooglePlay.Store]
bSupportsInAppPurchasing=False
bSupportsInAppPurchasing 항목을 False 로 지정하면 됩니다. 결제 기능을 사용한다면 True 로 설정해야 합니다. OnlineSubsystemGooglePlay_UPL.xml 파일 내의 bSupportsInAppPurchasing 항목과 일치하는 것을 알 수 있습니다.
다시 aab파일을 다시 업로드하면 오류가 사라집니다.