Total: Today: Yesterday:
개발/Unity | 2020. 8. 10. 16:36 | Posted by 자수씨

안드로이드 빌드 시 keystore 를 설정한 후 빌드를 하게 되면 Project Settings 에서 keystore 에 대한 패스워드를 지정해야 한다.

 

Unity 의 보안 정책인지 모르겠지만 Unity Editor 를 재시작하게 되면 패스워드가 초기화 된다.

 

BuildPipeline.BuildPlayer() 로 빌드할 경우 항상 패스워드를 설정해주어야 하는 불편함이 발생한다.

 

구글링을 통해 확인된 해결 방법은 keystore 패스워드를 스크립트에서 설정하는 것인데, BuildPlayer 바로 위에 설정할 경우 동일한 에러가 발생한다.

PlayerSettings.Android.keystorePass = "$$password$$";
PlayerSettings.Android.keyaliasPass = "$$password$$";

BuildPipeline.BuildPlayer(...);

 

 

[InitializeOnLoad]  Attribute 와 static 생성자(?) 를 이용하여 설정하게되면 스크립트 내에서 패스워드 설정이 가능한 것을 확인하였다.

[InitializeOnLoad]
public class LocalBuild : MonoBehaviour
{
    static LocalBuild()
    {
        PlayerSettings.Android.keystorePass = "$$password$$";
        PlayerSettings.Android.keyaliasPass = "$$password$$";
    }
    ...
    
}

 

ㅁ 참고자료

https://answers.unity.com/questions/757834/publishing-settings-keystore-password-not-saving.html

개발/Unity | 2020. 8. 7. 18:48 | Posted by 자수씨

Facebook 로그인 테스트를 위해 사이트(https://developers.facebook.com/docs/unity/) 에서 SDK 를 내려받고 매뉴얼(https://developers.facebook.com/docs/unity/gettingstarted)을 보고 초기화 설정까지 완료했는데, 앱을 빌드하고 로그인 로직이 처리되는 순간 crash 가 발생한다.

FB.LogInWithPublishPermissions() 메소드를 호출하는 순간 발생하는 것 같은데...

구글링을 하다보니 LogInWithReadPermissions, LogInWithPublishPermissions 메소드의 차이로 인해 발생하는 것으로 보인다.

var perms = new List<string>(){"public_profile", "email"};
FB.LogInWithReadPermissions(perms, AuthCallback);

public_profileemail 조회 시에는 LogInWithReadPermissions 를 사용한다.

참고자료

개발/Unity | 2020. 8. 7. 14:29 | Posted by 자수씨

Unity 빌드를 Jenkins 로 이용하고 있는데, Editor 를 최신버전으로 업데이트 한 이후부터 아래와 같은 오류가 발생한다.

 

Could not open file /Users/*****/Documents/unity/2020.1.1f1/PlaybackEngines/AndroidPlayer/modules.asset for read 
(Filename: ./Runtime/File/OpenFileCache.cpp Line: 61)
 
Assertion failed on expression: 'res' 
(Filename: ./Runtime/Serialize/SerializationCaching/FileCacherRead.cpp Line: 133)
 
Unknown error occurred while loading '/Users/*****/Documents/unity/2020.1.1f1/PlaybackEngines/AndroidPlayer/modules.asset'. 
(Filename:  Line: 0)
 
[Unity Package Manager (Upm)]
Parent process [30691] was terminated

 

Jenkins 는 추후 iOS 빌드를 위해 MacOS 환경에 구축되었는데, MacOS 에서 Unity Editor 로 빌드를 하면 오류가 발생하지 않는다.

 

한가지 특이한 사항은 이전 버전이 2019.3.0f6 인데 경로가 Documents 가 아닌 Developments 라고 별도의 경로에 있었다. 기억을 더듬어 보니 기존에도 이러한 이슈가 발생한 것 같은데 정리를 안해 놓은 듯...

 

기존 버전과 같이 Unity Editor 를 /Users/[사용자]/Documents 가 아닌 다른 경로(/Users/[사용자]/Developments) 로 이동시키고 빌드를 했더니 오류가 발생하지 않았다.

 

Jenkins 프로세스가 MacOS 의 권한으로 인해 Documents 에 접근이 안되는 것으로 마무리 짓는다.

(이전에는 관련된 정보를 찾았던 것 같은데 기억이 나지 않는다...)