I neofiti dello sviluppo mobile a volte rimangono sorpresi dalla varietà e dall’alto numero di errori che si manifestano quando si va a rilasciare la propria app. Generalmente su iOS grazie all’uniformità dei dispositivi non si hanno grossi problemi, ma in certe occasioni capita comunque di imprecare a lungo.
Qualche giorno fa improvvisamente la mia applicazione ha smesso di avviarsi sul dispositivo. Sul simulatore andava tutto liscio, e i certificati sembravano tutti a posto, ma dall’oggi al domani non c’era più verso di farla avviare sull’iPad. Dopo qualche ora di maledizioni alla Apple e alla sua politica nazifascista di gestione dei certificati, ho avuto la “brillante” idea di guardare i log del dispositivo, operazione tutt’altro che difficile ma che non capita di dover fare spesso.
Ebbene leggendo il log trovai l’errore immediatamente, avevo solamente scritto male la require di un modulo CommonJS, inserendo una lettera minuscola dove andava maiuscola. Nessun problema sul simulatore ma sul dispositivo questa piccola svista mandava in crash l’interprete Javascript.
Tutto bene quel che finisce bene… e velocemente.
Per chi di voi non sapesse di cosa sto parlando, vi basti sapere che Xcode nel menù Window ha una voce Devices che permette di mettere le mani su tutti i dispositivi connessi al vostro Mac, compresi i simulatori.
Dalla finestra dei dispositivi non sono solo i log di questi ultimi ad essere accessibili, ma anche le cartelle di proprietà delle varie app (container).
Dulcis in fundo, se vi piace mettere le mani all’interno dei file delle applicazioni usando il Finder ma navigando nelle directory dei simulatori vi capita di perdervi tra quella ventina di identificatori alfanumerici indistinguibili, ricordate che dalla schermata dei dispositivi è anche possibile ottenere l’identificatore associato a ogni simulatore, così da andare a colpo sicuro in quel marasma di caratteri e numeri. I dispositivi virtuali si trovano tutti all’interno di /Users/username/Library/Developer/CoreSimulator/Devices
, da lì in avanti ci vuole la bussola.