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

카테고리

분류 전체보기 (2737)
Unity3D (817)
Script (91)
Extensions (14)
Effect (3)
NGUI (77)
UGUI (8)
Physics (2)
Shader (36)
Math (1)
Design Pattern (2)
Xml (1)
Tips (200)
Link (22)
World (1)
AssetBundle (25)
Mecanim (2)
Plugins (70)
Trouble Shooting (68)
Encrypt (7)
LightMap (4)
Shadow (4)
Editor (8)
Crash Report (3)
Utility (9)
UnityVS (2)
Facebook SDK (2)
iTween (3)
Font (11)
Ad (14)
Photon (2)
IAP (1)
Google (8)
Android (45)
iOS (41)
Programming (474)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (228)
협업 (58)
3DS Max (3)
Game (12)
Utility (136)
Etc (96)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (53)
Android (14)
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
04-20 00:00

[Google Play Store 경고 내용]

com.google.android.recaptcha:recaptcha:18.1.2
이 SDK 버전에는 SDK 개발자의 메모가 포함되어 있습니다. SDK 개발자가 신고한 내용은 다음과 같습니다.
A critical security vulnerability was discovered in reCAPTCHA Enterprise for Mobile. The vulnerability has been patched in the latest SDK release. Customers will need to update their Android application with the reCAPTCHA Enterprise for Mobile SDK, version 18.4.0 or above. We strongly recommend you update to the latest version as soon as possible.

 

[수정]

Firebase 11.7.0(Firebase Android BoM version 32.7.1)에 수정됐다고 한다.

Firebase 11.7.0으로 버전업 하자.

 

 

[참조] https://velog.io/@hodu_angel/Firebase-com.google.android.recaptcharecaptcha18.1.2

 

velog

 

velog.io

 

[참조] https://github.com/firebase/firebase-android-sdk/issues/5638

 

reCAPTCHA Enterprise update · Issue #5638 · firebase/firebase-android-sdk

A critical security vulnerability was discovered in reCAPTCHA Enterprise for Mobile. The vulnerability has been patched in the latest SDK release. Customers will need to update their Android applic...

github.com

 

반응형
Posted by blueasa
, |

[링크] https://j2su0218.tistory.com/503

 

[유니티Unity]유니티에서 인앱 업데이트 지원 하기

유니티에서 인앱 업데이트 지원 하기 구글 콘솔에 새로운 버전을 업데이트했을 때, 인앱 업데이트 기능을 넣어주지 않으면 사용자가 직접 앱을 업데이트시켜주어야 한다. 하지만 중요한 기능의

j2su0218.tistory.com

 

반응형
Posted by blueasa
, |

 [링크] http://lancekun.com/blog/?p=599

 

안드로이드 Gradle / IL2CPP 환경에서 프로세스 남는 현상 – 랜스군의 게임공작소

