• DevTutorial
  • Libro
  • Guide Mac
  • Giovedi Contest

DevDifferent #1 – Open Toolchain: panoramica e prima applicazione

The AuthorAndrea Busi The Time5 novembre 2008 Comments8
separator

Eccoci alla prima guida del DevDifferent!
In questo primo appuntamento vedremo cosa ci serve, come utilizzare Open Toolchain per compilare ed eseguire una semplice applicazione (il classico “HelloWorld”) direttamente sul nostro iPhone / iPod Touch, senza utilizzare l’SDK ufficiale della Apple, e quindi senza necessariamente avere un Mac!

Buona lettura, e spero sia di vostro gradimento!

Requisiti fondamentali:

  • WinSCP, per chi non lo conoscesse WinSCP è un programma per Windows che permette di instaurare connessioni FTP, SFTP con un server remoto. Nel nostro caso ci permetterà di collegarci via SSH con il nostro iPhone / iPod Touch. Potete scaricare WinSCP a questo link.
  • Un iPhone / iPod Touch jailbreak, con installato Cydia.
  • Gli headers dell’SDK 2.0. Potete ottenere i file dell’SDK che ci servono in due maniere: scaricando l’intero tool di sviluppo della Apple, ed estraendo poi i file headers, oppure semplicemente scaricando i file necessari da MegaUpload.
  • Aver installato almeno un’applicazione dall’AppStore! Va bene una qualsiasi, anche la più brutta applicazione free che esista, ma è necessario averne installata almeno una, altrimenti il nostro iPhone non sarà in grado di eseguire i nostri programmi.

Siamo pronti per iniziare!

1. Installiamo i componenti necessari sul nostro iPhone

Iniziamo con l’installare i programmi che ci serviranni. Apriamo Cydia e installiamo i seguenti package:

  • OpenSSH (che la maggior parte di voi avrà già installato)
  • BossPrefs
  • GCC – GNU C Compiler
  • Make
  • ldid – Link Identity Editor

Se non sapete in che categoria trovare questi pacchetti vi basterà usare la funzione Search di Cydia. Fatto? Benissimo! Ora possiamo provare a collegarci via SSH al nostro iPhone.

2. Collegarsi in SSH tramite WinSCP

Ora abbiamo i componenti necessari, vediamo come collegarsi tramite SSH al nostro iPhone.
Nota: per potersi collegare via SSH dobbiamo essere connessi sia con il computer che con l’iPhone alla stessa rete Wireless.

Apriamo BossPrefs, dovremmo avere una schermata simile a questa (con qualche opzione in più eventualmente):

Assicuriamoci che l’opzione SSH sia abilitata (se non lo è abilitiamola con un semplice tap).

Ora siamo pronti per usare WinSCP. Dopo aver scaricato ed installato il programma lo aprimo, avremo una schermata come questa:

Settate i campi nella seguente maniera (e come si può vedere dall’immagine):

  • Nome server: il proprio indirizzo dell’iPhone,che possiamo leggere andando (ovviamente nell’iPhone) in “Impostazioni” -> “WiFi” e cliccando sul bottone blu a fianco della rete a cui siamo connessi.
  • Nome utente: root
  • Password: alpine
  • Protocollo: SFTP

Inseriti tutti i dati possiamo fare clic su “Accedi”.
Nota: la prima volta sarà un’operazione un po’ lunga, magari non si instaurerà la connessione al primo colpo. Dovete solo riprovare, e fare clic su “Yes” alla schermata che vi apparirà.

Ci siamo finalmente connessi tramite SSH al nostro iPhone!

3. Trasferire gli headers dell’SDK su iPhone

Ora che siamo entrati in SSH nel nostro iPhone, dobbiamo copiare gli headers che abbiamo scaricato in precedenza. In WinSCP navighiamo fino alla cartella “/var“, in cui dobbiamo copiare il file “sdk-2.0-headers.tar.gz” (oppure con un nome diverso se lo avete rinominato).
Ora dobbiamo utilizzare il terminale, che è implementato da WinSCP. Clicchiamo sull’iconcina nera presente nella barra del menù di WinSCP, come mostrato in questa immagine:

Dopo aver cliccato sul pulsante si aprirà un pop-up, su cui dovete cliccare “Ok”. Avremo una finestra del terminale come questa:

Ora digitiamo i seguenti comandi (uno alla volta):

