!! iOS 를 포함한 버전으로 재 작성 중 입니다.
샘플 프로젝트 -> Mendix Academy 에 있는 Build a Native Mobile Inspection App 과정의 완성본 을 배포 해보겠습니다.
Mendix Academy - Build a Native Mobile Inspection App
개발방법은 해당 교육페이지를 참조
환경 :
Mendix Studio Pro : 10.6.8
Node : 20.12.2
JDK : 17 -> 11 ( 서버 컨테이너화시 17인경우 not support 오류 발생함 )
1. 프로젝트 마이그레이션
샘플프로젝트의 결과파일이 Mendix Studio 9.24.1 을 대상으로 하기 때문에 자동 컨버트가 일어나고 몇가지 오류가 발생합니다. 아래의 사항을 진행해 줍니다.
1.1 Natvie Mobile Resources 위젯 업데이트
1.2 Mendix SSO 위젯 업데이트
1.3 오류관련 User 엔티티 EmailAddress 추가
### 배포를 위해서 시큐리티 레벨변경
1.4 보안 레벨 Poduction 으로 변경 -> 엔티티 접근권한 을 모두 추가함
아래 문서를 참조로 로컬에서 네이티브 앱을 빌드합니다. (안드로이드)
Build a Mendix Native App Locally | Mendix Documentation
2. 안드로이드 스튜디오 설치
안드로이드 스튜디오 : 2023.3.1 JellyFish 설치합니다.
3. 템플릿 가져오기
네이티브 컴파일을 위해 템플릿을 가져옵니다.
git clone https://github.com/mendix/native-template.git
자신의 Mendix Studio Pro 의 버전에 맞게 네이티브 템플릿을 가져와야 합니다.
위와 같이 하면 최신의 것을 가져와서 낮은 버전의 스튜디오를 쓰면 Android Studio 에서 오픈시 컴파일 오류가 발생합니다.
현재 템플릿 8.0.8 버전으로 대응이 됩니다.
직접 이 버전을 다운 받은 후 진행 하면됩니다.
다운받은 루트 폴더에서 npm i 를 실행합니다.
4. 앱 번들링
앱번들링을 위해 mxbuild 를 다운받습니다.
cdn.mendix.com/runtime/win-mxbuild-10.6.8.33522.tar.gz
자신에 맞게 실행명령어를 수정해서 번들링을 실행합니다.
mxbuild.exe --java-home="JDKDirectory" --java-exe-path="javaExecutable" --target=deploy --native-packager --loose-version-check path-to-your-app-mpr-file
예)
mxbuild.exe --java-home="C:\Program Files\Eclipse Adoptium\jdk-11.0.20.101-hotspot" --java-exe-path="C:\Program Files\Eclipse Adoptium\jdk-11.0.20.101-hotspot\bin\java.exe" --target=deploy --native-packager --loose-version-check "C:\study\rn-workspace\sample-mendix-rn\native-template\CompletedBuildANativeMobileApp_6_1_2_V9_24\CompletedBuildANativeMobileApp_6_1_2_V9_24.mpr"
5. 앱 컴파일 준비
위에서 번들링한 타겟 폴더에 있는 (프로젝트)\deployment\native\bundle\android 의 파일을 3의 템플릿 폴더
\native-template-8.0.8\android\app\src\main 에 복사 붙여 넣기 합니다.
서버 주소를 아래의 파일에 써줍니다.
native-template-8.0.8\android\app\src\main\res\raw\runtime_url
템플릿 루트폴더( \native-template-8.0.8) 에서 npm install --legacy-peer-deps 를 실행합니다.
6. 앱 컴파일
템플릿 루트 폴더의 android 폴더를 Android Studio 에서 오픈합니다.
첫 오픈시 필요한 파일 다운로드에 많은 시간이 걸립니다.
이제 실행을 하면, 접근이 가능합니다!
-. 서버
프로젝트를 docker 빌드용 폴더에 복사해서 컨테이너화를 진행합니다.
docker build --build-arg BUILD_PATH="./CompletedBuildANativeMobileApp_6_1_2_V9_24" -t inspector .
#docker hub 에 push 하기위해 태깅을 하고 로그인 후 푸쉬합니다.
docker tag 230af8417b31 gauguin135/inspector:0.1.0
docker login
docker push gauguin135/inspector:0.1.0
!! 오류사항 JDK 17을 지원하지 않는 오류가 발생하여, 11로 환경을 다운설정하고 재실행함
-. 서버 인프라는 쿠버네티스 환경이어서 postgresql 설정 주입및 디플로이먼트 yaml 파일을 생성하여 환경 구성 하였습니다.
이전에 쓴 아래 글을 참조한다.
Mendix 프로그램 컨테이너화 ( by docker build pack ) (tistory.com)