새소식

iOS/에러회고

UNITY_IOS 인식 문제

  • -

[문제 발생]

Unity에서 iOS 네이티브 코드를 이용하는 강의를 듣고 구현을 하였지만.

 

 

버튼은 제대로 눌리지만 Alert 창은 나오지 않고 Log 창에 ShowAlert is only supported on iOS platform 만 계속해서 뜨는 문제가 발생하였다.


[문제 해결 과정]

문제 원인을 찾아보니 iOSPlugin.cs 에 내부에 있는

#if UINTY_IOS [DllImport("__Internal")] private static extern void _ShowAlert(string title, string message); public static void ShowAlert(string title, string message) { Debug.Log("ShowAlert 이 제대로 실행되고 있습니다."); _ShowAlert(title, message); }

코드에서 if Unity_IOS가 제대로 작동이 되지가 않아서 else 문으로 넘어가고 있었다.

해당 문제를 해결하기 위해서 우선은 구글에 비슷한 오류가 발생한 사례를 찾아보기로 했다.

 

비슷한 원인들을 몇가지 볼 수가 있었고 UNITY_EDIOTOR로 필터를 한번 더 거르라는 말을 참고로 해서

#if UNITY_IOS && !UNITY_EDITOR

로 바꾸어보았지만 똑같이 실행이 문제가 생기는 것을 볼 수가 있었다.

 

그래서 우선은 UNITY에서 IOS 관련된 부분을 설치한것이 제대로 반영이 안 되었다고 생각을 해서 우선은 if 와 else 의 구문을 바꿔서 동작이 되는지 확인을 해보았다.

<동작 화면>

 

결과적으로 #if 와 #else의 내용을 바꾸니 이와 같이 제대로 실행 된 모습을 볼 수가 있었고 그렇기에 UNITY_IOS 에서 문제가 발생되었다는 것을 추측할 수가 있어서 UNITY를 종료하고 다시 새로운 프로젝트로 실행을 하기로 하였다.

 

*추가

build settings에서 simulator가 아니라 device로 셋팅이 되어 있었던 것을 확인하였다.

또한, 기존에 unity에서 intel 용으로 다운로드 되어 있었던 부분도 지운 뒤 다시 실행을 해보니 작동이 되었다.

build setting에서 simulator로 안 되어 있었던 것이 주된 원인 같지만 intel용하고의 충돌이었을 수도 있어서 글을 남긴다.

Contents

포스팅 주소를 복사했습니다

이 글이 도움이 되었다면 공감 부탁드립니다.