블로그 이미지
Every unexpected event is a path to learning for you. blueasa

카테고리

분류 전체보기 (2804)
Unity3D (860)
Script (91)
Extensions (16)
Effect (3)
NGUI (81)
UGUI (9)
Physics (2)
Shader (37)
Math (1)
Design Pattern (2)
Xml (1)
Tips (201)
Link (23)
World (1)
AssetBundle (25)
Mecanim (2)
Plugins (80)
Trouble Shooting (70)
Encrypt (7)
LightMap (4)
Shadow (4)
Editor (12)
Crash Report (3)
Utility (9)
UnityVS (2)
Facebook SDK (2)
iTween (3)
Font (13)
Ad (14)
Photon (2)
IAP (1)
Google (11)
URP (2)
Android (51)
iOS (45)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (234)
협업 (61)
3DS Max (3)
Game (12)
Utility (140)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
Android (16)
Linux (5)
잉여 프로젝트 (2)
게임이야기 (3)
Memories (20)
Interest (38)
Thinking (38)
한글 (30)
PaperCraft (5)
Animation (408)
Wallpaper (2)
재테크 (18)
Exercise (3)
나만의 맛집 (3)
냥이 (10)
육아 (16)
Total
Today
Yesterday

Unity 2021.3.16f1

Xcode 14.2

Firebase 10.4.0

----

 

[빌드 에러]

pod install output:



Analyzing dependencies

