Cerca con Google

Translate

1 giugno 2011

Tutorial 10 (Parte 2) - Come pubblicare le applicazioni App Inventor in Android Market - Guida aggiornata


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"


file modificato:
<manifest android:versionCode="1" android:versionName="1.00" android:installLocation="auto" package="appinventor.ai_seblogapps.TriumphSound"

(ovviamente TriumphSound è il nome della app d'esempio usato nel video, il vostro nome sarà quindi diverso)

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">

Ricreo l’apk con all'interno Androidmanifest.xml appena modificato:

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

72 commenti:

  1. 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".

    Sa dirmi quale sia il problema?

    Grazie

    RispondiElimina
  2. Quando eseguo il comando jarsigner.exe –verbose –keystore [nome].keystore [nome app].apk [nome alians]

    Mi 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???

    RispondiElimina
  3. 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
  4. è 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.
    Prova a rimuovere l'app che avevi già sul tuo smartphone e poi reinstalla .apk pronto per il market...:)

    RispondiElimina
  5. per channellone88, mi pare che se questo è l'errore

    Mi 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

    RispondiElimina
  6. 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 :)

    RispondiElimina
  7. Salve, 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

    RispondiElimina
  8. Ciao Seblog, non riesco a trovare il tutorial dove spieghi come creare la firma...riesci per favore ad aiutarmi? grazie!

    RispondiElimina
  9. Ciao 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 :)

    RispondiElimina
  10. x 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...

    RispondiElimina
  11. Grazie 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...

    RispondiElimina
  12. ho 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! :)

    RispondiElimina
  13. Complimenti per i tuoi tutorial e grazie.
    Stesso 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?

    RispondiElimina
  14. ciao Siomato4, una riga sopra la parte

    Come 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)

    RispondiElimina
  15. 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.
    https://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.

    RispondiElimina
  16. Ciao Seblog.
    Grazie 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.

    RispondiElimina
  17. Ottima guida, molto descrittiva e precisa una vera manna dal cielo per chi si avvicina allo sviluppo di app per android.
    Io però ho fatto un'app in versione lite e vorrei mettere anche una versione a pagamento...quale procedimento devo seguire?

    RispondiElimina
  18. 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... :)

    RispondiElimina
  19. Allora 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
    dopo non mi fa fare lo zipalign dice comando non riconosciuto una cosa del genere. Aiutatemi sto impazzendo da settimane :(

    RispondiElimina
  20. Fra Development: strano che ti dia comando non riconosciuto per zipalign, se vuoi puoi mandarmi i messaggi d'errore alla mia mail.
    Ma 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) :)

    RispondiElimina
  21. Grazie proverò installando java 6 poi ti faccio sapere :)

    RispondiElimina
  22. Allora 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!

    RispondiElimina
  23. Fra Development: il blocks editor parte anche con JRE 6, molto strano
    poi 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!

    RispondiElimina
  24. Siomat04: Non è possibile caricare gli apk di AI in eclipse.
    Forse in futuro implementeranno questa possibilità ma per ora non c'è modo, mi dispiace.

    RispondiElimina
  25. 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?
    Poichè ancora non ho fatto l'iscrizione ad android developers è possibile che non riconosce la mia chiave?
    grazie.

    RispondiElimina
  26. 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

    RispondiElimina
  27. Avevi perfettamente ragione, dopo averla disinstallata, il problema si è risolto.
    Grazie.

    RispondiElimina
  28. 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

    RispondiElimina
  29. 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 ad aiutarmi?grazie mille e..6 il migliore

    RispondiElimina
  30. Ciao Marco, se guardi il mio comando:
    "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 :)

    RispondiElimina
  31. 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" ..

    RispondiElimina
  32. prova 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)

    RispondiElimina
  33. Io 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:
    1) 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 .

    RispondiElimina
  34. grazie mille!! ma un tutorial per gli screenshot c'è? :)

    RispondiElimina
  35. Ciao 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
    eseguito quello scegli il menù "device" poi "screen capture", se hai bisogno d'altro mandami una mail

    RispondiElimina
  36. Ciao Seblog, sai se è possibile implementare una RatingBar negli applicativi sviluppati con app invento ?

    RispondiElimina
  37. Ciao 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.

    RispondiElimina
  38. Seblog qual'è la tua email?penso di essere l'unico a non aver ancora risolto i suoi problemi..

    RispondiElimina
  39. Ciao sto cercando di pubblicare la mia prima app, riesco a caricarla sul market nei dispositi disponibli c'è scritto:
    "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?

    RispondiElimina
  40. 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
    aspetta 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!

    RispondiElimina
  41. < supports-screens android:resizeable="true" android:smallScreens="true"
    android:normalScreens="true"
    android:largeScreens="true"
    android:xlargeScreens="true"
    android:anyDensity="false"/ >

    RispondiElimina
  42. Ciao Seblog,
    Prima 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

    RispondiElimina
  43. Ciao Silvio, può essere che dalla pubblicazione di questo video ad oggi sia cambiato qualcosa, specialmente per la chiave da usare nel market.
    Ad 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!

    RispondiElimina
  44. 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.

    Guarda 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!

    RispondiElimina
  45. 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. :)

    RispondiElimina
  46. Per TUTTI :
    sono 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 !!!

    RispondiElimina
  47. 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 ?

    RispondiElimina
  48. Bene 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!:)

    RispondiElimina
  49. Stesso 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.

    RispondiElimina
  50. ciao 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

    RispondiElimina
    Risposte
    1. Ciao 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.
      Purtroppo 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!

      Elimina
  51. 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

    RispondiElimina
    Risposte
    1. Certo 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.
      Ci 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à...

      Elimina
  52. 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

    RispondiElimina
    Risposte
    1. Se 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.
      Stiamo 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 :)

      Elimina
  53. 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

    RispondiElimina
    Risposte
    1. Grazie mille Marco, hai dato dei preziosi suggerimenti ai nostri amici che utilizzano il Mac! Bravo!

      Elimina
  54. ciao, 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 :)

    RispondiElimina
    Risposte
    1. Ciao, 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.

      Elimina
  55. ho provato sul google play a rimettere lo stesso apk leggermente modificato al posto di quello messo ieri, non me lo carica dicendo:
    Il codice di versione del nuovo APK (3) esiste già.
    Che devo fare?
    Grazieee

    RispondiElimina
  56. devi cambiare il version code del tuo file prima di pubblicarlo..

    RispondiElimina
  57. forse risolto, ho cambiato il 3 con il 4 nel manifest, ho fatto bene?

    RispondiElimina
  58. si, se no il market crede che tu stia mettendo sempre lo stesso file..

    RispondiElimina
  59. altro 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?
    Grazieee

    RispondiElimina
    Risposte
    1. Di solito max 48h poi non mi risulta possano rifiutarle, al massimo vengono levate in seguito se violano il regolamento

      Elimina
  60. accettata dopo 24 ore, guarda caso l'app in questione è abilitatata a fare telefonate, sarà per questo?

    RispondiElimina
  61. Ciao 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.
    Grazie anticipatamente

    RispondiElimina
    Risposte
    1. hai disinstallato l'applicazione che avevi installato durante lo sviluppo e i test?
      perchè 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

      Elimina
    2. 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

      Elimina
    3. se 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