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

카테고리

분류 전체보기 (2797)
Unity3D (853)
Programming (479)
Server (33)
Unreal (4)
Gamebryo (56)
Tip & Tech (185)
협업 (61)
3DS Max (3)
Game (12)
Utility (68)
Etc (98)
Link (32)
Portfolio (19)
Subject (90)
iOS,OSX (55)
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

[링크] https://velog.io/@bnm000215/%EC%9C%A0%EB%8B%88%ED%8B%B0-%EC%9E%90%EB%8F%99%ED%99%94-%EB%B9%8C%EB%93%9C-Git-Action

 

유니티 자동화 빌드 (Git Action)

유니티에서 빌드를 하게 되면 빌드 시간 동안 팀 프로젝트를 할 수 없게 되어버립니다.빌드 시간이 짧으면 큰 타격은 없는데, 빌드 시간이 길어지면 작업을 할 수 없으니 치명적이죠.이번 문서

velog.io

 

반응형
Posted by blueasa
, |

Unity 2021.3.41f1

Firebase 12.1.0

GoogleMobildeAds 9.1.0

Facebook SDK 17.0.0

----

 

[추가] 2024-08-08

Unity 2021.3.42f1에서 아래 이슈가 수정되었다고 한다.(Custom Settings Template Gradle 옵션도 생겼다)

  • Android: settingsTemplate.gradle에서 DIR_UNITYPROJECT를 올바르게 교체( UUM-27090 )

Unity 2021.3.42f1에서는 아래와 같이 진행하자.

 

[EDM4U v1.2.181(Frebase v12.1.0) 이하 일 경우]

1) 아래 설명된 Unity 2021.3.41f1에서 하던대로 하고, BuildPreprocessor_settingsTemplateGradle.cs 파일만 삭제하면 된다.

 

[EDM4U v1.2.182(Frebase v12.2.0) 이상 일 경우] : 추천

1) Custom Main Gradle Template 활성화 돼있는지 체크.

2) Player Settings - Player - Android - Publishing Settings - Build에 Custom Gradle Settings Template가 추가됐다.

    체크해서 활성화 해주자.

 

3) EDM4U - Android Resolver에서 다시 Resolve를 해주자.

    (Android Resolve를 하면 mainTemplate.gradle에 있던 Firebase 관련 내용이 settingsTemplate.gradle로 옮겨진다.)

 

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

Unity 2021.3에서 Android Target API 34 선택 시, 빌드에러가 발생하는 문제를 해결했다고 나온 버전이 Unity 2021.3.41f1이다.

Unity 2021.3.41f1에서 gradle 버전과 Java 메이저 버전이 올라가면서 Unity 2022와 같게 맞춰진 것 같다.

       

       [참고]

  • 2021.3.40f1 이하 버전 : AGP 4.2.2 / Gradle 6.7.1 / Java 8
  • 2021.3.41f1 버전 : AGP 7.4.2 / Gradle 7.5.1 / Java 11

 

그런데 Unity 2021.3.41f1에서도 여전히 빌드에러가 나서 에러 메시지를 확인해보니 아래와 같은 부분이 있다.

stderr[

FAILURE: Build completed with 3 failures.

1: Task failed with an exception.
-----------
* What went wrong:
Execution failed for task ':launcher:checkReleaseDuplicateClasses'.
> Could not resolve all files for configuration ':launcher:releaseRuntimeClasspath'.
   > Could not find com.google.firebase:firebase-analytics-unity:12.1.0.
     Searched in the following locations:
       - https://maven.google.com/com/google/firebase/firebase-analytics-unity/12.1.0/firebase-analytics-unity-12.1.0.pom
       - file:////Assets/GeneratedLocalRepo/Firebase/m2repository/com/google/firebase/firebase-analytics-unity/12.1.0/firebase-analytics-unity-12.1.0.pom

 

file:////Assets/GeneratedLocalRepo/Firebase/m2repository/... 부분의 앞에 프로젝트의 Path가 있어야 되는데 제대로 들어가지 않고 있는 것 같다.

원래는 아래와 같이 나와야 된다.

예) file:///C:/{ProjectPath}/Assets/GeneratedLocalRepo/Firebase/m2repository/..

 

이것과 거의 같은 이슈는 이전에도 있었던 것 같다.

