업데이트 API 엔드포인트
다음은 플러그인에 업데이트를 보내는 JavaScript 코드 예제입니다
interface AppInfos { version_name: string version_build: string version_os: string custom_id?: string is_prod?: boolean is_emulator?: boolean plugin_version: string platform: string app_id: string device_id: string}
export const handler: Handler = async (event) => { const body = JSON.parse(event.body || '{}') as AppInfos const { platform, app_id, version_os, device_id, version_name, version_build, plugin_version, } = body console.log('update asked', platform, app_id, version_os, device_id, version_name, version_build, plugin_version) if (version_name === '1.0.0') { return { version: '1.0.1', url: 'https://apiurl.com/mybuild_101.zip', checksum: 'sha256_checksum_of_bundle', } } else if (version_name === '1.0.1') { return { version: '1.0.2', url: 'https://apiurl.com/mybuild_102.zip', checksum: 'sha256_checksum_of_bundle', } } else { return { message: 'Error version not found' version: '', url: '', } }}암호화되지 않은 번들의 경우 엔드포인트가 다음을 반환해야 합니다:
{ "version": "1.0.2", "url": "https://apiurl.com/mybuild_102.zip", "checksum": "sha256_checksum_of_bundle"}암호화된 번들의 경우 세션 키도 포함해야 합니다:
{ "version": "1.0.2", "url": "https://apiurl.com/mybuild_102.zip", "checksum": "encrypted_checksum_from_encrypt_command", "session_key": "ivSessionKey_from_encrypt_command"}업데이트나 오류가 없는 경우 message 키와 선택적으로 error를 추가하세요:
{ "message": "Version not found", "error": "The backend crashed", "version": "1.0.2",}checksum: 무결성 검증을 위한 번들 zip 파일의 SHA256 해시session_key: 암호화된 번들에만 필요 - 이것은 encrypt 명령에서 반환된ivSessionKey입니다version: semver 형식의 버전 식별자url: 번들을 다운로드할 수 있는 HTTPS URL
호환 가능한 번들을 만들고 체크섬을 생성하는 방법은 자동 업데이트 문서를 참조하세요.
암호화된 번들의 경우 완전한 암호화 워크플로우를 설명하는 암호화된 번들 문서를 참조하세요.