Come rifirmare un’ipa con un certificato Developer

Per firmare un file .ipa sono necessarie un paio di cose:

  • un account Developer Apple
  • un app signer
  • l’ipa in questione
  • un signing certificate
  • un provisioning profile

Per l’account da Developer Apple e l’ipa non posso aiutarvi, dovete “occuparvene” da soli acquistando la licenza e scaricando l’ipa da non so dove (la procedura di rifirma è necessaria perché l’ipa viene firmata dallo sviluppatore che l’ha creata o diffusa e per installarla su un iPhone è necessario che i certificati corrispondano).

Per quanto riguarda l’app signer posso consigliarvi una di queste due (ho fatto di entrambi un fork ma non ho modificato nulla):

https://github.com/marcotini/XReSign
https://github.com/marcotini/ios-app-signer

Entrambe funzionano bene, vi basterà scaricare il progetto e compilarlo. Oppure semplicemente scaricare l’app precompilata e avviarla.

Per il signing certificate e il provisioning profile vi basterà configurare correttamente Xcode con il vostro account. Dovrebbe crearvi entrambi al primo login, nel caso: Xcode -> Preferences... -> Accounts -> Manage Certificates... e scaricate tutti i certificati (nel caso createli nuovi su developer.apple.com).

Ora che avete tutto l’occorrente, aprite iOS App Signer (o XReSign) e selezionate le 3 voci come segue:

Screenshot di iOS App Signer dopo aver rifirmato un’ipa

Controllate che abbiate selezionato il Developer nel Signing Certificate e il Provisioning Profile con l’asterisco (è il Wildcard).

Per installarla invece sull’iPhone vi basterà aprire Xcode -> Window -> Devices and Simulators e selezionare l’ipa dopo aver premuto sul + in basso a sinistra nella voce Installed apps:

Devices and simulators su Xcode

Aspettate che Xcode faccia i suoi check e voilà, ora nella vostra dashboard dovreste trovarvi l’app pronta per essere utilizzata! Non è stato tanto difficile no?

Se vi dovesse comparire un errore di questo genere:

Signing failed

Significa che c’è qualche problema con l’ipa. Se invece durante l’installazione con Xcode dovesse comparirvi questo errore (ed è uguale qualsiasi app signer utilizziate):

App installation failed

Significa che avete sbagliato certificato o provisioning profile. Utilizzate quelli giusti, cioè il developer e quello con l’asterisco e dovrebbe installarvela correttamente.

Cosa fare se non riuscite ad installare un’app con Xcode

Anche questa tipologia di bug è divertente, provate e riprovate ma non dipende da voi. Evidentemente qualche procedura è andata storta e Xcode non vuole proprio compilare (o forse quello lo fa, non riesce però ad installarla) e installarla sul vostro iPhone.

Could not start debugserver on iPhone when trying to launch app

Le possibilità sono: riavviate sia iPhone che Mac, ricollegate l’iPhone al Mac e rieffettuate tutto da capo.

Cancellando ovviamente anche la cartella Cache dentro Library e se possibile, liberate spazio facendo ricostruire (si fa per dire, Xcode riscaricherà librerie e quant’altro) seguendo questa guida.

Come dividere una stringa in OBJC

Passo subito a un esempio pratico per farla rapida (ho usato la parentesi come simbolo di split):

NSString * name = @"Mi chiamo Marco (Tini)";
NSArray * parentesi = [name componentsSeparatedByString: @"("];
name = [foo objectAtIndex: 0];

Quindi name conterrà “Mi chiamo Marco “. Semplice no?