티스토리 뷰

Ionic&cordova

Cloud Deploy - 프로젝트에 적용

불량마늘 2017. 2. 6. 11:51

Cloud Deploy - 프로젝트에 적용


Cloud Deploy - 환경설정은 Cloud에 프로젝트 정보만 연결하는 것이었다면,
이 포스팅에서는 실제 소스를 업데이트 하는 것부터 정리한 것이다.


Deploy plugin 설치


AOS, iOS  기기에서 앱을 업데이트하는 배포 플러그인을 설치해야 한다.
CLI에서 Ionic App 프로젝트 디렉토리의 루트로 들어가 아래의 구문을 실행한다.

$ cordova plugin add ionic-plugin-deploy --save



Injecting Deploy

나의 경우 src/app/app.component.ts 에 아래의 구문을 추가하였다.

import {Component} from '@angular/core';

import {Deploy} from '@ionic/cloud-angular';


@Component( ... )

export class MyPage {

  constructor(public deploy: Deploy) {

    ...

  }

}



Snapshots

snapshot은 Ionic CLI를 사용하여 앱소스들을 업로드하여 만든다.
이러한 스냅샷을 다른 채널에 배포하고 사용자의 장치에 적용할 수 있다.

 NOTE 

 스냅샷의 짧은 설명문구

 CHANNEL_TAG

 production, staging, dev, 또는 사용자 채널 태그


이를 이용하여 스냅샷을 만들 준비가 되면 업로드 명령을 실행한다.


$ ionic upload --note "NOTE"


Deploying to Channels


--deploy 플래그로 업로드를 하면 나의 스냅샷은 각 채널에 바로 배포된다.

아이오닉 DashBoard에서도 스냅샷을 채널에 배포 시킬 수도 있다.


$ ionic upload --note "NOTE" --deploy CHANNEL_TAG


App Implementation

새로운 스냅샷 확인


this.deploy.check().then((snapshotAvailable: boolean) => {
if(snapshotAvailable){
// true 일때 소스
}
});


새로운 스냅샷 승인


this.deploy.download().then(() => {

return this.deploy.extract();

});


앱 리로드


this.deploy.load();


활성화 채널 변경

기본적으로 활성화된 채널은 'production' 이다.
만약 채널이 유효하지 않거나 더이상 존재하지 않으면 Deploy 채널은 'production'으로 설정된다.

this.deploy.channel = 'dev';


Snapshots 관리


목록

스냅샷 목록은 일관되게 정렬되지 않는다.

this.deploy.getSnapshots().then((snapshots) => {
// 스냅샷 UUID의 배열
});


삭제

원하지 않는 스냅샷을 제거하여 저장공간을 확보할 수 있다.

this.deploy.deleteSnapshot('12345678-1234-1234-1234-123456789');


활성 스냅샷을 삭제하지 않으면 응용 프로그램을 사용할 수 없게 된다는데 뭔말인지 모르니 지금은 패스..


메타데이터

메타 데이터를 사용하면 배포에 사용자 지정 데이터를 제공하는 데 사용할 수 있는 사용자 지정 키/값을 설정할 수 있다.


this.deploy.check().then((hasUpdate: boolean) => {

if(hasUpdate){

this.deploy.getMetadata().then((metadata) => {

// use metadata

});

}

});


특정 배포에 대한 메타데이터 가져오기

특정 스냅샷의 메타데이터를 가져오려면 스냅샷 UUID를 전달한다.

this.deploy.getMetadata('12345678-1234-1234-1234-123456789').then((metadata) => {
// use metadata
});


버전관리(Binary Versioning)

이건 나중에 정리하는걸로...



IONIC VIEW APP에서의 Deploy 테스트는 안되는듯 - 2017/02/07


USB로 실제 디바이스(iOS)에서 적용하기

config.xml의 버전은 굳이 올리지 않아도 됨.
이것은 Binary Version에서 사용하기 위함.

CLI에서 $ ionic build ios 실행하여 소스를 ios용으로 빌드시킨다.

해당버전의 플랫폼에서 ios 디렉토리의 .xcodeproj 확장자를 클릭하면 Xcode가 실행됨.
거기서 run을 실행하면 실제 디바이스로 앱이 설치된다.

그리고 소스내에 어떠한 수정을 한뒤

CLI에서 $ ionic upload --note 'note description' --deploy CHANNEL_TAG 실행
그럼 Ionic dashboard에는 해당버전이 Active가 된다.

방금 설치한 앱을 종료 후 재실행하면 업데이트가 진행되고 앱이 업데이트 된 내용으로 새로고침 된다.


app.component.ts 의 constructor() 내부에 실행 소스를 입력하였고,

위의 소스를 적용하니 잘 된다.

'Ionic&cordova' 카테고리의 다른 글

Android Studio & Gradle 버전 오류로 Ionic2 build 실패  (1) 2017.04.05
Error 모음  (0) 2017.02.07
Auth  (0) 2017.02.06
Cloud Deploy - 환경세팅  (0) 2017.02.06
화면 라이프사이클  (0) 2017.02.03
댓글