cd /var
tar xvzf sdk-2.0-headers.tar.gz
mv include-2.0-sdk-ready-for-iphone includ
e

Avremo così estratto il contenuto del package nella cartella include.
Nota: avremmo potuto fare questa operazione in maniera diversa, senza usare comandi, semplicemente usando un programma per decomprimere l’archivio (come WinRar, 7zip, etc)e poi copiarlo tramite WinSCP. Ho preferito questo metodo per aiutare anche gli utenti Linux, che avranno un rapporto più diretto con il terminale.

4. Compiliamo ed eseguiamo la nostra prima applicazione!

Ora siamo pronti per compilare la nostra prima applicazione! Scarichiamo questo file, che contine una semplice applicazione per un classico Hello World.

Usando WinSCP digitiamo nel terminale (come abbiamo fatto nel punto precedente):

mkdir /var/mobile/src

Copiamo ora il file che abbiamo appena scaricato nell directory appena creata, ovvero il “/var/mobile/src”. Ora dobbiamo scompattarlo, eseguendo questi comandi:

cd /var/mobile/src
tar xvf iphone-helloworld-1.tar.gz

Nota: ripeto quello cho ho già detto, non è necessario scompattare i file via terminale come abbiamo fatto qui. Si potrebbe anche scompattare l’archivio sul nostro PC e poi trasferire direttamente la cartella decompressa. È la stessa cosa.
Ora dobbiamo entrare nella cartella che è appena stata creata e compilare il nostro sorgente! Per fare ciò digitiamo i seguenti comandi (sempre restando nel path in cui eravamo prima):

cd HelloWorld
make
make install

Fatto! Avete compilato il codice sorgente direttamente su iPhone! Ora vedrete la vostra SpringBoard riavviarsi e trovetere sul desktop l’icona con la vostra nuova appliacazione.
Nota per il firmware 2.1: chi avesse il firmware 2.1 non vedrà nessuna nuova icona, bisogna eseguire un respring della SpringBoard tramite l’applicazione “Respring” (che trovate in Cydia”), oppure digitate, sempre da terminale, il seguente codice (richiede BossPrefs installato):

/Applications/BossPrefs.app/Respring

Eccovi due screen del risultato finale (notate l’icona dell’applicazione in basso a destra):

Questa è solo una semplice guida, per farvi capire come si possa sviluppare applicazioni anche senza avere un Mac.

La guida originale la è: “Developing for iphone using the open toolchain and SDK 2.0 headers – antirez weblog“, tutti i meriti e il sorgente dell’applicazione sono del rispettivo autore. A “The Bubi Devs” vanno solo i meriti dell’adattamento in italiano della guida.

separator
Condividi su FriendFeed
separator
Comments
8 Comments
separator
  1. ibrigo

    funziona anche con il firmware 3.0?

    RispondiRispondi
  2. Andrea Busi

    @ibrigo: il procedimento generale si, però andrebbero scaricare le nuove toolchain.. se le trovi in rete me lo fai sapere? ;-)

    RispondiRispondi
  3. matteo

    ciao io con 3gs sto provando ,ho scaricato tutto tranne gcc gnu c compiler che nn l iphone non me lo fa installare ,come mai?

    RispondiRispondi
  4. davide

    Ciao,con questo programma è possibile creare app e poi pubblicarle su appstore o non e possibile?

    RispondiRispondi
  5. Andrea Busi

    @davide: ciao, sinceramente non ti consiglio questo metodo per pubblicare applicazioni in AppStore.. ho avuto alcuni problemi nell’approvazione creando applicazioni da XCode (robe di certificati e varie), non oso immaginare cosa possa succedere usando un toolkit come questo..
    Utilizza XCode, è l’unica via sicura per non avere troppi problemi..

    RispondiRispondi
  6. lola

    ciao erroneamente ho cancellato tutto dal mio ipone esce solo sullo schermo chiamata di emergenza,e in cima un lucchetto..nn compare altro ne menu ne niente cosa posso fare cosa puo essere successo…grazie lola

    RispondiRispondi
  7. Andrea Busi

    @lola: penso che l’unica soluzione sia ripristinare da iTunes..

    RispondiRispondi
separator
A chi è piaciuto questo articolo?
  1. The Bubi Devs » DevDifferent #2 - Struttura del progetto e funzionamento di “make”
separator

Scrivi la tua!

© 2012 Bubi Devs. Powered by WordPress Designed by miniMAC
w3c Made in Mac