8
respostas

Atualizar APK fora da Play Store

Na empresa que trabalho, estamos criando aplicativo para celular afim de atender necessidade operacionais da empresa, até aqui esta tudo bem. Mas um pré- requisito da empresa é não colocar o APK na Play Store, desta forma terei que criar recurso em meu aplicativo para que seja possível realizar a atualização quando necessário, de forma que , quando houver uma nova versão o apk do celular se atualize, alguém tem algum exemplo neste sentido ?

8 respostas

Rapaz, creio que isso não vai rolar. A política de segurança não permitirá. No máximo, até onde eu sei, terá que fazer download e atualizar manualmente.

Em teoria o download pode ser feito via link em sua App aplicando alguma lógica para saber se a App é nova. Já sua execução automática acho que só criando um plugin nativo com cordova.

Você acabou saindo um pouco fora do que o Ionic propõe. Vamos ver se alguém passou por isso aqui.

Obrigado Flavio. A empresa que eu trabalho oura ou outra , força situações para sair do padrão , normal isso acontece kkkkkkk.

Quanto a segurança do telefone, estou habilitando no celular para permitir fontes desconhecida, tendo em vista que o APK não esta vindo de uma play store.

Fiz alguns teste com plugin AppUpdate ionic 3 mas não consegui fazer funcionar, se alguém puder ajudar.

Vou deixar seu post aqui aberto um tempo para ver se alguém lança uma luz.

Estou achando que esse AppUpdate esta bugado pelo o que eu ando lendo. Assim que sair um update, atualiza para ver se rola.

É eu andei lendo bastante também, achei uma ótima ideia da ionic , pena que não funciona, vou tentar analisar a arquitetura deles para tentar identificar o possível problema, se eu encontrar o problema já coloco como sugestão de correção e posto aqui no fórum.

Qual erro está acontecendo?

O erro que eu recebo é esse: {"code":405 ,"msg":"network error"} . O celular tem tem internet e funciona normalmente a navegação pelo browser.

Abaixo a classe que utilizo para rotina de atualização.

` import { Component } from '@angular/core'; import { NavController, Platform, AlertController, LoadingController } from 'ionic-angular'; import { AppUpdate } from '@ionic-native/app-update'; import { Network } from '@ionic-native/network'; import { AppVersion } from '@ionic-native/app-version'; import { Deploy } from '@ionic/cloud-angular';

@Component({ selector: 'page-usuario', templateUrl: 'usuario.html' })

export class UsuarioPage { erro: any; url: any; installed: any; getPlugin: any; getPluginName: any; getPluginRef: any; getPluginInstallName: any; getSupportedPlatforms: any; login: any; conectado: any; desconectado: any tipo: any;

constructor(public alertCtrl: AlertController, private navCtrl: NavController, private platform: Platform, private network: Network, private appUpdate: AppUpdate, private appVersion: AppVersion, public deploy: Deploy, private loadingCtrl: LoadingController) { }

buscarUsuario() { this.conectado = this.network.onConnect().subscribe(); this.desconectado = this.network.onDisconnect(); this.tipo = this.network.type; this.installed = AppUpdate.installed(); this.getPlugin = String(AppUpdate.getPlugin()); this.getPluginName = AppUpdate.getPluginName(); this.getPluginRef = AppUpdate.getPluginRef(); this.getPluginInstallName = AppUpdate.getPluginInstallName(); this.getSupportedPlatforms = AppUpdate.getSupportedPlatforms(); console.log("AppName = " + this.appVersion.getAppName().then()); console.log("PackageName = " + this.appVersion.getPackageName()); console.log("VersionCode = " + this.appVersion.getVersionCode()); console.log("VersionNumber = " + this.appVersion.getVersionNumber());

this.appUpdate

const updateUrl = 'https://SuaUrlColocaAqui/AtualizaG3APP.xml'; this.url = updateUrl; this.appUpdate.checkAppUpdate(updateUrl).then((x) => { this.erro = "SEM ERRO" + JSON.stringify(x).toString(); }, (erro) => { this.erro = "COM ERRO" + JSON.stringify(erro).toString(); }); } logar() {

} }`

O erro 405 é de método não permitido. Você esta tentando usar um método HTTP que não é permitido pelo seu backend.