유니티2018.3.12 에서gradle로 빌드시에 Application.Quit 으로 종료이후 다시 재실행시 UnityIAP 초기화가 실패하는 경우가 있습니다. 대략적으로 Inventory를 갱신시켜준후 Java프록시 호출이 실패하는 이슈(

lancekun.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.32f1

----

 

[추가3] 2024-03-27

Play Asset Delivery v1.9.0(2024-03-27 기준 최신)이 업데이트 됐다.

1.9.0은 최소 Unity 버전이 2017.4로 표기돼있다.(버전별 문제를 해결한건가..?)

 

[추가2]

AssetDelivery 1.7.0으로 iOS 빌드 하면서 ./GooglePlayPlugins/com.google.play.assetdelivery/Samples 폴더 관련 소스에서 에러가 나서 삭제 함.

 

[추가]

aab파일 150mb 초과해서 구글스토어 올리려고 알아보고

아래 [링크]의 내용대로 진행해서  Play Asset Delivery v1.8.2(2023-04-25 기준 최신)를 설치해서 빌드해보니,

빌드는 잘 되지만 실행하면 크래시 나면서 앱이 죽는다.

버전 정보를 보면 Play Asset Delivery v1.8.0 이상부터는 Unity 최소 버전이 2023.1.0 (베타)이다.

(1.8.0이상은 2023.1.0 이상이라고 돼있지만 2022.2.18f1에서 정상동작 하는걸 확인했다.)

 

[참조] https://github.com/google/play-unity-plugins/issues/187

 

Crash at Android 12 · Issue #187 · google/play-unity-plugins

Hello I'm now experiencing crash on android devices with Android 12 only. thread.cc:2372] Throwing new exception 'No interface method getPackStates(Ljava/util/List;)Lcom/google/android/play/core/ta...

github.com

 

크래시 내용을 찾아보니 위[참조]와 같은 내용이 있다.

Firebase와 PAD(Play Asset Delevery)와 호환성 문제가 있는 것 같다.

 

참조 링크의 내용대로면 현재 Play Asset Delivery v1.8.x 버전은 제대로 안되고, Play Asset Delivery v1.7.0을 사용해서 성공했다고 한다.

 

[Github:Play Unity Plugins v1.7.0] https://github.com/google/play-unity-plugins/releases/tag/v1.7.0

 

Release v1.7.0 · google/play-unity-plugins

com.google.play.integrity (v1.0.0) New Features Initial release Unchanged Packages com.google.android.appbundle (v1.7.0) com.google.play.appupdate (v1.7.0) com.google.play.assetdelivery (v1.7.0)...

github.com

[Google Play:Play Asset Delivery] https://developers.google.com/unity/archive?hl=ko#play_asset_delivery

 

Unity용 Google 패키지 다운로드  |  Google Developers

이 페이지는 Cloud Translation API를 통해 번역되었습니다. Switch to English Unity용 Google 패키지 다운로드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 보관 파

developers.google.com

 

위 Play Asset Delivery 링크에서 1.7.0버전 UnityPackage를 다운로드해서 Import하고,

정상 빌드 되는 것을 확인했다.

 

[결론]

Unity 2021 이하 Play Asset Delivery 1.7.0을 사용하고,

Unity 2022 이상은 Play Asset Delivery 1.8.2(2023-05-12 기준 최신)을 사용하자.

(Unity 2021에서도 gradle 4.2.0을 적용하면 Play Asset Delivery 1.8.2 이상을 사용할 수 있다.

  2024-03-27 기준 1.9.0이 나와있으니 1.9.0을 사용하자.)

 

 

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

 

[링크] https://devgod.tistory.com/49

 

[Unity] Unity Play Asset Delivery 앱 빌드, Unity 대용량 앱 빌드

2021년 8월부터 Google Play Store에선 obb를 이용한 대용량 앱 업로드가 사라지고, 무조건 Play Asset Delivery(PAD)를 통해 앱을 업로드 해야합니다. 제발 정책좀 그만 변경했으면 좋겠습니다. 먼저 제가 궁

devgod.tistory.com

반응형
Posted by blueasa
, |

Android 13에서 Runtime에 android.permission.POST_NOTIFICATIONS Permission 요청하기.

----

 

1. Android Target API 33으로 셋팅

 

2. AndroidManifest.xml에 POST_NOTIFICATIONS Permission 추가

<manifest ...>
    <application ...>
        ...
    </application>
    <uses-permission android:name="android.permission.POST_NOTIFICATIONS"/>
</manifest>

 

3. 권한 요청 원하는 시점에 아래 함수 호출(함수 호출하면 Android 13이상 폰에서는 알림 권한 허용 요청 팝업이 뜸)

void CheckPermission_PostNotifications_Android13()
{
    // 디바이스의 안드로이드 api level 얻기
    // ex) Prints "Android OS API-33" on Android 13.0
    // https://docs.unity3d.com/ScriptReference/SystemInfo-operatingSystem.html
    string androidInfo = SystemInfo.operatingSystem;
    Debug.Log("androidInfo: " + androidInfo);
    
    int apiLevel = int.Parse(androidInfo.Substring(androidInfo.IndexOf("-") + 1, 3), System.Globalization.CultureInfo.InvariantCulture);
    Debug.Log("apiLevel: " + apiLevel);

    // 디바이스의 api level이 33 이상이라면 퍼미션 요청
    if (33 <= apiLevel 
        && !UnityEngine.Android.Permission.HasUserAuthorizedPermission("android.permission.POST_NOTIFICATIONS"))
    {
        UnityEngine.Android.Permission.RequestUserPermission("android.permission.POST_NOTIFICATIONS");
    }
}

 

 

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

[참고]

안드로이드 알림은 api level 26 과 33 에서 변경점이 있다. 내 앱이 대상으로 삼은 Sdk Version 범위에 이 버전이 포함되어 있다면 버전에 따라 분기 처리를 해주는 편이 좋다.
API level 26 (Android 8.0 Oreo) 이상 변경점
API level 33 (Android 13 Tiramisu) 이상 변경점

public void InitializeAndroidLocalPush()
{
	// 디바이스의 안드로이드 api level 얻기
	string androidInfo = SystemInfo.operatingSystem;
	Debug.Log("androidInfo: " + androidInfo);
	apiLevel = int.Parse(androidInfo.Substring(androidInfo.IndexOf("-") + 1, 2));
	Debug.Log("apiLevel: " + apiLevel);

	// 디바이스의 api level이 33 이상이라면 퍼미션 요청
	if (apiLevel >= 33 &&
		!Permission.HasUserAuthorizedPermission("android.permission.POST_NOTIFICATIONS"))
	{
		Permission.RequestUserPermission("android.permission.POST_NOTIFICATIONS");
	}

	// 디바이스의 api level이 26 이상이라면 알림 채널 설정
	if (apiLevel >= 26)
	{
		var channel = new AndroidNotificationChannel()
		{
			Id = CHANNEL_ID,
			Name = "pubSdk",
			Importance = Importance.High,
			Description = "for test",
		};
		AndroidNotificationCenter.RegisterNotificationChannel(channel);
	}
}

api level 얻기 코드 출처

 

 

[참고 내용 출처]

https://velog.io/@maratangsoft/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C-%EC%95%B1%EC%97%90%EC%84%9C-FCM-%EC%84%9C%EB%B2%84-%ED%91%B8%EC%8B%9C-%EB%B0%9B%EA%B8%B0

 

유니티 안드로이드 앱에서 FCM 서버 푸시 받기

유니티 모바일 앱 개발시 안드로이드 앱은 Firebase Cloud Messaging(이하 FCM) 서비스, iOS 앱은 Apple Push Notification 서비스를 이용해서 (FCM으로도 가능) 푸시를 수신할 수 있다. 그 중 FCM을 이용한 안드로

velog.io

 

[참고]

https://android-developer.tistory.com/entry/%EC%95%88%EB%93%9C%EB%A1%9C%EC%9D%B4%EB%93%9C13%EC%97%90%EC%84%9C-Notification-%ED%97%88%EA%B0%80-%EB%B0%9B%EA%B8%B0-%EB%B0%A9%EB%B2%95-%EB%B0%8F-%EB%B3%80%EA%B2%BD%EC%A0%90

 

안드로이드13에서 Notification 허가 받기 방법 및 변경점

안드로이드13에서 Notification에 대해 바뀐점 POST_NOTIFICATIONS (Notification Permission) 은 Target SDK API 33 이상부터 추가 가능 Target SDK API 32 이하의 앱이 Android 13 디바이스에 설치되면 Notification Channel을 등록

android-developer.tistory.com

반응형
Posted by blueasa
, |

Unity 2021.3.19f1

Firebase 9.6.0

Facebook Android Plugin 15.0.2

 

[Case 1]

 

Firebase로 Facebook 연동을 했는데,

Facebook Web에서는 로그인이 잘되는데

위 스크린샷처럼 Facebook App이 설치돼 있는상태에서 App으로 로그인 하려하면 Invalid key hash 에러가 발생했다.

 

Facebook Web Login이랑 Facebook App Login이랑 Hash Key가 다른것 같다.

 

에러 메시지에 뜨는 key hash를 페이스북 개발자 페이지에 추가해주니 정상적으로 Facebook App 로그인이 됐다.

 

----

[Case 2]

- 스토어에서 받은 앱은 Facebook App 로그인 진행하려니 Key hash는 안보이고 위와 같이 에러 메시지만 띄운다.

- 혹시나해서 LogCat으로  보니 Key hash가 보여서 등록하고 정상 로그인 확인 함.

 

 

[참조]

https://bozeury.tistory.com/entry/%ED%8E%98%EC%9D%B4%EC%8A%A4%EB%B6%81-%EC%97%B0%EB%8F%99%EC%8B%9C-invaild-key-hash%EB%9D%BC%EB%8A%94-%EC%97%90%EB%9F%AC%EA%B0%80-%EB%82%98%EC%98%AC%EB%95%8C

 

페이스북 연동시 invaild key hash라는 에러가 나올때

페이스북을 연동하고나서 적용했을때 이런 에러가 날때가 있다. facebook 개발자 페이지에 등록되어있는 해쉬키와 현재 내 앱의 해쉬키가 다르기 때문에 나는 에러이다. 어째서 이런 에러가 나는

bozeury.tistory.com

 

반응형
Posted by blueasa
, |

Unity 2022.2.5f1

----

 

[빌드에러]

FAILURE: Build failed with an exception.

* What went wrong:
Execution failed for task ':launcher:packageRelease'.
> A failure occurred while executing com.android.build.gradle.tasks.PackageAndroidArtifact$IncrementalSplitterRunnable
   > com.android.ide.common.signing.KeytoolException: Failed to read key anne from store 
      "C:\Test_Unity2022\Keystore\testapp.keystore": Cannot recover key

 

Unity 2022 포팅 테스트 해볼 겸 올려보다가 빌드 에러가 나서 보니 위와 같은 에러가 뜨고 있다.

 

[해결]

확인해보니 keystore 비밀번호를 잘못 입력한 것 같다.

비밀번호는 별표(*)로 나와서 안보이니 입력할 때 꼼꼼하게 잘 확인하자.

 

[참조] https://kwonyoonjae.tistory.com/112

 

유니티 a failure occurred while executing com.android.build.gradle.internal.tasks.workers$actionfacade 해결 방법

유튜브를 보면서 처음으로 유니티를 이용해 게임을 만들던 중 문제가 생겼습니다. 바로 "a failure occurred while executing com.android.build.gradle.internal.tasks.workers$actionfacade"에러가 나온 것인데요. 처음에

kwonyoonjae.tistory.com

[참조2] https://appletreeworkplace.tistory.com/6

 

[유니티] android gradle build failed 뜰 때 해결법

UnityPlayerActivity.java uses or overrides a deprecated API. 갑자기요..? 정상적인 유니티에서 안드로이드 플랫폼 성공 과정이라 하믄~ build gradle project에서 그 다음 Copying APK를 봐야 안심이 된다. 그러나 build gr

appletreeworkplace.tistory.com

 

반응형
Posted by blueasa
, |

[링크] http://yoonhada.com/?p=1398 

 

[Build]유니티 안드로이드 Gradle Version 관리 – yoonhada

Gradle 도구를 사용할 때 꼭 알아야 할 버전관리 이슈을 정리해보았다. 특히 유니티 엔진같은 경우 특수한 경우이기 때문에 더욱더 중요하다. (내용은 안드로이드 스튜디오에서도 동일하게 적용

yoonhada.com

 

[링크2] https://chc3484.tistory.com/74

 

[Android Build] 유니티 안드로이드 Gradle Version 관리

Gradle 도구를 사용할 때 꼭 알아야 할 버전관리 이슈을 정리해보았다. 특히 유니티 엔진같은 경우 특수한 경우이기 때문에 더욱더 중요하다. (내용은 안드로이드 스튜디오에서도 동일하게 적용

chc3484.tistory.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.14f1

----

 

Android 12 미만(예: Android 9에서 확인됨)에서 갑자기 FullScreen(전체화면)이 안되는 이슈가 생겨서 처리하고 올려 둠.

 

예상으로는 Android 12(API 31) 대응이후 Android 12 미만 디바이스에서 생기는 것 같다.

확인된 걸로는 Android 9에서 아래와 같이 '이 앱은 전체 화면에서는 정상적으로 작동하지 않을 수 있습니다.' 라고 뜬다.

Android 9 설정 화면

 

위 설정이 꺼져있을 때 Android 12미만에서 대충 아래와 같은 느낌으로 뜬다.

FullScreen 꺼져있을 때 참조 이미지

[참조이미지 링크] https://answers.unity.com/questions/1577161/game-not-expanding-to-fill-full-screen-on-s8-andro.html

 

수동으로 '활성화'하면 정상적으로 전체화면으로 보이기는 한데, 처음부터 정상적으로 보여야 될 것 같아서 알아보고 수정해둠.

 

[결론]

수정방법은 의외로 심플하다.

아래 코드를 앱 최초 실행 시 어딘가에 추가해 두자.

Screen.fullScreen = true;

 

밥아저씨 : "참 쉽죠~?"

 

 

[참조] https://forum.unity.com/threads/disable-immersivemode-unity5.313911/#post-3090959

 

Disable ImmersiveMode (Unity5)

Is there a way to disable the immersive mode in Unity 5? It's a cool feature, but IMHO it's not right to presume that this settings is appropriated to...

forum.unity.com

 

[추가]

아래 링크를 보면 android:theme를 써서 전체화면을 만드는 것 같은데 나중에 이것도 테스트 해봐야 될 것 같다.

android:theme="@android:style/Theme.Translucent.NoTitleBar.Fullscreen"

 

[참조2] https://gamedev.stackexchange.com/questions/166667/why-do-i-have-to-set-my-unity-app-to-full-screen-manually-on-my-phone

 

Why do I have to set my Unity app to full-screen manually on my phone

When I open my unity app it doesn't go full-screen until I change it in the settings, isn't there a way to do that... it actually isn't a scaling problem or an aspect ratio.... Because you can see ...

gamedev.stackexchange.com

 

[참조3] https://202psj.tistory.com/1342

 

[Unity] 유니티 소프트키 관련

////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// 출처: https://m.blog.naver.com/PostView.nhn?blogId=uponsky&logNo=220334847464&proxyRefe

202psj.tistory.com

 

반응형
Posted by blueasa
, |

Unity 2021.3.14f1

Firebase 9.6.0

----

 

[Google Store Warning]

  • com.google.android.gms:play-services-safetynet:17.0.0
    이 SDK 버전에는 SDK 개발자의 메모가 포함되어 있습니다. SDK 개발자가 신고한 내용은 다음과 같습니다.
  • The SafetyNet Attestation API is being discontinued and replaced by the new Play Integrity API. Begin migration as soon as possible to avoid user disruption. The Play Integrity API includes all the integrity signals that SafetyNet Attestation offers and more, like Google Play licensing and better error messaging. Learn more and start migrating at https://developer.android.com/training/safetynet/deprecation-timeline

----

최근 앱을 구글 스토어에 올리면서 위와 같은 경고가 떴는데, 알아보니 FirebaseAuth가 play-services-safetynet을 참조하고 있는 것 같다.

그래서 exclude를 하기 위해 좀 찾아보니 아래와 같은 방법을 제안한다.

implementation ('com.google.firebase:firebase-auth:17.0.0'){
    exclude group: 'com.google.android.gms', module: 'play-services-safetynet'
}

[참조] https://kwonsaw.tistory.com/1227

 

[Android] 구글 플레이 콘솔 com.google.android.gms:play-services-safetynet 해결 방법

얼마 전 안드로이드 스튜디오 프로젝트를 업로드하는데 구글 플레이 콘솔 메시지 창에 다음과 같은 경고가 발생했습니다. com.google.android.gms:play-services-safetynet SDK 개발자의 보고 내용은 다음과

kwonsaw.tistory.com

 

그런데 이 방법은 Firebase 관련 Defendencies.xml에서 생성하는거라 Android Resolve를 하면 자동으로 다시 삭제돼 버린다.

 

그래서 별도로 빼서 exclude를 할 방법이 없나하고 찾아보니 아래 3가지 방법을 보여주고 있다.

구성 전반적으로 제외 하는 방법

  configurations.all {
    exclude group: 'com.android.support', module: 'customtabs'
  }

단지, 컴파일에서 제외하는 방법

  configurations {
    compile.exclude group: 'com.android.support', module: 'customtabs'
  }

Dependencies에서 제외하는 방법

dependencies {
    implementation ('com.android.support:appcompat-v7:27.1.1'){
        exclude group: 'com.android.support', module: 'customtabs'
    }
}

[참조] https://ovso.github.io/blog/2018/04/18/gradle-dependencies-exclude/

 

Gradle dependencies exclude(Gradle 의존성 제거)

Gradle 의존성 제거

ovso.github.io

 

3번째 방법은 Android Resolve 시 초기화를 해버려서 configurations.all과 configurations를 어디에 넣어야되는지 찾아봤는데, 아래와 같이 mainTemplate.gradle의 dependencies에 넣나보다.

dependencies {
    ...
    
    configurations.all {
        exclude group: 'com.android.billingclient', module: 'billing'
    }
}

[참조] https://documentation.qonversion.io/docs/unity-sdk

 

Unity in-app purchases SDK | Qonversion

Install Unity SDK to validate user receipts, get in-app subscription analytics, and 3-rd party integrations.

documentation.qonversion.io

 

그래서 com.google.android.gms:play-services-safetynet:17.0.0를 exclude 하기 위해 아래와 같이 추가했다.

dependencies {
    ...
    
    configurations.all {
        exclude group: 'com.google.android.gms', module: 'play-services-safetynet'
    }
}

 

일단 빌드는 잘되고, Android Resolve 해도 삭제되지 않는 건 확인 했는데..

스토어 올려봐야 사라진건지 알 수 있으려나..?

반응형
Posted by blueasa
, |