(참조: https://issuetracker.unity3d.com/issues/android-template-variable-star-star-dir-unityproject-star-star-is-not-properly-substituted-when-exporting-a-gradle-project)

 

해당 부분은 settingsTemplate.gradle에서 절대경로를 넣으면 임시로 해결이 된다고 하는데,

Unity 2021에서는 Custom SettingsTemplate Gradle 파일 활성화 옵션이 없지만 파일 자체를 Plugins/Android 폴더에 넣으면 제대로 작동한다.

 

settingsTemplate.gradle 파일 안에 **DIR_UNITYPROJECT**를 넣으면 제대로 작동해야되는데 작동을 하지 않아서 IPostGenerateGradleAndroidProject를 사용해서 Path를 절대경로로 교체하는 방식 제안이 있어서 적용해 봤지만 제대로 여전히 빌드가 제대로 되지 않는다.

(참조 : https://github.com/googlesamples/unity-jar-resolver/issues/478)

 

그래서 Preprocessor를 사용해서 Path를 절대경로로 바꾸니 잘 작동한다.

아래는 내가 진행한 순서와 파일들이다.

 

 

    [Unity 2021.3.41f1에서 빌드 에러 수정 방법]

 

1) Unity 2021.3.41f1에서 많이 바껴서 baseProjectTemplate.gradle / gradleTemplate.properties / mainTemplate.gradle 등 gradle 관련 파일들을 삭제 후 새로 생성하자.

    (특히 gradle 버전이 많이 올라가서 baseProjectTemplate.gradle은 새로 생성해줄 필요가 있다.)

 

2) Android Min API 24 / Target API 34로 변경

    (Min API 23에서는 아래와 같은 에러 발생함)

stderr[
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
ERROR:D8: com.android.tools.r8.kotlin.H
ERROR:D8: com.android.tools.r8.kotlin.H
ERROR:D8: com.android.tools.r8.kotlin.H

 

3) 아래 settingsTemplate.gradle 파일을 ../Assets/Plugins/Android 폴더에 추가

settingsTemplate.gradle
0.00MB

 

 

4) 아래 BuildPreprocessor_settingsTemplateGradle.cs 파일을 Editor 폴더에 추가

    (참고: Android 플랫폼, Unity 2021.3.41f1 버전에서만 작동하도록 함)

BuildPreprocessor_settingsTemplateGradle.cs
0.00MB

 

 

5) 빌드

 

 

----

[참조] https://github.com/firebase/firebase-unity-sdk/issues/1070

[참조] https://discussions.unity.com/t/unity-2021-3-and-android-build-failure-when-using-android-legacy-libraries-and-target-api-34/952277/48

[참조] https://github.com/googlesamples/unity-jar-resolver/issues/699

[참조] https://issuetracker.unity3d.com/issues/android-template-variable-star-star-dir-unityproject-star-star-is-not-properly-substituted-when-exporting-a-gradle-project

[참조] https://github.com/googlesamples/unity-jar-resolver/issues/478

[참조] https://moblieandlife.tistory.com/entry/%EC%9C%A0%EB%8B%88%ED%8B%B0Unity-%EB%B9%8C%EB%93%9C%EC%8B%9C-Firebase-%EC%98%A4%EB%A5%98

[참조] https://docs.unity3d.com/ScriptReference/Android.IPostGenerateGradleAndroidProject.OnPostGenerateGradleAndroidProject.html

[참조] https://github.com/googlesamples/unity-jar-resolver/issues/478#issuecomment-980615877

 

반응형
Posted by blueasa
, |

gradle을 Unity 2021 기본인 gradle plugin 4.0.1에서 gradle plugin 4.2.0으로 변경하고 나서

Unity Editor에서는 빌드가 잘되는데 이상하게 jenkins Android 에서만 빌드가 실패해서 삽질하면서 알아보니

jenkins를 Mac에 셋팅해뒀는데 gradle cache 폴더가 뭔가 꼬인 것 같다.

아래와 같은 Warning Log가 엄청나게 뜬다.

 

[Warning Log]

WARNING:/Users/{UserAccount}/.gradle/caches/transforms-2/files-2.1/ea30c3c071cd48c926311878c13eb08b/jetified-unity-classes.jar: D8: Expected stack map table for method with non-linear control flow.

 

그래서 아래 위치의 gradle cache 하위 있는 것들을 모두 삭제하고 새로 빌드를 실행해서 잘 돌아가는 것을 확인했다.

 

