본문 바로가기

Before/ego-client

[HANTA - Cordova] iOS 빌드 테스트중 삽질

푸시 서버로 Google FCM을 이용하기 위해 잠시 Spring Boot 개발을 멈추고 Firebase console에서 프로젝트 생성 후

 

APNS 인증서도 정상적으로 등록을 했다.

 

cordova-plugin-fcm 플러그인을 사용했는데 처음엔 다음 사진처럼 플러그인 문서에 따라 잘 작동했는데

 

이제 Firebase서버로 부터 받은 이 토큰을 alert가 아니라 우리 서버로 보내주기 위해 콜백 함수를 변경하고 빌드를 하니 플러그인이 아예 먹통이 되는 것이었다.

 

전혀 도움은 안되고 이후에 비슷한 삽질을 하는것을 막기 위해 기록차 남긴다.

 

 

$ cordova create fcm-test

$ cd fcm-test

 

-> Firebase console에서 발급받은 GoogleService-Info.plist를 Cordova 프로젝트의 루트경로에 복사해 넣는다

 

$ cordova platform add ios

$ cordova plugin add cordova-plugin-fcm

$ cordova plugin add cordova-plugin-inappbrowser

 

순으로 프로젝트 셋팅을한다.

마지막 inappbrowser는 이 삽질기에서 별 필요는 없는데 까먹을까봐 적어놨다.

 

커맨드라인으로 이렇게 한 뒤 xCode에서 빌드를 진행할 예정이라 커맨드라인을 이용한 빌드를 진행하지 않은 것이 화근이었다.

 

현재 백엔드를 담당하고 있어 iOS 빌드의 경우 프론트엔드 빌드 경로와 Cordova 애플리케이션 빌드 경로가 달라 SPA 파일을 옮겨넣어

 

빌드를 하기 때문에 cordova.js 파일을 주입하는 것을 까먹고 있었던 것이다,,,

 

안드로이드 빌드의 경우 안드로이드 스튜디오가 아닌 커맨드라인으로 빌드를 수행해 별 문제가 없었는데 iOS에서는

 

내 컴퓨터 환경에서 ios-deploy가 설치되지 않아서 xCode로만 빌드했던 것이 문제였다.

SPA를 빌드해 www디렉터리가 생성되면 이 부분을 통째로 Cordova 프로젝트에 덮어씌우는 방식으로 수행했는데

 

이 과정에서 platform_www에 있는 js 파일들이 복사되지 않는 것이 문제였다,,,,

 

이틀 내내 붙잡고 검색하고해도 나와같은 멍청이는 없는건지 비슷한 에러조차 찾을 수가 없더라,,

 

결국 계속 똑같은 명령어를 치면서 반복하고 다른 플러그인으로 갈아끼우기도 했다가 사파리 원격디버깅으로 js 파일이 없다는

 

에러를 발견하고 나서야 해결할 수 있었다,,,

 

$ cordova prepare ios

 

디버깅을 생활화하자