채팅 서버로 Rocket chat을 사용하고 있다.

초기 http로 설정하고 이후 https를 적용하고, http -> https 리다이렉션 설정을 했더니 js 로딩시 http가 혼합되는 Mixed Content Error가 발생한다.

해결책을 구글링하다가 발견해서 적용해본자.

Rocket.chat은 도커로 동작 중. 몽고디비에 접속한다.

몽고디비 컨테이너 ID 확인

$ sudo docker ps

CONTAINER ID   IMAGE 
cea589b3ca4a   rocket.chat:latest
809670637dcf   mongo:4.0

컨테이너에 접속하면서 몽고디비에 접속

$ sudo docker exec -it 809670637dcf mongo

 

Rocket.chat 대화가 저장되는 몽고디비의 데이터베이스 사용

> use rocketchat;

설정은 rocketchat_settings 콜렉션에 있다. 이 콜렉션에서 URL 설정값을 확인한다.

db.rocketchat_settings.find({_id: 'Site_Url'});

{ "_id" : "Site_Url", "value" : "http://chat.xxx.yyy" }

Site_Url에서 value 필드의 값을 https로 바꾼다.

> db.rocketchat_settings.update({_id: 'Site_Url'}, { $set: {value: "https://chat.xxx.yyy"}})

 

다시 https로 접속하니 http mixed content 에러가 발생하지 않는다!

 

ps.

관리자 메뉴 일반 > 사이트 URL 에서 설정값 입력이 가능한거 같다. 뭔 삽질인가.

fin.

반응형

안드로이드 스튜디오

Android studio는 애플 실리콘 맥에서 로제타2 기반으로 동작한다. 앱 실행은 실기기에는 잘 되지만 에뮬레이터에서 동작하지 않는 한계가 있다.

 

안드로이드 에뮬레이터

특정 버전에서 앱 동작을 테스트하려면 어쩔 수 없이 기기 대신 에뮬레이터를 써야하는 상황이 발생한다.

구글링을 해보니 애플 실리콘용 에뮬레이터 프리뷰 프로젝트를 발견했다. 사이트 주소는 github.com/741g/android-emulator-m1-preview 이다.

릴리즈 페이지(github.com/741g/android-emulator-m1-preview/releases)로 이동하고 Assets을 확장하면 다음과 같이 다운로드 링크가 나타난다.

dmg 파일을 다운로드하고 설치한다. 

인증되지 않은 개발자 경고가 나타나는데, 시스템 환경 설정 -> 보안 및 개인 정보 보호 앱 동작을 허용하면 에뮬레이터가 동작한다. 다음은 에뮬레이터 이미지다.

 

ADB 오류

처음 에뮬레이터가 동작하면서 다음과 같이 ADB 경로 문제가 발생했다.

에뮬레이터의 사이드 메뉴에서 설정으로 이동하고, Use detected ADB location 항목을 Off하고 직접 adb 경로를 선택한다. Android SDK가 유저 폴더의 라이브러리에 설치되어 있는데 이는 숨겨진 폴더라서 파일 다이얼로그에 나타나지 않는다. Command + Shift + [.] 를 누르면 숨겨진 폴더도 나타난다. 이를 이용해서 adb 경로를 선택한다.

에뮬레이터에 앱 동작

에뮬레이터가 동작하면 안드로이드 스튜디오의 기기 목록에 다음과 같이 Virtual Device로 나타난다. 이제 애플 실리콘 맥에 안드로이드 에뮬레이터를 사용할 수 있다.

 

플레이 서비스

m1 안드로이드 에뮬레이터 프리뷰2로 설치해보니, 플레이 서비스가 설치되지 않아서 앱 동작이 실패했다.

프리뷰 v3에 구글 API 시스템 이미지가 포함되어 있다길래, 이를 이용해서 에뮬레이터에 앱이 동작시켰다. 이제 구글 플레이 서비스가 없다는 오류가 발생하지 않는다.

 

반응형

+ Recent posts