[!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":

  In Podfile:

    Firebase/Auth (= 10.6.0) was resolved to 10.6.0, which depends on

      FirebaseAuth (~> 10.6.0) was resolved to 10.6.0, which depends on

        GTMSessionFetcher/Core (< 4.0, >= 2.1)



    GoogleSignIn (= 6.0.2) was resolved to 6.0.2, which depends on

      GTMAppAuth (~> 1.0) was resolved to 1.3.1, which depends on

        GTMSessionFetcher/Core (< 3.0, >= 1.5)



    GoogleSignIn (= 6.0.2) was resolved to 6.0.2, which depends on

      GTMSessionFetcher/Core (~> 1.1)

 

Firebase 10.6.0이 업데이트 돼서 다시 한 번 iOS 빌드를 시도해 봤는데 여전히 에러가 난다.

(참조 : https://blueasa.tistory.com/2706)

 

[XCode] [!] Cocoapods could not find compatible versions for pod "GTMSessionFetcher/Core"

Unity 2021.3.16f1 Xcode 14.2 Firebase 10.4.0 ---- [빌드에러] pod install output: Analyzing dependencies [!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core": In Podfile: Firebase/Auth (= 10.4.0) was resolved to 10.4.0, whic

blueasa.tistory.com

 

그래도 다시 이리저리 검색해보다보니 해결했다는 글이 아래와 같이 있다.

UnayOzan commented on Feb 5
Fixed this error with changing the version in "GoogleSignIn.podspec.json" file.

Firebase/Auth (= 10.4.0) was resolved to 10.4.0, which depends on
FirebaseAuth (~> 10.4.0) was resolved to 10.4.0, which depends on
GTMSessionFetcher/Core (< 4.0, >= 2.1)

GoogleSignIn (~> **5.0.2**) was resolved to **5.0.2**, which depends on
  GTMSessionFetcher/Core (~> **1.1**)
I found the file in {user}.cocoapods/repos/cocoapods/Specs and then just search for "GoogleSignIn.podspec.json".
Find the folder with the same version with the error, in my case 5.0.2.
And then change its dependencies with the version 7.0.0 or something that works with the other packages.
In my project the solution was this;

 "dependencies": {
    "AppAuth": [
      "~> 1.5"
    ],
    "GTMAppAuth": [
      ">= 1.3",
      "< 3.0"
    ],
    "GTMSessionFetcher/Core": [
      ">= 1.1",
      "< 4.0"
    ]
After that I exited Xcode, deintagrated pods, cleaned cache and installed it again.
Everything works fine now.

[링크] https://github.com/firebase/firebase-unity-sdk/issues/621

 

[Bug] FirebaseAuth and GoogleSignIn iOS Build failure · Issue #621 · firebase/firebase-unity-sdk

[REQUIRED] Please fill in the following fields: Unity editor version: 2021.3.17f1 Firebase Unity SDK version: 10.4.0 Source you installed the SDK: .unitypackage Problematic Firebase Component: Auth...

github.com

 

글을 보면 아래와 같은 내용이 있다.

And then change its dependencies with the version 7.0.0 or something that works with the other packages.
In my project the solution was this;

에러도 나와 거의 같아서 확인해보니 GoogleSignIn 버전이 현재 6.0.2여서 GTMSessionFetcher/Core (~> 1.1)를 지원하는데,

설치한 FirebaseAuth 10.6.0은 GTMSessionFetcher/Core (< 4.0, >= 2.1)을 사용하고 있어서

GTMSessionFetcher/Core 버전이 서로 호환이 안되는 것 같다.

 

위 링크의 내용대로

GoogleSignIn 버전을 7.0.0(2023-03-27 기준 최신) 버전으로 변경하고 빌드를 다시해보니 깔끔하게 빌드가 잘 된다.

 

[추가]

빌드는 잘 되는데 회사 플랫폼에서 사용하는 GoogleSignIn이 6.0.2여서 7.0.0으로 올리면서 API 호환이 안돼서 로그인 시도할 때 Crash가 나면서 앱이 강제종료 된다.

6.2.4
  2.x 버전을 허용하도록 GTMSessionFetcher 종속 항목을 업데이트했습니다. (#207)

GoogleSignIn에서 해당 빌드 오류 이슈를 해결한 버전은 6.2.4여서 6.2.4로 버전을 내렸다.

나처럼 다른 이슈로 7.0.0으로 못올리는 사람은 6.2.4로 한 번 시도해 보면 좋을 것 같다.

 

[GoogleSignIn 버전 참조] https://developers.google.com/identity/sign-in/ios/release?hl=ko

 

Google 로그인 iOS 및 macOS SDK 출시 노트  |  Authentication  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English 의견 보내기 Google 로그인 iOS 및 macOS SDK 출시 노트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분

developers.google.com

 

반응형
Posted by blueasa
, |

[링크] https://drehzr.tistory.com/183

 

Unity)문제해결) 유니티 빌드 에러 (CommandInvokationFailure: Gradle build failed.)

유니티 빌드 에러 (CommandInvokationFailure: Gradle build failed.) 유니티에서 안드로이드 빌드를 진행하면서 위와 같은 에러가 생겼다. CommandInvokationFailure: Gradle build failed. 열심히 찾다 보니 Gradle 빌드가

drehzr.tistory.com

 

[링크2] https://happyryu.tistory.com/138

 

유니티 CommandInvokationFailure 해결방법

혹시나 이런 에러가 뜬다면? 아놔 참내.. 대빠 짜증나네요. 열나게 찾아보다가 유니티 버젼업도 해보고 Admob plugin 다시 지웠다가 깔았따 삽질하다가 드디어 찾았습니다. C:\Users\[윈도우계정 폴더]

happyryu.tistory.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.16f1

Xcode 14.2

Firebase 10.4.0

 

----

[빌드에러]

pod install output:



Analyzing dependencies

[!] CocoaPods could not find compatible versions for pod "GTMSessionFetcher/Core":

  In Podfile:

    Firebase/Auth (= 10.4.0) was resolved to 10.4.0, which depends on

      FirebaseAuth (~> 10.4.0) was resolved to 10.4.0, which depends on

        GTMSessionFetcher/Core (< 4.0, >= 2.1)

 

최근 Firebase 10.x 버전이 Xcode 14.x 버전에서 위와 같은 오류를 내면서 빌드가 제대로 되지 않는 문제가 있어서 이리저리 알아보니 구글에서 확인하고 수정중이라고 하는 것 같다.

[참조] https://github.com/firebase/firebase-ios-sdk/issues/10359

 

GTMSessionFetcher/Core dependency conflict between Firebase/Auth and GoogleMLKit/LanguageID with Firebase 10.0.0 · Issue #10359

Description Attempting a pod update causes Firebase/Analytics and Auth to be downgraded from 9.6.0 to 3.6.0, and GoogleUtilities from 7.8.0 to 1.3.2 leading to a compile error related to a GoogleUt...

github.com

 

수정 전까지 대안으로 아래와 같이 Podfile에서 FirebaseAuth 버전을 내리라고 설명하고 있다.

유니티를 사용중이라서 Podfile을 만지는건 애매하고, Firebase의 AuthDependencies.xml 파일에서 수정해보기로 했다.

 

<iosPod name="Firebase/Auth" version="10.4.0" minTargetSdk="8.0"></iosPod>

위의 내용을 아래와 같이 수정했다.

<iosPod name="Firebase/Auth" version="~> 9.6.0" minTargetSdk="8.0"></iosPod>

 

그래서 FirebaseAuth는 사라졌는데..

 

Messaging 쪽 에러가 다시 나오면서 빌드 실패.

[에러메시지]

pod install output:



Analyzing dependencies

[!] CocoaPods could not find compatible versions for pod "Firebase/Messaging":

  In Podfile:

    Firebase/Messaging (= 10.4.0)



None of your spec sources contain a spec satisfying the dependency: `Firebase/Messaging (= 10.4.0)`.

 

[결론]

그냥 고쳐질 때까지 Firebase 9.6.0을 써야 될 것 같다..

 

 

반응형
Posted by blueasa
, |

Unity 2021.3.16f1

External Dependency Manager 1.2.175

 

이번에 External Dependency Manager를 버전업 하게 돼서 생각없이 업데이트 했는데

아래와 같이 사용안하는 파일 삭제 할거냐고 묻는 창이 떴다.

 

잘 사용하고 있기도 하고, 위의 창에서 Cancel을 해도 컴파일 될 때 마다 계속 위의 창이 떠서 문제였는데,

짜증나게도 왜 삭제해야 되는지 왜 obsolete로 잡히는 지 설명이 없다.

 

신기한 건 해당 프로젝트에서는 이 창이 뜨는데, 다른 프로젝트에 같은 스크립트가 있는데도 창이 뜨지 않는다.

 

[해결]

이런저런 삽질하다가 혹시나해서 파일을 삭제하고 컴파일 되게 한 후에,

다시 같은 파일을 같은 위치에 넣으니 정상적으로 적용되고 위의 창이 뜨지 않는다.

 

예상되는 이유는

External Dependency Manager가 새로 설치되면서 위의 스크립트가 무언가의 이유?오류?로 유니티 프로젝트에서 사용안한다고 판단하고 프로젝트에서 사용안하니 삭제 할거냐고 계속 묻게 된 것 같다.

그리고, 삭제 후 다시 추가하면서 정상적으로 External Dependency Manager의 Google Version Handler에 제대로 인식되고 위의 창이 이제 안뜨는 것 같다.

 

[결론]

Version Handler가 인식못해서 계속 삭제하라고 하는 것 같으니

프로젝트에서 삭제했다가 다시 추가하자.

반응형
Posted by blueasa
, |

Unity 2021.3.16f1

External Dependency Manager 1.2.175

GoogleMobileAds 7.4.0

 

[빌드에러]

...

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:dexBuilderRelease'.
> java.lang.UnsupportedOperationException: This feature requires ASM7

...

 

[해결]

gradle 버전이 낮아서 생기는 문제라고 한다.

Android 11이슈로 쓰던 gradle 버전이 com.android.tools.build:gradle:3.4.3 이었는데,

Unity 2021.3.16f1 기준 기본 버전이 com.android.tools.build:gradle:4.0.1 이어서 해당 버전을 사용하니 빌드가 잘된다.

다시 해보니 Unity 2021.3.16f1 기본 버전인 com.android.tools.build:gradle:4.0.1 이 빌드가 제대로 안돼서,

com.android.tools.build:gradle:4.0.1+로 수정하고 나서 제대로 되는 걸 확인했다.

(GoogleMobileAds 7.4.0이 gradle 4.0.1에서 에러나는걸로 봐서는 상위 버전 뭔가를 쓰는 것 같은데 무슨 버전을 쓰는지 모르겠어서 +를 붙였음)

 

[주의]

gradle 버전을 해당 Unity 엔진이 가지고 있는 버전보다 높게 올리면 아래와 같은 에러를 보게 된다.

지정한 gradle 버전을 사용하려면 맞는 gradle 플러그인 버전을 받아서 해당 위치에 넣어주거나,

현재 Unity 엔진이 가지고 있는 버전에 맞추거나 하자.

(난 받기 귀찮기도 하고, 협업을 하려면 다른 곳도 설치해줘야 되는 문제들로 인해서

  현재 Unity 버전이 지원하는(gradle 4.0.1) 걸로 셋팅 함)

FAILURE: Build failed with an exception.

* Where:
Build file 'C:\Project\git\GuitarGirl\Library\Bee\Android\Prj\IL2CPP\Gradle\launcher\build.gradle' line: 1

* What went wrong:
A problem occurred evaluating project ':launcher'.
> Failed to apply plugin [id 'com.android.internal.version-check']
   > Minimum supported Gradle version is 6.5. Current version is 6.1.1. If using the gradle wrapper, try editing the distributionUrl in C:\Project\git\GuitarGirl\Library\Bee\Android\Prj\IL2CPP\Gradle\gradle\wrapper\gradle-wrapper.properties to gradle-6.5-all.zip

 

[참고] https://stackoverflow.com/questions/68709559/nestmember-requires-asm7

 

NestMember requires ASM7

After update to Java 11 got an error in Android Studio by ./gradlew lintFooDebug command. * What went wrong: Execution failed for task ‘foo:syncDebugLibJars'. > NestMember requires ASM7 • Ran ./

stackoverflow.com

 

[gradle version 변경하기] https://blueasa.tistory.com/2703

 

[링크] Unity - Android Gradle Version 변경하기

[링크] https://drehzr.tistory.com/1022 Unity)Android Gradle Version Change Unity Android Gradle Version Change Unity 에서 Android의 Gradle의 버전을 변경을 해야하는 경우가 생겨서 이렇게 포스팅하게 되었다. Project Setting 의

blueasa.tistory.com

 

[gradle cache 삭제하기] https://happyryu.tistory.com/138

 

유니티 CommandInvokationFailure 해결방법

혹시나 이런 에러가 뜬다면? 아놔 참내.. 대빠 짜증나네요. 열나게 찾아보다가 유니티 버젼업도 해보고 Admob plugin 다시 지웠다가 깔았따 삽질하다가 드디어 찾았습니다. C:\Users\[윈도우계정 폴더]

happyryu.tistory.com

 

반응형
Posted by blueasa
, |

[사용엔진] Unity 2021.3.14f1

 

유니티 내장 VideoPlayer를 사용해서 Local 파일 로드를 할 때, 예전부터 Path 앞에 file:// 를 붙여서 사용했었는데 

이번에 URL을 그대로 사용하고 VideoPlayer로 동영상을 플레이 했는데

이전 폰들은 잘 나오는데 Android 12에서 제목과 같은 에러가 나면서 동영상 플레이가 안된다.

 

확인해보니 URL에서 file:// 을 빼라고 한다.

(Android 12 미만에서도 빼고 플레이 해보니 잘 된다.)

 

P.s. VideoPlayer는 file:// 빼야 되고, Assetbundle은 여전히 file:// 있어야 되는 것 같다.

 

[참조] 

We support webm across all platforms, but I am unsure about vp8 files. Something you should try is removing the files:// from the path and making sure the file is where you think it is. I saw someone else having the same issue https://stackoverflow.com/questions...error-ndkmediaextractor-cant-create-http-serv

 

[출처]

https://forum.unity.com/threads/videoplayer-url-issue-with-vp8-webm-on-android-androidvideomedia-error-opening-extractor-10002.1255434/

 

Bug - VideoPlayer.url issue with vp8/webm on Android: AndroidVideoMedia: Error opening extractor: -10002

I try to play a vp8 video on an Android device (Galaxy S10e, Android 12) using VideoPlayer.url with a file URI. For example: videoPlayer.url =...

forum.unity.com

 

반응형
Posted by blueasa
, |

[에러메시지]

NullReferenceException: Object reference not set to an instance of an object.

  at System.Linq.Expressions.Interpreter.LightLambda.MakeRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Interpreter.LightLambda.GetRunDelegateCtor (System.Type delegateType) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Interpreter.LightDelegateCreator.CreateDelegate () [0x00000] in <00000000000000000000000000000000>:0 

  at System.Linq.Expressions.Expression`1[TDelegate].Compile (System.Boolean preferInterpretation) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].MakeUpdateDelegate () [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].GetUpdateDelegate (T& addr) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T]..ctor (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0 

  at System.Runtime.CompilerServices.CallSite`1[T].Create (System.Runtime.CompilerServices.CallSiteBinder binder) [0x00000] in <00000000000000000000000000000000>:0 

 

대충 위와같은 에러가 나는데..

유니티에서 dynamic을 쓰면 나는 에러인데..

결론은 유니티는 dynamic을 지원하지 않는다. 쓰지말자.

 

에디터에서는 잘되길래 될 줄 알았더만, 안드로이드 빌드해보니 위와같은 에러가 난다.

해결책이 별시리 없는듯하다.

 

[참조] https://gall.dcinside.com/mgallery/board/view/?id=game_dev&no=53076 

 

유니티 dynamic 못씀? - 인디 게임 개발 마이너 갤러리

분명 유니티 내에서 빌드 안하고 돌리면 잘만 돌아가는데, 빌드된 거 실행해보면 코드에서 에러가 계속 발생함NullReferenceException: Object reference not set to an instanc

gall.dcinside.com

[참조] https://issuetracker.unity3d.com/issues/il2cpp-notsupportedexceptions-exception-is-thrown-in-build-with-newtonsoft-dot-json-plugin

 

Unity IssueTracker - [IL2CPP] NotSupportedExceptions exception is thrown in build with Newtonsoft.Json plugin

Steps to reproduce: 1. Download attached project 2. Build standalone project on IL2CPP backend 3. Launch build project 4. Notice exc...

issuetracker.unity3d.com

 

반응형
Posted by blueasa
, |

[링크] https://lunchballer.com/archives/1326

 

[Unity-C#] 특정 국가에서 크래시가 난다면 CultureInfo를 확인하자

Unity 2019부터 .NET 3.5는 더 이상 지원되지 않고, .NET Standard 2.0과 .NET 4.X가 지원된다. .NET Standard 2.0/.NET 4.X은 Unity 2017까지 사용하던 .NET 2.0/.NET 2.0 Subset과 같지 않다. 그래서 글로벌 게임을 서비스 중

lunchballer.com

 

[참조] https://mentum.tistory.com/615

 

Float.Parse not in a correct format 문화권 문제

숫자 변환에서 오류가 발생하다 게임 개발을 하다 보면 string에서 float로 파싱 하여 사용해야 하는 경우가 꽤나 자주 발생한다. 예를 들어, 연출 데이터에서 0.5초 동안 정지한다거나 하는 경우 다

mentum.tistory.com

 

[체크해야 될 함수] 더 있을수도..

float.Parse / float.TryParse / float.ToString

double.Parse / double.TryParse / double.ToString

int.Parse / int.TryParse / int.ToString

long.Parse / long.TryParse / long.ToString

BigInteger.Parse / BigInteger.TryParse  / BigInteger.ToString

DateTime.Parse / DateTime.ParseExact / DateTime.TryParse / DateTime.TryParseExact / DateTime.ToString

TypeConverter.ConvertFrom / TypeConverter.ConvertTo

Convert.To??? 시리즈(Convert.ToInt16/ToInt32/ToInt64/ToUInt16/ToUInt32/ToUInt64,ToDecimal,ToDouble,ToSByte,ToSingle 등)

.ToLower / .ToUpper

string.Format

 

 

[첨언]

Unity 2018에서 Unity 2021로 포팅을 하고 업데이트를 했는데 이상한 에러가 크래시레포트에 많이 수집돼서 확인해보니

위의 링크에 보이는 문제로 보인다.

Unity 2019 부터 바뀐부분이 있어서(참조 링크 보면 됨) int float double BigInteger 등을 Parse 할 때 System.Globalization.CultureInfo.InvariantCulture을 무조건 넣어줘야 될 것 같다.

(CurrnetCulture는 건들면 문제가 생길 것 같아서 그냥 노가다로 다 넣었다.)

 

P.s. 문화권 문제라 한국에서는 아무리 테스트를 해도 크래시가 안나니 무슨 버그인지 몰라서 한참 헤멤..

 

[추가]

CultureInfo 관련 이슈가 있는 함수가 더 있어서 추가해 둠.

아래 함수 2개를 문화권 영향받지 않도록 변경했다.

이 두 함수는 함수 자체가 문화권 영향받지 않는 함수가 있어서 편한 것 같다.

 

TypeConverter.ConvertFrom() → TypeConverter.ConvertFromInvariantString()

TypeConverter.ConvertTo() → TypeConverter.ConvertToInvariantString()

 

[참고] https://learn.microsoft.com/ko-kr/dotnet/api/system.componentmodel.int32converter?view=net-7.0 

 

Int32Converter 클래스 (System.ComponentModel)

32비트 부호 있는 정수 개체와 다른 표현 사이를 변환하는 형식 변환기를 제공합니다.

learn.microsoft.com

 

[나라별 숫자표기 참고] https://theqoo.net/square/298509638

 

나라별로 다른 소수점과 천의 자리 구분 기호 - 스퀘어 카테고리

형태국가1,234,567.89호주, 캐나다 (영어권, 비공식), 중국, 홍콩, 아일랜드, 이스라엘, 일본, 한국, 말레이시아, 멕시코, 뉴질랜드, 파키스탄, 필리핀, 싱가포르, 대만, 태국, 영국, 미국1234567.89국제단

theqoo.net

[숫자표기 참고2] https://docs.oracle.com/cd/E19683-01/816-3980/overview-48/index.html

 

숫자 (국제 언어 환경 설명서)

숫자 영국과 미국은 소수 자릿수를 마침표를 사용해 표시하는 몇 안 되는 국가들 중 두 국가입니다. 그 밖의 많은 국가들은 마침표 대신 콤마를 사용합니다. 소수 구분 기호는 기수 문자라고도

docs.oracle.com

 

[Date format by country] https://gist.github.com/mlconnor/1887156

 

Listing of countries with their preferred date formats, ISO3166 code, ISO629-2

Listing of countries with their preferred date formats, ISO3166 code, ISO629-2 - country_date_formats.csv

gist.github.com

 

 

반응형
Posted by blueasa
, |

Unity 2021.3.11f1

I2 Localization(app_name 로컬라이징 용도)

 

I2 Localization 에셋으로 app_name Localization을 하고 있었는데,

Unity 2021.3.11f1으로 업데이트 한 후에 Android에서 로컬라이징이 되지 않고 기본 설정된 App Name만 나오는 문제가 생겼다.

(대충 검색해보니 Unity 2021.3부터 나오는 이슈 같다)

 

그래서 생성된 res 폴더를 ../Assets/Plugins/Android/ 하위에 직접 넣고 빌드해보니 아래와 같은 에러가 나온다.

 

Exception: OBSOLETE - Providing Android resources in Assets/Plugins/Android/res was removed, please move your resources to an AAR or an Android Library. See "AAR plug-ins and Android Libraries" section of the Manual for more details.
UnityEditor.Android.PostProcessor.Tasks.CheckUserResources.Execute (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.PostProcessor.PostProcessRunner.RunAllTasks (UnityEditor.Android.PostProcessor.PostProcessorContext context) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.PostProcessAndroidPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.Android.AndroidBuildPostprocessor.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTarget target) (at <5e58a3838afa4e88a08dc92f05003dcc>:0)
UnityEditor.PostprocessBuildPlayer.PrepareForBuild (UnityEditor.BuildOptions options, UnityEditor.BuildTargetGroup targetGroup, UnityEditor.BuildTarget target) (at <4e64905d831f4883a53259ef37fb023b>:0)
UnityEngine.GUIUtility:ProcessEvent(Int32, IntPtr, Boolean&)

app_name 로컬라이징에 사용되던 /res/ 폴더 하위에 넣는 방식을 Unity 2021.3 이후에는 더이상 지원하지 않나보다.

 

그래서 검색해보니 아래 링크에 해결방법이 적혀있다.

 

[링크] https://develop.hateblo.jp/entry/android-res-error

 

【Unity】Androidのresフォルダがビルドエラーになる場合の対処法 - AppSeedのアプリ開発ブログ

最近、Unityを2021.3.9f1にアップデートしたのですが、Assets/Plugin/Android/res に配置していたフォルダの部分で下記のようなエラーが出るようになってしまいました。今回はこの対処法についてメ

develop.hateblo.jp

해결방법은 링크의 res.androidlib 폴더를 만드는 방법을 참조하면 된다.

링크의 xml 파일등이 띄어쓰기등이 좀 문제 있어서 겸사겸사 간단히 요약해서 적어 둠.

 

  [해결방법]

1. ../Assets/Plugins/Android/ 하위에 res.androidlib 폴더 생성

 

2. res.androidlib 폴더에 아래 파일을 다운받아서 추가하거나 AndroidManifest.xml 파일 직접 생성해서 입력

AndroidManifest.xml
0.00MB

[참조] AndroidManifest.xml 파일 내용

<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android" package="custom.android.res" android:versionCode="1" android:versionName="1.0">
</manifest>

 

2. res.androidlib 폴더에 아래 파일을 다운받아서 추가하거나 project.properties 파일 직접 생성해서 입력

project.properties
0.00MB

 

[참조] project.properties 파일 내용

target=android-9
android.library=true

 

3. 기존에 있던 res 폴더(하위에 values/values-en/values-ko 등 포함)를 res.androidlib 폴더로 이동

 

4. 위의 순서 진행하면 아래와 같이 된다.

res.androidlib 폴더
res 폴더(default 포함, 내가쓰는 언어들)

 

5. 이제 빌드 하면.. 된다!!

 

 

[참조] [Unity] 안드로이드 국가별 앱 이름 변경

 

[Unity] 안드로이드 국가별 앱 이름 변경

안녕하세요. 안드로이드 폰에 앱을 설치를 하면, Product Name으로 설정해놓은 이름으로 앱이 설치가 됩니다. 오늘은 앱 이름을 국가별로 다르게 설정하는 법에 대해 다루겠습니다. 일단 Assets\Plugins

scvtwo.tistory.com

[참조] Unity Android 빌드 후 국가별(언어별) 앱 이름 대응

 

Unity Android 빌드 후 국가별(언어별) 앱 이름 대응

Project Settings에서 Product Name을 이용하여 앱 이름을 설정할 수 있지만 이 경우 추후 google 및 apple에 등록한 뒤 변경이 어려운 경우가 분명 생기기 마련이고 (분명 다른 이유로라도 뭐 서버라든지 하

young-94.tistory.com

 

반응형
Posted by blueasa
, |

[사용엔진] Unity 2020.3.37f1

-------------------------------------------------------------------------------------------

[추가]

Push 관련해서 같은 에러가 나서 확인해보니 아래 링크와 같은 처리를 요구하고 있다.

 

1. Android 12 이상에 대해서 PendingIntent 를 PendingIntent.FLAG_UPDATE_CURRENT | PendingIntent.FLAG_IMMUTABLE 추가

2. AndroidManifest.xml  SCHEDULE_EXACT_ALARM 퍼미션 추가

<uses-permission android:name="android.permission.SCHEDULE_EXACT_ALARM" />

>> 1.2. 둘다 처리가 필요할 듯 하다.

 

 

[참조] https://github.com/radishmedia/react-native-push-notification/pull/19

 

fix: fix for not receiving notification on android 12 by tjkang · Pull Request #19 · radishmedia/react-native-push-notificatio

Description 안드로이드에서 sdk version 을 31 로 업그레이드하고 compileSdkVersion = 31 targetSdkVersion = 31 notification 이 수신이 안되는 이슈입니다 이는 안드로이드 12 이상에 대해서 PendingIntent 를 PendingIntent.F

github.com

-------------------------------------------------------------------------------------------

 

구글에서 API 31을 쓰라고 해서 Target API를 31로 올리고 빌드 했는데,

실행은 되지만 최신 폰(좀 안좋은 폰은 정상)에서 실행 중 아래와 같은 에러메시지를 띄우면서 크래시가 남.

----

AndroidJavaException: java.lang.IllegalArgumentException: com.xxx.xxx.xxx: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.
    java.lang.IllegalArgumentException: com.xxx.xxx.xxx: Targeting S+ (version 31 and above) requires that one of FLAG_IMMUTABLE or FLAG_MUTABLE be specified when creating a PendingIntent.
    Strongly consider using FLAG_IMMUTABLE, only use FLAG_MUTABLE if some functionality depends on the PendingIntent being mutable, e.g. if it needs to be used with inline replies or bubbles.

----

이리저리 찾아보니 크게 2가지 처리를 하는 것 같다.

1. AndroidManifest.xml에 exported 명시적으로 설정

2. gradle의 dependencies {}에 androidx.work:work-runtime:2.7.0 라이브러리 추가(for Java)

    - 2.7.0부터 Android 12(API31)대응을 해서 2.7.0이상을 추가하면 되는 듯

    - Unity는 mainTemplate.gradle의 dependencies {...}에 추가

    - 라이브러리 선택 사항

       = [Java] implementation 'androidx.work:work-runtime:2.7.0'  // for Unity

       = [Kotlin] implementation 'androidx.work:work-runtime-ktx:2.7.0

 

 

내 경우는 exported 관련은 이미 돼 있어서 아래와 같이 androidx.work:work-runtime:2.7.1(현재 기준 공식 최신버전)을 추가하고 해결 했다.

mainTemplete.gradle

    dependencies{

    ....

    implementation 'androidx.work:work-runtime:2.7.1'    // for Java

    ....

    }

 

[참조] https://textbox.tistory.com/entry/android-%EC%8B%A4%ED%96%89%EC%98%A4%EB%A5%98-version-31%EC%97%90%EC%84%9C-%EC%95%B1-%EC%8B%A4%ED%96%89%EC%8B%9C-%EC%98%A4%EB%A5%98

[참조] https://bacassf.tistory.com/166

[참조] https://onlyfor-me-blog.tistory.com/467

[참조] https://stackoverflow.com/questions/68228666/targeting-s-version-10000-and-above-requires-that-one-of-flag-immutable-or-fl

반응형
Posted by blueasa
, |