{"id":5197,"date":"2010-11-30T15:53:45","date_gmt":"2010-11-30T14:53:45","guid":{"rendered":"http:\/\/www.devapp.it\/wordpress\/?p=5197"},"modified":"2010-11-30T15:54:42","modified_gmt":"2010-11-30T14:54:42","slug":"xcode-e-svn-prendiamo-controllo-dei-nostri-progetti","status":"publish","type":"post","link":"https:\/\/www.devapp.it\/wordpress\/xcode-e-svn-prendiamo-controllo-dei-nostri-progetti\/","title":{"rendered":"XCode e SVN: Prendiamo controllo dei nostri progetti"},"content":{"rendered":"<p><a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-00.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-00.jpg\" alt=\"XCode-SVN-00\" title=\"XCode-SVN-00\" width=\"200\" height=\"173\" class=\"alignleft size-full wp-image-5212\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-00.jpg 200w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-00-150x129.jpg 150w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a> Forse non lo sapevate, ma ogni Apple Macintosh che comprate con Snow Leopard, ha in dotazione un potentissimo sistema di gestione revisione per i files e progetti che scrivete.<br \/>\nPerch\u00e8 \u00e8 importante adottare un sistema di revisione per i propri files\/progetti? Innanzitutto XCode \u00e8 pronto per utilizzare appieno le caratteristiche dei sistemi di revisione multipli ed, inoltre, poter avere capillarit\u00e0 su ogni singolo file e relativa subversione all&#8217;interno del progetto, potrebbe aiutare (e di molto) lo sviluppo in team e la correzione di errori. Questa piccola guida, vuole essere un prontuario facile per la configurazione di caratteristiche e programmi gi\u00e0 presenti, al momento in cui scrivo (10.6.5+), su MacOS X.<!--more--><\/p>\n<h4>1. Configurazione del repository<\/h4>\n<p>Prima di tutto, bisogna configurare SVN. SVN, alias Subversion, \u00e8 un potente sistema di revisione multipla per progetti e\/o files non necessariamente legati ad XCode, anche se noi, oggi, vedremo proprio questo aspetto. Per maggiori dettagli, vi invito a visionare <a href=\"http:\/\/www.google.it\/search?rls=en&#038;q=svn+tutorial\" target=\"_blank2\">questo link<\/a>.<\/p>\n<p>Per poter creare un Repository di revisioni, \u00e8 necessario utilizzare il tool da linea di comando <strong>svnadmin<\/strong>. Niente di pi\u00f9 semplice:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nsvnadmin create \/svnrepos\r\n<\/pre>\n<p>Il comando sopra CREA una cartella per i nostri repositories a partire dalla root del nostro disco. In automatico viene creato un file di configurazione che dovr\u00e0 essere modificato secondo le nostre esigenze. In particolare, ritengo sia importante impostare almeno i seguenti parametri:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nanon-access = none\r\nauth-access = write\r\n<\/pre>\n<p>Il primo parametro indica l&#8217;impossibilit\u00e0 senza un login valido di accedere al nostro repository. La seconda opzione, ci permette di specificare il permesso di scrittura per gli autenti autorizzati.<\/p>\n<p>A questo punto, spostiamoci nella cartella \/Library\/LaunchDaemons ed aggiungiamo un file per rendere il nostro nuovo servizio sempre disponibile all&#8217;avvio del nostro computer:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\ncd \/Library\/LaunchDaemons\r\nvim org.tigris.subversion.plist\r\n<\/pre>\n<p>Ecco una copia del mio file di configurazione:<\/p>\n<pre lang=\"xml\" line=\"1\" escaped=\"true\">\r\n<?xml version=\"1.0\" encoding=\"UTF-8\"?>\r\n<!DOCTYPE plist PUBLIC \"-\/\/Apple Computer\/\/DTD PLIST 1.0\/\/EN\" \"http:\/\/www.apple.com\/DTDs\/PropertyList-1.0.dtd\">\r\n<plist version=\"1.0\">\r\n<dict>\r\n<key>Label<\/key>\r\n<string>org.tigris.Subversion<\/string>\r\n<key>ProgramArguments<\/key>\r\n<array>\r\n<string>\/usr\/bin\/svnserve<\/string>\r\n<string>--daemon<\/string>\r\n<string>--root<\/string>\r\n<string>\/svnrepos<\/string>\r\n<\/array>\r\n<key>RunAtLoad<\/key>\r\n<true\/>\r\n<key>Disabled<\/key>\r\n<false\/>\r\n<key>StandardErrorPath<\/key>\r\n<string>\/dev\/null<\/string>\r\n<key>UserName<\/key>\r\n<string>root<\/string>\r\n<\/dict>\r\n<\/plist>\r\n<\/pre>\n<p>Proviamo ad avviare il nostro servizio:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nlaunchctl load org.subversion.plist\r\n<\/pre>\n<p>se tutto, \u00e8 andato correttamente, digitando:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nps aux | grep svnserve\r\n<\/pre>\n<p>Otterremo qualcosa di questo tipo:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nroot \u2026 \u2026 \u2026 \u2026 \/usr\/bin\/svnserve --daemon --root \/svnrepos\r\n<\/pre>\n<p>Questo significa che il nostro servizio di repository \u00e8 pronto per essere utilizzato. Complimenti!<\/p>\n<h4>2. Il client SVN ed i files da non sincronizzare<\/h4>\n<p>A questo punto \u00e8 necessario effettuare una modifica alla modalit\u00e0 di sincronizzazione dei repositirory. Per default, infatti, il sistema sincronizza TUTTI i files. Questo, purtroppo, non \u00e8 molto funzionale ed ottimale per i progetti di XCode.<br \/>\nAlcuni files e cartelle, infatti, non dovrebbero essere inclusi all&#8217;interno del sync, in quanto onerosi in termini di peso in bytes e complicati da gestire, in quanto composti da troppe sotto cartelle. Mi riferisco ai files ed alla cartella di build del nostro progetto.<br \/>\nFortunatamente, SVN \u00e8 abbastanza intelligente da permetterci di escludere a priori alcuni patterns che vengono incontrati durante la sincronizzazione. Per fare questo \u00e8 necessario modificare il comportamento di default del nostro utente nei rapporti con il servizio SVN.<\/p>\n<p>Apriamo un terminale del nostro sistema e digitiamo:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nsvn status\r\n<\/pre>\n<p>questo comando generer\u00e0 una cartella nascosto, all&#8217;interno della home del nostro utente.<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\ncd .subversion\r\n<\/pre>\n<p>ed editiamo il file di config presente all&#8217;interno<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nvim config\r\n<\/pre>\n<p>Abbiate cura di ricercare e modificare, come segue, la riga che inizia per <strong>global-ignores<\/strong>. Se la riga \u00e8 commentata, scommentatela.<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nglobal-ignores = *.o *.lo *.la *.al .libs *.so *.so.[0-9]* *.a *.pyc *.pyo *.rej *~\r\n#*# .#* .*.swp .DS_Store build *~.nib *.so *.pbxuser *.mode* *.perspective*\r\n<\/pre>\n<p>Cercate la stringa:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\nenable-auto-props = yes\r\n<\/pre>\n<p>e verificate che sia scommentata. Alla fine, nella sezione [auto-props], aggiungete queste righe:<\/p>\n<pre lang=\"dos\" line=\"1\" escaped=\"true\">\r\n[auto-props]\r\n*.mode* = svn:mime-type=text\/X-xcode\r\n*.pbxuser = svn:mime-type=text\/X-xcode\r\n*.perspective* = svn:mime-type=text\/X-xcode\r\n*.pbxproj = svn:mime-type=text\/X-xcode\r\n<\/pre>\n<p>A questo punto il nostro sistema \u00e8 PRONTO per ricevere il nostro primo progetto. Apriamo XCode e scegliamo l&#8217;opzione SCM->Configure Repositories:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-01.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-01.jpg\" alt=\"XCode-SVN-01\" title=\"XCode-SVN-01\" width=\"500\" height=\"72\" class=\"aligncenter size-full wp-image-5200\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-01.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-01-300x43.jpg 300w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Scegliete il tasto + in basso, nella colonna a sinistra e riempite i parametri a Destra, seguendo lo schema riportato sotto:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-02.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-02.jpg\" alt=\"XCode-SVN-02\" title=\"XCode-SVN-02\" width=\"500\" height=\"468\" class=\"aligncenter size-full wp-image-5201\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-02.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-02-300x280.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-02-150x140.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Utilizziamo la dicitura <strong>localhost<\/strong> per riferirci alla nostra stessa macchina. La finestra URL, verr\u00e0 riempita automaticamente, in base ai parametri specificati sotto. Quindi, preoccupiamoci solo delle restanti opzioni.<\/p>\n<p>Alla voce Scheme, digitiamo: SVN+SSH, questo ci permetter\u00e0 di usare in congiunzione al protocollo SVN, le facilities e la sicurezza provenienti dal protocollo SSH.<\/p>\n<p>Come Host, specifichiamo la voce: localhost, per riferirci alla nostra stessa macchina. Path, conterr\u00e0 il percorso cos\u00ec come specificato nel comando di creazione del repository. Lasciamo vuoto il parametro Port e riempiamo User e Password, con le credenziali usate per accedere nel nostro Mac, attraverso il<br \/>\nservizio remote login (ssh).<\/p>\n<p>Spostiamoci nella tabella Options e modifichiamola secondo lo schema riportato sotto:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-03.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-03.jpg\" alt=\"XCode-SVN-03\" title=\"XCode-SVN-03\" width=\"500\" height=\"468\" class=\"aligncenter size-full wp-image-5202\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-03.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-03-300x280.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-03-150x140.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>A questo punto, creiamo un nuovo progetto da Xcode ed una volta aperto, scegliamo il file di progetto e visualizziamone le informazioni:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-04.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-04.jpg\" alt=\"XCode-SVN-04\" title=\"XCode-SVN-04\" width=\"500\" height=\"365\" class=\"aligncenter size-full wp-image-5203\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-04.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-04-300x219.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-04-150x109.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Premiamo sul tasto Configure Roots &#038; SCM e scegliamo come repository, quello appena configurato:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-05.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-05.jpg\" alt=\"XCode-SVN-05\" title=\"XCode-SVN-05\" width=\"500\" height=\"431\" class=\"aligncenter size-full wp-image-5204\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-05.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-05-300x258.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-05-150x129.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Chiudiamo la configurazione e se tutto \u00e8 andato correttamente, vedrete comparire un piccolo simbolo di database nella colonna pi\u00f9 a sinistra del vostro progetto:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-06.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-06.jpg\" alt=\"XCode-SVN-06\" title=\"XCode-SVN-06\" width=\"200\" height=\"397\" class=\"aligncenter size-full wp-image-5205\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-06.jpg 200w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-06-151x300.jpg 151w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-06-75x150.jpg 75w\" sizes=\"auto, (max-width: 200px) 100vw, 200px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Manca ancora un ultimo passo: la sincronizzazione iniziale del progetto sul repository. Chiudiamo il progetto con COMMAND+W e dal meno di XCode, scegliamo l&#8217;opzione SCM->Repositories:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-07.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-07.jpg\" alt=\"XCode-SVN-07\" title=\"XCode-SVN-07\" width=\"283\" height=\"88\" class=\"aligncenter size-full wp-image-5206\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-07.jpg 283w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-07-150x46.jpg 150w\" sizes=\"auto, (max-width: 283px) 100vw, 283px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>La finestra che ci appare, ci permetter\u00e0 di interagire con il server SVN appena configurato ed, in particolare, ci permetter\u00e0 di effettuare le opzioni di Import iniziale e Checkout. Vediamo come:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-08.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-08.jpg\" alt=\"XCode-SVN-08\" title=\"XCode-SVN-08\" width=\"500\" height=\"389\" class=\"aligncenter size-full wp-image-5207\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-08.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-08-300x233.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-08-150x116.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Scegliamo la voce IMPORT ed indichiamo come percorso, la cartella del progetto appena creato:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-09.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-09.jpg\" alt=\"XCode-SVN-09\" title=\"XCode-SVN-09\" width=\"500\" height=\"465\" class=\"aligncenter size-full wp-image-5208\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-09.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-09-300x279.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-09-150x139.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Dopo un paio di secondi, il sistema ci fornir\u00e0 un riscontro, indicandoci che l&#8217;import \u00e8 andato a buon fine:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-10.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-10.jpg\" alt=\"XCode-SVN-10\" title=\"XCode-SVN-10\" width=\"500\" height=\"387\" class=\"aligncenter size-full wp-image-5209\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-10.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-10-300x232.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-10-150x116.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Scorrendo, tra le cartelle disponibili, troveremo adesso anche quella del nostro nuovo progetto:<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-11.jpg\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-11.jpg\" alt=\"XCode-SVN-11\" title=\"XCode-SVN-11\" width=\"500\" height=\"390\" class=\"aligncenter size-full wp-image-5210\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-11.jpg 500w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-11-300x234.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/XCode-SVN-11-150x117.jpg 150w\" sizes=\"auto, (max-width: 500px) 100vw, 500px\" \/><\/a><br \/>\n<\/center><\/p>\n<p>Complimenti. Adesso il nostro progetto \u00e8 perfettamente sincronizzato, attraverso SVN. Potremo scegliere di &#8220;committare&#8221; le modifiche ogni qualvolta creeremo una versione &#8220;importante&#8221; del nostro lavoro, oppure potremo creare dei branch di sviluppo per il nostro team. Insomma, le possibilit\u00e0 sono davvero tante e vi rimando a <a href=\"http:\/\/www.google.it\/search?rls=en&#038;q=svn+tutorial\" target=\"_blank\">questo link<\/a> per saperne di pi\u00f9 sull&#8217;uso di SVN:<\/p>\n<p>Buona programmazione a tutti!<br \/>\nCostantino<\/p>\n<p><center><br \/>\n<a href=\"http:\/\/clk.tradedoubler.com\/click?p=24373&amp;a=1735897&amp;g=0&amp;url=http:\/\/itunes.apple.com\/it\/app\/allertasoglie-tre\/id393552998?mt=8&amp;partnerId=2003\" target=\"_blank\"><img loading=\"lazy\" decoding=\"async\" src=\"http:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/bn-Allerta-Soglie-per-tre-iphone-devapp.jpg\" alt=\"bn-Allerta-Soglie-per-tre-iphone-devapp\" title=\"bn-Allerta-Soglie-per-tre-iphone-devapp\" width=\"493\" height=\"113\" class=\"aligncenter size-full wp-image-5215\" srcset=\"https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/bn-Allerta-Soglie-per-tre-iphone-devapp.jpg 493w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/bn-Allerta-Soglie-per-tre-iphone-devapp-300x68.jpg 300w, https:\/\/www.devapp.it\/wordpress\/wp-content\/uploads\/2010\/11\/bn-Allerta-Soglie-per-tre-iphone-devapp-150x34.jpg 150w\" sizes=\"auto, (max-width: 493px) 100vw, 493px\" \/><\/a><br \/>\n<\/center><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Forse non lo sapevate, ma ogni Apple Macintosh che comprate con Snow Leopard, ha in dotazione un&#8230;<\/p>\n","protected":false},"author":476,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[8],"tags":[479,497,496,498,495,23],"class_list":["post-5197","post","type-post","status-publish","format-standard","hentry","category-guide-varie","tag-costantino-pistagna","tag-progetti-ipad","tag-progetti-iphone","tag-repository","tag-svn","tag-xcode"],"acf":[],"aioseo_notices":[],"_links":{"self":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/5197","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/users\/476"}],"replies":[{"embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/comments?post=5197"}],"version-history":[{"count":11,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/5197\/revisions"}],"predecessor-version":[{"id":5221,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/posts\/5197\/revisions\/5221"}],"wp:attachment":[{"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/media?parent=5197"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/categories?post=5197"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.devapp.it\/wordpress\/wp-json\/wp\/v2\/tags?post=5197"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}