In fondo trovate un imporante precisazione se usate la nuova JDK versione 7
Continuiamo a vedere i passi necessari al caricamento ed alla pubblicazione della nostra applicazione creata con App Inventor nell' Android Market.
Oggi vedremo come modificare il file Androidmanifest.xml in modo da renderlo compatibile con i controlli che vengono effettuati da Google per la pubblicazione delle applicazioni.
Dopo aver "corretto" il file xml ricompatteremo l'app in un nuovo file .apk , procederemo quindi a firmare con la nostra signature tutti i file dell'applicazione ed in ultimo lanceremo il comando zipalign per allineare tutti i file.
seguite quindi con estrema attenzione il video in cui vengono illustrati tutti i passaggi necessari:
Anche qui, per rendervi più agevole il lavoro, vi illustro i passi che vengono effettuati e vi riporto in forma testuale i comandi che vengono dati:
Modifica del file Androidmanifest.xml:
1)
file originale:
<manifest package="appinventor.ai_seblogapps.TriumphSound"
<manifest android:versionCode="1" android:versionName="1.00" android:installLocation="auto"
package="appinventor.ai_seblogapps.TriumphSound"
versionCode va sempre incrementato nel caso si faccia un upgrade della nostra applicazione
versionName è il nome della nostra versione e può assumere qualunque valore (eg: 1.00; 0,99a ; etc...)
2)
file originale:
<application android:label="TriumphSound" android:icon="@drawable/ya" android:debuggable="true">
file modificato:
<application android:label="Triumph Sound" android:icon="@drawable/ya" android:debuggable="false">
Apktool b <nomeapp>
Il nuovo apk viene messo in \nomeapp\dist\
Faccio il sign dell'applicazione con la mia signature:
jarsigner –verbose –keystore <mykeystore>.keystore <nomeapp>\dist\<nomeapp>.apk <aliasname>
Faccio il zipalign dell’apk
zipalign –v 4 <nomeapp>\dist\<nomeapp>.apk <nomeapp>_market.apk
Finito! la vostra app è pronta per essere caricata nel Market Android!!!
se avete commenti, dubbi, problemi o perplessità, scrivete nei commenti e tenterò di darvi una mano!
Aggiornamento per chi dovesse usare JDK versione 7:
se avete installato la Java SE Development Kit 7 per windows (jdk-7-windows-i586.exe oppure jdk-7-windows-x64.exe)
bisogna notare che il comando jarsigner è stato modificato e se utilizzato come spiegato sopra non ci farà installare il nostro .apk anche se verrà caricato correttamente nel market.
per risolvere date invece questo comando:
jarsigner –verbose –keystore <mykeystore>.keystore <nomeapp>\dist\<nomeapp>.apk <aliasname> -digestalg SHA1 -sigalg MD5withRSA
Salve, ho seguito passo passo tutto il suo ottimo tutorial, ma dopo aver creato il nuovo apk (da caricare sul market inseguito) non riesco ad installare l'app sul mio android. Praticamente, quando android mi chiede se voglio installare l'app invece di esserci 4 autorizzazioni (Archiviazione, Comunicazione di rete, Informazioni personali, Telefonate), ce ne sono solo 2 (Comunicazione di rete, Informazioni personali) e dopo aver premuto Installa, mi esce "Applicazione non installata".
RispondiEliminaSa dirmi quale sia il problema?
Grazie
Quando eseguo il comando jarsigner.exe –verbose –keystore [nome].keystore [nome app].apk [nome alians]
RispondiEliminaMi da un errore:
jarsigner error: java.lang.RuntimeException : keystore load: c:\users\michele\.keystore
Io tutto questo procedimento lo ho fatto nella cartella c:\market
Come posso risolvere???
Salve, complimenti per il tutorial davvero chiaro e preciso. Però ho un problema quando carico la app che ho realizzato sul mio smartphone (dopo aver modificato il file xml e aver eseguito i successivi passaggi) e cerco di installarla mi compare la finestra di descrizione della App e se clicco su installa ci prova e poi dice "Applicazione non installata"... Sai cosa potrebbe essere? Grazie Ciao Ciao!
RispondiEliminaè necessario rimuovere l'app installata precedentemente (quando la si provava tramite AppInventor) infatti abbiamo cambiato la signature dell'app e non possiamo quindi installare la stessa app ma con altra signature.
RispondiEliminaProva a rimuovere l'app che avevi già sul tuo smartphone e poi reinstalla .apk pronto per il market...:)
per channellone88, mi pare che se questo è l'errore
RispondiEliminaMi da un errore:
jarsigner error: java.lang.RuntimeException : keystore load: c:\users\michele\.keystore
tu non dia il nome al tuo keystore (infatti vedo solo \.keystore invece dovresti avere qualcosa tipo \michele.keystore)
cosa ti da se digiti solo jarsigner? potrebbe anche essere un problema di path
x Softline,dovrebbe essere lo stesso problema di Jonhatan, rimuovi prima la tua applicazione (quella installata tramite app inventor) e poi installa quella pronta per il market, poi fammi sapere :)
RispondiEliminaSalve, Grazie 1000 per avermi risposto, ma avevo gia provato ad eliminare l'app facendone anche una nuova ma il problema era rimasto. Quindi ho provato a rifare la app con FlashCS5 e piano piano sono arrivato a capire che il problema erano gli apktool (scompattavano e ricompilavano male si vede boh..) comunque reinstallandoli ho risolto il fatto della "Applicazione non installata". Adesso però ne ho un altro :), le immagini mi si adattano alla larghezza del display dello Smartphone in app inventor erano proporzionate.. come potrei risolvere? Grazie e Saluti
RispondiEliminaCiao Seblog, non riesco a trovare il tutorial dove spieghi come creare la firma...riesci per favore ad aiutarmi? grazie!
RispondiEliminaCiao Flavio, lo trovi nella parte 1 del tutorial (http://seblogapps.blogspot.com/2011/05/tutorial-10-parte-1-come-pubblicare-le.html) è una delle prime operazioni che spiego :)
RispondiEliminax Jonathan: prova a controllare nel tuo manifest il valore di anydensity, in genere è meglio settarlo a "false" (così anche dice la guida developer di Google), in genere è quel flag che fa fare cose "strane" nel riscalare le immagini...
RispondiEliminaGrazie Seblog per la risposta sul tutorial...ora però ho un altro problema, non mi installa l'applicazione ricompilata sul cell, eppure ho prima disinstallato la precedente versione come da tua guida...
RispondiEliminaho aggiunto una piccola nota per chi usa JDK versione 7, infatti cambia leggermente la sintassi per jarsigner (non l'ho testato personalmente, io ho ancora installata JDK6) se così funziona fatemelo sapere! :)
RispondiEliminaComplimenti per i tuoi tutorial e grazie.
RispondiEliminaStesso problema di Jonathan, le immagini nello schermo si ridimensionano spostandomi gli oggetti. Ho controllato il manifest, ma non ho trovato il parametro anydensity. Puoi darmi una mano?
ciao Siomato4, una riga sopra la parte
RispondiEliminaCome vedi li c'è il parametro anyDensity che va settato a False
è possibile che il manifest creato da AI non abbia questa riga, quindi la puoi aggiungere te (così facendo rendi anche compatibile l'app per device QVGA e HVGA)
Ciao SeBlog, in primo luogo grazie per i tuoi tutorial, senza i quali non sarei mai riuscire a pubblicare la mia prima applicazione sul market. Avrei tante domande da farti, ma per prima cosa ti invio il link della mia applicazione e se quando hai un po di tempo gli dai un'occhiata, mi farebbe piacere sapere cosa ne pensi.
RispondiEliminahttps://market.android.com/search?q=BowDemo&so=1&c=apps
Ti voglio per ora fare una sola domanda. In questa applicazione ho dovuto gestire dei timer che ho creato con lo strumento clock. Visto che sono diversi, ho associato al clock diverse procedure temporizzate. In alternativa non esiste una funzione Wait?
Grazie ancora.
Ciao Seblog.
RispondiEliminaGrazie ai tuoi tutorial ho pubblicato un apk che sta avendo un discreto successo (BowDemo e Bow Pro).
Vorrei inserire dei banner pubblicitari all'interno dell'applicazione gratuita, ma non riesco. Ho scaricato molti tutorial che utilizzano eclipse, ma il primo grosso problema e che non riesco ad aprire il mio APK-AppInventor scompattato con eclipse. Puoi darmi qualche consiglio? Ciao.
Ottima guida, molto descrittiva e precisa una vera manna dal cielo per chi si avvicina allo sviluppo di app per android.
RispondiEliminaIo però ho fatto un'app in versione lite e vorrei mettere anche una versione a pagamento...quale procedimento devo seguire?
MrFred il procedimento è identico, il file .apk da caricare non è diverso, sarà solo diversa la procedura di caricamento sul market in cui devi specificare il prezzo a cui vuoi vendere la tua app... :)
RispondiEliminaAllora io ho usato java 7 usando il vecchio comando : jarsigner –verbose –keystore .keystore \dist\.apk solo che quando la installo sul telefono dice APPLICAZIONE NON INSTALLATA se invece uso il nuovo comando che hai detto : jarsigner –verbose –keystore .keystore \dist\.apk -digestalg SHA1 -sigalg MD5withRSA
RispondiEliminadopo non mi fa fare lo zipalign dice comando non riconosciuto una cosa del genere. Aiutatemi sto impazzendo da settimane :(
Fra Development: strano che ti dia comando non riconosciuto per zipalign, se vuoi puoi mandarmi i messaggi d'errore alla mia mail.
RispondiEliminaMa la soluzione più semplice è installare Java 6 (non so che benefici porti Java 7 ma per ora non sento il bisogno di fare l'upgrade) :)
Grazie proverò installando java 6 poi ti faccio sapere :)
RispondiEliminaAllora ho cancellato tutto e ho installato Jre 6 e Jdk 6 solo che il blocks editor non si apriva allora ho scaricato Jre 7 e quindi si apriva solo che proseguendo quando devo firmare l'applicazione mi da questo errore: jarsigner error: java.lang.RuntimeException e poi dice impossibile trovare il file specificato :( datemi una mano devo assolutamente pubblicare questa applicazione!
RispondiEliminaFra Development: il blocks editor parte anche con JRE 6, molto strano
RispondiEliminapoi il tuo errore mi sembra sia semplicemente dovuto al fatto che non trova il file per applicarci la signature.
Ti consiglio di riguardare attentamente il video e seguire tutti i passaggi, un sacco di gente di questo blog ci è riuscita, magari sbagli anche un semplice comando, riguarda bene tutto :)
se hai ancora problemi fammi copia incolla di tutta la sessione dos e mandamela per mail, ciao!
Siomat04: Non è possibile caricare gli apk di AI in eclipse.
RispondiEliminaForse in futuro implementeranno questa possibilità ma per ora non c'è modo, mi dispiace.
Ciao ho seguito tutto il tutorial ed eseguito tutti i passaggi senza riceve errori, dopo aver "compresso" e "firmato" la mia app, ho provato a reinstallarla sul mio telefono ma ricevo il messaggio "applicazione non installata", dov'è il problema?
RispondiEliminaPoichè ancora non ho fatto l'iscrizione ad android developers è possibile che non riconosce la mia chiave?
grazie.
Ciao MrFred, hai provato prima a disinstallare la tua app che avevi installato con App Inventor (dal blocks editor), 99volte su 100 quello è il problema, la chiave usata da AI è diversa ovviamente dalla tua e quindi Android non permette un semplice update del file apk in quanto le chiavi sono diverse...se ancora hai problemi mandami il file di log (logcat) e vediamo insieme qual'è il problema
RispondiEliminaAvevi perfettamente ragione, dopo averla disinstallata, il problema si è risolto.
RispondiEliminaGrazie.
Ciao, ho java 7 e ho seguito alla lettera tutto ma quando scrivo "jarsigner –verbose –keystore ormet.keystore \dist\.apk ormet -digestalg SHA1 -sigalg MD5withRSA" mi scrive "jarsigner error: java.lang.RuntimeException : keystore load: c:\App_To_market\ormet.keystore ..riusciresti a darmi una mano?grazie e complimenti..6 il migliore
RispondiEliminaCiao, ho java 7 e ho seguito alla lettera tutto ma quando scrivo "jarsigner –verbose –keystore ormet.keystore \dist\.apk ormet -digestalg SHA1 -sigalg MD5withRSA" mi scrive "jarsigner error: java.lang.RuntimeException : keystore load: c:\App_To_market\ormet.keystore ..riusciresti ad aiutarmi?grazie mille e..6 il migliore
RispondiEliminaCiao Marco, se guardi il mio comando:
RispondiElimina"jarsigner –verbose –keystore .keystore \dist\.apk " e lo confronti col tuo, vedi che non hai messo il nome della tua app prima di \dist\ e anche dopo (con .apk alla fine)
Inoltre mi sembra che ti dia errore perchè non trova il keystore, dovresti riprovare a controllare bene il tutto e se ancora hai problemi mandami il copia incolla di tutta la sessione dos tramite email, grazie :)
No,non l'ho scritto qua,scusa..in realtà ho fatto tutto correttamente ma non trova il keystore..la stringa è "jarsigner –verbose –keystore ormet.keystore mingot\dist\mingot.apk ormet -digestalg SHA1 -sigalg MD5withRSA" ..
RispondiEliminaprova a copiare e/o verificare che il keystore sia nella stessa directory dove lanci il comando, oppure specifica il path completo per il keystore anche nella stringa del jarsigner (eg: c:\temp\ormet.keystore)
RispondiEliminasei un genio! grazie mille!!
RispondiEliminaIo lavoro con win xp e utlizzo java 7 ho avuto un po tutti i vostri problemi in queste procedure alla fine sono giunto a queste conclusioni:
RispondiElimina1) Prolema "applicazione non installata" se non si risolve disinstallando l'applicazione gia esistente conviene rigenerare l'apk perchè magari non firmato correttamente o altro, a me ha funzionato rigenerandolo.
2) Eseguo tutti i passaggi da dos richiandolo con il comando cmd , solo lo zipalign lo eseguo da dos ma con il comand command altrimenti non mi funziona.
Grazie a questi tutorial ho realizzato l'applicazione "Mamma bambino e gravidanza " che trovate sia free che a pagamento sul market . Le due versioni sono identiche al momento sperando che in quella free qualcuno faccia offerte libere , ma al momento niente anche se in molti l'hanno installata. Chiunque volesse visionarla e darmi suggerimenti sono ben graditi, la mia email enfandroid@gmail.com .
grazie mille!! ma un tutorial per gli screenshot c'è? :)
RispondiEliminaCiao STKey, non credo ce ne sia bisogno,è veramente semplice, nella cartella D:\android-sdk-windows\tools (oppure C:\ dipende dove hai installato l'sdk) cerchi il file ddms.bat
RispondiEliminaeseguito quello scegli il menù "device" poi "screen capture", se hai bisogno d'altro mandami una mail
Ciao Seblog, sai se è possibile implementare una RatingBar negli applicativi sviluppati con app invento ?
RispondiEliminaCiao Enzo, non c'è direttamente l'elemento RatingBar, certo lo si può creare a mano con delle immagini o dei pulsanti, ma il RatingBar nativo di android non esiste per ora in AI.
RispondiEliminaSeblog qual'è la tua email?penso di essere l'unico a non aver ancora risolto i suoi problemi..
RispondiEliminaSeblogapps@gmail.com
RispondiEliminaCiao sto cercando di pubblicare la mia prima app, riesco a caricarla sul market nei dispositi disponibli c'è scritto:
RispondiElimina"Questa applicazione è disponibile su più di 0 dispositivi."
L'app è un tema per go launcher ex, quindi non usa nessuna funzione particolare e l'ho provata su 4 telefoni diversi senza nessun problema.
Cosa può essere?
MrFred, sembra sia un problema abbastanza comune di questi tempi http://www.google.com/search?q=this+application+is+available+to+over+0+devices&ie=utf-8&oe=utf-8&aq=t
RispondiEliminaaspetta un paio di gg per vedere se la cosa si risolve da se, altrimenti devi vedere nel manifest cosa hai dichiarato, specialmente per il supporto ai differenti tipi di risoluzione, puoi aggiungere questo nel manifest:
fammi sapere! ciao!
< supports-screens android:resizeable="true" android:smallScreens="true"
RispondiEliminaandroid:normalScreens="true"
android:largeScreens="true"
android:xlargeScreens="true"
android:anyDensity="false"/ >
Ciao Seblog,
RispondiEliminaPrima cosa grazie per l'ottimo tutorial.
L'ho seguito passo a passo, riga a riga, pixel a pixel dall'installazione del java fino al zipalign...tutto perfetto...PERO'
Quando ho provato a installare la app_market.apk creata sul mio GalaxyII, "applicazione non installata"....ahhhhh!
Dunque se lancio la apk generata da appinventor, nessun problema me la installa e funziona. Se lancio la apk-signata nulla...
Ho provato anche a installarla su un galaxy S che non aveva mai visto prima la mia app in svilupppo....nulla "applicazione non installata"..
Dove sbaglio visto che tutti gli step sono andati a buon fine come da guida?
Ultima cosa, è poco chiaro il tuo passaggio relativo alla creazione della key.keystore DOVE la si utilizza nel market->profilo->chiave pubblica...perchè io registrandomi al market e pagando i 25$ NON mi è mai stata richiesto l'inserimento di alcuna key.keystore come tu dici nella guida, ma bensi sotto "chiave pubblica" mi torvo una chiave RSA base 64 creata da google al momento della registrazione credo.....mi chiarisci questo aspetto?
Grazie, spero di non aver chiesto troppo.
Silvio - Torino
Ciao Silvio, può essere che dalla pubblicazione di questo video ad oggi sia cambiato qualcosa, specialmente per la chiave da usare nel market.
RispondiEliminaAd ogni modo la chiave deve essere sempre la stessa per la stessa app, quindi se hai 10 app diverse volendo puoi anche usare 10 chiavi diverse.
Quando mi ero registrato mi pare di ricordare mi avesse chiesto subito la chiave, forse oggi la chiede solo quando si carica l'applicazione.
Per quel che riguarda la tua app, è molto strano l'errore (di solito lo da se non si disinstalla l'applicazione precedente), puoi procedere in 2 modi, lanci adb logcat sul tuo pc e vedi cosa dice nei log.
Oppure provi ad usare Marketizer, di cui ho appena pubblicato un tutorial, per convertire la tua app e vedere se così funziona.
Fammi sapere, ciao!
Ok mi è chiaro il discorso chiave, evidentemente la chiederà al momento del nuovo caricamento di una nuova app. Dunque la chiave presnte RSA 64 non ha alcuncè a vedere con la .keystore che andremo a generare per l'app.
RispondiEliminaGuarda ci sto impazzendo dietro da due giorni...non capisco dove stia il problema, mi spieghi nel dettaglio la funzione adb logcat che non conosco minimamente?
Eventualmente posso mandarti l'apk signata via mail, così molto gentilmente, potresi verificare se a te va o meno. a me su GSII GSI e IDEOS non c'è verso...
Grazie moltissime!
Per il Logcat, devi aprire una finestra dos sul tuo pc con il cellulare collegato, poi dai "adb logcat" e a schermo inizia a stamparti i log di tutto quello che fa il tuo tel. Mandami pure l'apk per email e vedo che dice sul mio DHD. :)
RispondiEliminaPer TUTTI :
RispondiEliminasono impazzito per 2 giorni perchè quando davo il comando "apktool d -s ..." per decomprimere l'apk, mi compariva sempre il messaggio :
"destination direcoty already exist"
ma nella cartella non c'era niente se non il mio apk.
1) Disinstallato java 7, installato java 6.
2) Disistallato tutto e reinstallato tutto
3) visto + volte i tutorial
Stavo per chiedere aiuto quando ho letto il post di Enzo (grazie veramente per il suggerimento) che faceva alcune operazione con il comando "cmd", altre con "command".
Ho utilizzato "command" e funziona !!!
Grazie a te per avermlo sottolineato....in realtà non sono stato molto preciso nel descrivere i passaggi. Però posso dire che sia con xp che con vista alcuni comandi non vanno se si eseguono da start-esegui-cmd bisogna eseguirli da start-esegui-command (in alcuni casi si avrà difficoltà con i caratteri tipo il"." la "\" e altri) ma in fondo siamo o no smanettoni ?
RispondiEliminaBene ragazzi,son contento che vi aiutate a vicenda!sinceramente non ho mai usato command.com e tutto va alla perfezione. Chissà da quali altri fattori dipende, cmq ben per voi che avete risolto! grazie!:)
RispondiEliminaStesso problema di molti di voi. Non riesco ad installare la mia applicazione firmata e allineata anche se ho rimosso completamente la versione debug dal mio device. Io ho sviluppato con Netbeans e in fase di debug non ho avuto problemi. L'applicazione firmata con le chiavi di debug si installa correttamente. Non appena faccio la release non riesco a installarla.
RispondiEliminaciao e grazie per aver condiviso le tue conoscenze. ho seguito alcuni video tutorial e sono un beta tester app inventor. vorrei farti una domanda per la quale sto girando in rete per ora senza risposta. ho visto che con l'apktool è possibile ottenere un codice simile al sorgente ma che in realtà mi pare sia scritto in un linguaggio chiamato smali. quello che vorrei poter fare è modificare il codice sorgente dell'applicazione creata con app inventor per poter aggiungere delle funzionalità non ancora disponibili per l'app inventor. molto più concretamente devo accedere allo stato del telefono dell'utente per poter ottenere il numero di telefono della sim (questo è possibile in java leggendo il phone.state ma in app inventor non è ancora disponibile un blocco del genere). ovviamente il mio problema non è modificare il manifest ma il codice: è possibile? spero possa essere utile anche a qualche altro utente
RispondiEliminaCiao Marco, la tua richiesta l'han fatta veramente in tanti utilizzatori di App Inventor, la possibilità di creare uno "scheletro" dell'app in App Inventor e poi aggiungerci funzionalità tramite l'sdk classico.
EliminaPurtroppo non è possibile al momento, è una feature che è stata richiesta al MIT ma è solo nei loro progetti futuri.
Un'altra interessante soluzione è quella di esplorare il lavoro di alcuni utenti che han creato "App Inventor Java Bridge" in pratica un linguaggio "simil" app inventor ma che viene scritto e compilato con Eclipse.
E' un pò più complicato di AI ma ha come enorme vantaggio il fatto di poter utilizzare tutte le librerie e gli strumenti dell'SDK tradizionale, prova a darci un occhio!
ciao e grazie per il suggerimento: proverò a darci un occhio. da come scrivi sembra uno strumento potenzialmente più completo dell'app inventor. ne approfitto per farti un 'altra domanda, legata stavolta alle licenze. ho visto che non è possibile pubblicare sul market programmi costruiti con app inventor (a meno di seguire la tua utile guida sulla signature); mi chiedo se è possibile in ogni caso distribuire codice generato con app inventor da un sito che non sia il market. voglio dire: android mi risulta sia open source, app inventor genera un apk che non credo sia distinguibile da un apk generato da eclipse (correggimi se sbaglio) quindi: perchè pagare 25 dollari solo per distribuire un'applicazione su un market dove la concorrenza è altissima?! (quante mila applicazioni ci sono!?!?!?!?). è possibile pubblicare apk "self signed" o "unsigned" direttamente sul proprio sito? ho sentito dire che alcuni dispositivi non installano software unsigned a meno che l'utente non accetti l'installazione di applicazioni con firma non riconosciuta. capisco che 25 dollari sono un'inezia ma come si dice "meglio a me che a loro" :) p.s. scusa se sono stato prolisso
RispondiEliminaCerto che lo puoi fare! quello che insegno qui è come sistemare l'apk affinchè sia conforme alle norme di Android per quanto riguarda il caricamento delle app sul loro market.
EliminaCi sono molti altri market alternativi e gratuiti anche per chi pubblica tipo SlideMe che non richiedono gli stessi passaggi (anche se credo che almeno l'androidminversion e qualcos'altro nel manifest vada sistemato, cosìcomme la signature)
Per installare da questi market ovviamente l'utente deve aver scelto nelle impostazioni "origini sconosciute" ma il 99% degli utenti ha già selezionato questa opzione.
Come vedi ci son molti modi per distribuire un app, ovvio che fuori dell'android market hai meno concorrenza ma anche molta meno visibilità...
grazie 1000. darò uno sguardo ai vari market liberi ed alle licenze disponibili. intanto mi è venuto in mente un metodo per integrare qualche funzionalità ad app inventor. sperando possa essere utile a qualcuno la spiego nel caso di un'applicazione che vuole leggere il numero telefonico della sim. è possibile scrivere il codice in una prima applicazione in eclipse, quindi con un activity starter chiamare la seconda applicazione app inventor e passarle il numero telefonico ottenuto dalla prima. mi pare ci sia un blocco in app inventor, sotto il menù text, che permette di leggere i parametri passati da un'applicazione esterna (può essere il suggerimento per un nuovo tutorial ;) ). ovviamente lo scotto da pagare è il fatto che l'utente deve installare 2 applicazioni invece che una sola (la prima che prende il numero di telefono, la seconda che effettua le operazioni) e che il programmatore deve gestire eventuali errori d'accesso alla seconda (se non vi è un numero passato in ingresso forzare la chiusura della seconda applicazione, chiudere la prima applicazione quando avviene il passaggio dei parametri e così via). ho realizzato qualcosa del genere per ottenere un programma che si avviasse da solo dopo il boot del sistema e funziona (in questo caso non ho passato parametri però). ciao e grazie ancora per la pazienza
RispondiEliminaSe non erro lo si fa con l'activitystarter che può leggere anche un parametro di ritorno, come dici te però dover essere legati a due applicazioni non è proprio il massimo dalla vita. App Inventor Java Bridge colma questo gap ma richiede ovviamente più studio e più conoscenze di Java.
EliminaStiamo a vedere dopo che il MIT renderà pubblico il servizio quali feature aggiungeranno, io credo che diventando Open Source gli sviluppatori si scateneranno e vedremo molti nuovi blocchi :)
ciao. qualche suggerimento agli utenti mac per la signature delle applicazioni android, alla luce di alcune difficoltà che ho incontrato, sperando che possano essere utili. il procedimento è analogo a quello perfettamente descritto nei tutorial, quello che cambia è la sintassi a terminale e la gestione dei permessi. come primo punto io ho dovuto installare l'apktool che in mac va messo nella directory root. la directory root non è visibile in una "normale" utenza ma occorre accedervi tramite l'utenza root (per sapere come fare scrivere "abilitare utente root" nella casella aiuto del finder e seguire le istruzioni). non mi dilungo sull'istallazione dell'apktool. una volta installato è possibile utilizzarlo nell'utenza "normale" dove si possono fare le operazioni per decompilare, modificare il manifest e ricompilare il progetto. una cosa a cui stare attenti è: se si ricompila per qualche motivo il progetto con l'utenza root (apktool b nomefile) ma si cerca di firmarlo quando si è connessi con un'utenza "normale", il comando jarsign (stessa sintassi usata nel tutorial) produrrà un errore (unable to create jar file). questo errore è dovuto ai permessi: per risolverlo è sufficiente riloggarsi con l'utenza root e procedere alla firma con jarsign, con la stessa sintassi vista nel tutorial. infine per l'uso di zipalign è necessario specificare il percorso completo in cui si trova l'applicazione. nel mio caso ho usato la riga seguente: /Applications/android-sdk-macosx/tools/zipalign -f -v 4 "/Users/NomeMio Computer/Desktop/NomeFile.apk" "/Users/NomeMio Computer/Desktop/NomeFile_market.apk". le ultime 2 stringhe fra virgolette sono il percorso completo del file da allineare e di quello che si vuole pubblicare sul market mentre la prima è il percorso completo del file zipalign
RispondiEliminaGrazie mille Marco, hai dato dei preziosi suggerimenti ai nostri amici che utilizzano il Mac! Bravo!
Eliminaciao, ho una domanda che forse esula un po' dal mondo app inventor. vorrei costruire un semplice programma in grado di far partire le applicazioni scaricate da un qualsiasi sito direttamente per l'installazione sul telefono (in pratica vorrei ricreare la stessa funzionalità del market su un mio sito): puoi darmi qualche suggerimento su dove e come cominciare? ho messo un apk su un sito ma ora , perchè qualcuno riesca ad installarlo, è necessario che lo scarichi prima sulla sd card, poi che lo cerchi con un file manager, quindi che esegua l'installazione: vorrei che i primi 2 passaggi fossero automatici. spero di essere riuscito a spiegarmi:intanto proseguo le mie ricerche in rete... grazie :)
RispondiEliminaCiao, purtroppo in questo non ti posso aiutare,penso che con AI non si possa fare, dovresti ricorrere agli strumenti di sviluppo android classici, quindi eclipse+Android SDK.
Eliminaho provato sul google play a rimettere lo stesso apk leggermente modificato al posto di quello messo ieri, non me lo carica dicendo:
RispondiEliminaIl codice di versione del nuovo APK (3) esiste già.
Che devo fare?
Grazieee
devi cambiare il version code del tuo file prima di pubblicarlo..
RispondiEliminaforse risolto, ho cambiato il 3 con il 4 nel manifest, ho fatto bene?
RispondiEliminasi, se no il market crede che tu stia mettendo sempre lo stesso file..
RispondiEliminaaltro quesito, tempo medio di pubblicazione? messe 3 app, 2 pubblicate quasi subito, l'altra sono trascorse 12 ore, verrà accettata? In caso contrario riceveró comunicazione?
RispondiEliminaGrazieee
Di solito max 48h poi non mi risulta possano rifiutarle, al massimo vengono levate in seguito se violano il regolamento
Eliminaaccettata dopo 24 ore, guarda caso l'app in questione è abilitatata a fare telefonate, sarà per questo?
RispondiEliminaCiao Sebastiano, ho seguito alla lettera il tuo tutorial ed è andato tutto liscio alla perfezione senza nessun intoppo ,ho pubblicato l'applicazione dopo 5 ore era sul play ,ma non appena scarico l'app sul dispositivo non me la installa dicendo che l'applicazione non è firmata correttamente non riesco a capire quale possa essere il problema.
RispondiEliminaGrazie anticipatamente
hai disinstallato l'applicazione che avevi installato durante lo sviluppo e i test?
Eliminaperchè quella scaricata con "download to connected phone" da design editor ovviamente ha un'altra firma che va in conflitto con la firma che mettiamo noi per il play store,
disinstalla la tua app e poi prova a reinstallarla dal market e fammi sapere, ciao
ciao seba, certo ho disinstallato l'altra ed ho provato anche ad installarla su dispositivi che non avevano mai avuto quella app lo stesso messaggio esce anche ad altri amici che l'hanno scaricata, ma solo asesso leggo in fondo al tutorial la cosa del java 6 e java 7 io ho usato il procedimento java 6 descritto nel tutorial mentre io ho la 7
Eliminase usi Java7 prova con il nuovo comando per il jarsigner, il tuo sembra appunto un problema di firma non valida, prova e fammi sapere, ciao
Elimina