클라이언트 프로그래머의 일기/신입 클라이언트 프로그래머의 일기 28

iOS) FaceBook ATE 대응하기

해당 작업 내용은 iOS 14 대응을 위한 SDK 업데이트 및 필수 작업사항으로 아래 두 사항을 적용해야 합니다. 1. ‘setAdvertiserTrackingEnabled’ (이하 ATE) flag를 구현하시고, 이를 통해 개인화된 광고(personalized ads)의 송출에 필요한 사용자의 데이터 사용 여부를 오디언스 네트워크에 알려야 합니다. 만일 해당 flag가 구현되지 않았거나, false/no 로 구현되어 있을 경우 오디언스 네트워크는 광고를 서빙하지 않게 됩니다. 이는 미디에이션 사용 여부와 무관하게 SDK 6.2.1을 사용하는 경우에 모두 적용됩니다. 2. SKAdNetwork IDs를 Xcode 프로젝트의 Info.plist에 추가해 주셔야 합니다. 이는 퍼블리셔의 지면을 통해 광고하는..

iOS Build Error) property clientid not found on object of type gidsignin 해결 방법

지난 업데이트까지 빌드가 잘 되던 프로젝트가 해당 에러를 뱉으며 빌드에 실패를 했습니다. 에러가 발생한 이유는 해당 플러그인이 최신 6.xx 포드를 지원하지 않기 때문입니다. 해결 방법은 아래 방법 2개 중 1개를 선택하시면 됩니다.(1번을 추천드립니다, 시간이 없을 경우 2번) 1. 빌드를 새로 뽑아야 하는 경우 Project 내에 GoogleSigninDependencies의 로 수정해줍니다. 2. 이미 빌드를 한 상태에서 다시 한번 빌드 하기 싫은 경우(1회성이며 다음 빌드 부터는 다시 1번 과정을 거쳐야합니다) Export 된 Project에 Podfile로 들어가서 pod 'GoogleSignIn', '>=5.0.0' 값을 pod 'GoogleSignIn', '5.0.2' 로 버전을 고정시켜줍니..

앱스플라이어 인앱이벤트 내 파라미터 값 확인하기(AppsFlyer Checking parameter values ​​in in-app events)

원래 우리 프로젝트는 Adjust로 인앱이벤트와 그 이벤트의 내부 파라미터값을 확인하는 방법을 사용하고있었습니다. 이번에 다른나라와 퍼블리싱 계약을 하면서 Adjust에서 AppsFlyer로 변경작업을 진행해야했는데 해당 SDK 연동 작업은 다 끝난 상태에서 우리가 보낸 Parameters 값이 In-apps events 안에 잘 적용됐는지 확인하려했는데 확인하는 방법을 아무리 찾아봐도 보이지 않아서 AppsFlyer Support에 직접 문의를 했습니다. 그 후 머지않아 확인해보겠다는 답장을 받은 상태입니다. - 2일 뒤 담당자분께서 앱 ID와, 사용중인 플러그인 및 참조하는 Appsflyer 가이드를 알려줄 수 있냐는 답변이 왔습니다. 그리고 한국인 엔지니어가 있으니 언제든 한국어로도 편하게 질문해도..

List의 크기를 알 경우 Capacity를 미리 설정하자.

capacity를 넘어가면 재할당 후 복사하므로 비용이 크다. (반복문에서 빈번하게 일어날 경우...) capacity가 증가될 시 count에 따라 기하 급수적으로 커질 수 있다. capacity * T.Size 만큼 메모리를 잡고 있으므로 낭비가 크다. (게임에서는 중요!) List에 삽입할 개수를 미리 안다면 Capacity를 미리 설정하여 메모리를 확보하는 습관을 가지자.

IOS) You must specify cliendID for GIDSignIn Error 해결 방법