[Mac gradle cache 위치] /Users/{UserAccount}/.gradle/caches/

 

[참조] https://blueasa.tistory.com/2769

 

[플러그인] GoogleMobileAds 8.6.0(with Unity2021)

Unity 2021.3.32f1 GoogleMobileAds 8.6.0 Firebase SDK 11.6.0 ---- [추가] gradle을 Unity 2021 기본인 gradle plugin 4.0.1에서 gradle plugin 4.2.0으로 변경하고 나서 Unity Editor에서는 빌드가 잘되는데 이상하게 jenkins Android 에

blueasa.tistory.com

 

반응형
Posted by blueasa
, |

[링크] https://if1live.github.io/posts/make-unity-build-system/

 

유니티 프로젝트 빌드 시스템 구축하기 · /usr/lib/libsora.so

개요 내가 만든 Toy Clash는 Samsung GearVR, Google Daydream, SteamVR, iOS를 지원한다. 이걸로 끝이 아니라 조만간 Windows Store도 추가될 예정이다. 내가 개발해보니까 이정도 갯수의 플랫폼을 지원하기 위해서

if1live.github.io

 

반응형
Posted by blueasa
, |

유니티를 안드로이드 버전으로 빌드하기 위해서 테스트를 해봤다.


내 폰은 아이폰이라 넣으면서 하진 못하고, 우선 apk 파일 만들기까지 해 봄..


아래는 안드로이드 빌드하기 위해 준비한 것 들.. 생각외로 간단하다..


1) 아래 링크로 가서 안드로이드 SDK를 설치한다.

    (http://developer.android.com/sdk/index.html)


2) JDK가 없으면 1) 설치 중에 JDK 설치하라고 뜬다. 아래 링크로 가서 Java SE를 받아서 설치해 주자..

    참고로 V7 버전이 빌드가 잘 안된다는 글이 있어서 V6으로 깔았다. 아래 링크에 두 버전 다 있음.. 선택..

    그리고, 윈도가 64bit(x64)라고 해서 64bit(x64)를 깔면 안됨.. 32bit(x86)로 깔라고 한다..

    (http://www.oracle.com/technetwork/java/javase/downloads/index.html)


3) 위 두 파일이 모두 설치되고 나면, 유니티의 'Edit-Preferences.-External Tools-Android SDK Location'으로 가서 폴더를 지정해 준다.(폴더 선택하러 들어가면 해당 폴더는 알아서 찾는 것 같다. 우측의 블럭된 폴더명을 삭제하고 그냥 '폴더 선택'을 누르면 된다.)


4) 'Android SDK Location' 셋팅을 하고 나서 'File-Build Settings-Platform'을 Android로 맞춘다.


5) 'File-Build Settings' 아래 Player 'Settings..' 를 누르면 Inspector 창에 이런저런 정보가 나오는데 아래와 같이 셋팅한다.

   (셋팅 설명은 있는데 정확히 무슨 옵션이고 뭘 위한건지 체크는 하지 못했다. 디폴트로 해보기도 해야될 것 같다.)

OtherSetting을 누르고

Identification 에서 Bundle Identifier 가 있는데 com.회사이름.플젝이름 이런식으로 고쳐서 써줌니다.

예) com.ABC.Project1

그리고 Minimum Api Level 에 현재 빌드할 폰의 안드로이드 버전에 맞게 설정합니다.

현재 폰의 버전보다 적은 버전해도 상관없음

Configuration 에서 Devices Level 을 ARMv6 with VFP 로 바꾸시고(Unity 4.x  버전에서는 ARMv7밖에 없으니 ARMv7로 하세요)

Graphics Level 을 OpenGL ES 1.x 로 바꿉니다.

그리고 Resolution and Presentation 을 누르고

Default Orientation 으로 어플의 뭐 가로세로 방향 을 고정시킬수있습니다.

Status Bar에 Status Bar Hidden은 핸드폰의 상단 바를 보이느냐 마느냐를 설정하는 것입니다.


6) 다하고나서 'File-Build Settings-Build' 를 하면 apk 파일이 생성된다.


7) 알아서 폰에 넣고 설치를..



참조 : http://cookzy.tistory.com/698

참조 : http://blog.naver.com/nameisljk/110136124090

반응형
Posted by blueasa
, |