작업 중에 "TypeLoadException: Could not load type 'UnityEngine.VR.VRSettings' from assembly 'Stores." 라는 메시지를 보게 되었다.(이 메시지는 logcat을 통해서 확인한 것이다.)


이 메시지가 끝 구간은 유니티 IAP를 통한 구글 인앱 결제의 해당 아이템 구매를 콜하는 부분에서 나온 것인데, 유니티 포럼을

이리저리 둘러보다보니 본인과 같은 일을 겪은 (서양)형들이 꽤나 많다는 것을 알게 되었다.


결론을 말하자면, 해당 유니티 프로젝트의 엔진 버전업을 하게 되면 로우 레벨단에서 처리하는 과정이 있는데, 그때 처리하는 과정에서

사용하는 플러그인(에셋)등에 문제가 있으면 그 작업이 제대로 안된다는 것이다. 그게 안되서 막상 IAP 플러그인을 넣고 실테스트를 하게 되면 IAP가 동작하는 도중에 저런 메시지를 띄운다는 것이다.


그러면 어떻게 해야하는가.


일단 프로젝트를 ReImport ALL을 해줘야한다.


참고로 이 작업을 하기 전에 프로젝트를 백업해두길 바란다.


자세하게 아는건 아니지만 메타데이터를 새로 작성하는 작업 같은데, 이 작업 도중에 잘못되서 프로젝트가 아작나면....


암튼 백업을 미리 해두고 Assets -> ReImport ALL 을 해주면 진행하다가 팝업이 하나 뜨게 될 것이다.


백업을 만들어 둔게 있냐 라는 식으로 경고 팝업이 뜰텐데, 우리는 이미 백업을 미리 해두었다. 진행하도록 하자.


싹 진행 후.


에러가 뜰 것이다.



이런 에러와 또 다른 추가 에러가 뜰 것인데, 이게 뜨는 이유는 위와 같이 불안정한 프로젝트 상태에서 IAP 플러그인을 임포트 후,

작업했다가 프로젝트 안정화 작업을 시행했을때 뜬다. 쉽게 말해서 네가 이전에 임포트 한 IAP 플러그인이 불안정한 상태이거나, 혹은 IAP 서비스가 오프라인이 되어 있거나 둘 중 하나이다. 물론 둘 다 일 수 있다.


본인은 일단 서비스를 재활성화 시킨 후, IAP 플러그인을 업데이트 하라는 것이 보여서 업데이트도 다 해주고, 혹시나 싶어서 ReImport 도 해주었다.


그리고 나서 APK를 만들어서 구글 콘솔을 통해 업로드 해주고, 구글 앱스토어에서 업뎃이 되길 기다렸다.


업데이트가 되고 나서 인앱 결제를 시도 해보니까. 문제없이 구글 결제 팝업이 뜨는걸 확인했다.


참고한 포럼 링크


https://forum.unity.com/threads/typeloadexception-could-not-load-type-unityengine-vr-vrsettings-from-assembly-stores.539915/

https://forum.unity.com/threads/could-not-load-type-unityengine-vr-vrsettings-from-assembly-stores.521484/

- https://answers.unity.com/questions/1320738/unity-iap-plugin-is-installed-but-unity-iap-is-dis.html

- https://answers.unity.com/questions/1131981/unhandled-exception-systemreflectionreflectiontype-1.html





+ Recent posts