유니티 버전 : 2019.4.18f1 XCode 버전 : 12.4 에러 기기 : 모든 IOS 기기 에러 원인 : 유니티 버전이 올라가면서 Xcode에서 Target membership에 UnityFramework 란게 추가 됨. 그러면서 동시에 내 plist 파일이 Unity-iPhone을 바라보는 것이 아닌 UnityFramework를 자동으로 바라봄. 해결 방법 : 해당 에러나는 plist 파일의 Target Membership을 Unity-iPhone으로 바꿔준 후 빌드하면 해결 됨. 에러 로그 : 더보기 Uncaught exception: NSInvalidArgumentException: You must specify |clientID| for |GIDSignIn| 해당 에러는 App을 실행한 후..

IOS) UnityAppcontroller renderingAPI Error 해결 방법

유니티 버전 : 2019.4.18f1 에러 기기 : IPhone5(IOS 10) 에러 원인 : 유니티의 Auto Graphics API가 더이상 OpenGLES을 자동으로 추가해주지 않음. 해결 방법 : Player Settings -> Other Settings -> Auto Graphics APi를 체크 해제 한 후 OpenGLES를 추가 해 준다. 에러 로그 : 더보기 Uncaught exception: NSInternalInconsistencyException: [UnityAppController renderingAPI] called before [UnityAppController selectRenderingApi]Uncaught exception: NSInternalInconsistencyExc..

C# System.Collections.Generic의 List와 SortedSet에 대하여.

우선 이 글을 쓴 이유는 IronSource에서 Dependencies를 붙이는 과정에서 발생한 문제를 해결하기 위함이다. 해당 유니티 프로젝트의 버전은 2017.4.36f1 버전이었으며, SortedSet은 정확히 몇 버전부터 제공되는지는 모르겠지만 2018.4.13f1 버전으로 실행했을때에는 제공 됐다. 해당 DependenciesManager는 SortedSet의 IComparer 를 활용하여 선언함과 동시에 비교 후 Sort까지 하고있었다. 하지만, 우리의 프로젝트는 2017 버전이었기에 SortedSet을 사용할 수 없었다. 그래서 문제를 해결하기 위해 SortedSet의 구조를 파악하던 중 LIst와 많이 유사한 것을 알 수 있었다. 그래서 해당 SortedSet을 List로 선언 한 다음 I..

AndroidX Migration이란?

Migration이란 한 운영환경으로부터, 대게의 경우 좀 더 낫다고 여겨지는 다른 운영환경으로 옮겨가는 과정을 말합니다. 즉 여기서 AndroidX Migration은 더 나은 환경인 AndroidX로 운영환경을 옮기는 과정을 뜻합니다. AndroidX는 API Level 28로 그 미만인 14~27까지의 API를 Migration 하는 작업입니다. 이걸 하는 이유는 2020년 8월 쯤 부터 모든 Android App이 PlayStore에 등록 할 때 AndroidX로 등록해야 하기 때문입니다. Migration 하는 방법. 1. Android Studio의 최신 버전으로 업데이트 합니다.(PC에 안깔려 있다면 최신버전 다운하면 됩니다.) 1) 메뉴창에 Help -> Check for update를 클..

NGUI 이벤트 정리

1. OnHover(bool state) - 터치가 되면 계속적으로 이벤트가 발생되는 함수입니다 state로 내가 터치중인지 아닌지가 되고 터치를 오브젝트에서 때거나 범위를 벗어났을 경우 false가 됩니다. 제가 사용했던 적은 리듬게임에서 롱노트를 처리할 때 사용했습니다. 2. OnPress(bool state) - 터치를 시작할 때 한번만 발생되는 함수입니다. 마찬가지로 state로 터치를 했는지를 알수 있구요. 어짜피 터치 시작시 함수가 호출되므로 state의 큰 의미는 없다고는 생각되지만 이용되야 하는 상황도 있겠죠 (아 옛날 소스 보다 수정합니다. OnPress로 롱노트 처리를 하였고 터치시작시 true. 땔시 false가 호출됩니다) 주로 버튼 이벤트에 쓰이는데 보통 버튼이라면 OnClick을..