Share via


Considerazioni sulla piattaforma a 32/64 bit

Anche se iOS e macOS hanno storicamente supportato sia le app a 32 che a 64 bit, Apple ha gradualmente deprecato il supporto a 32 bit.

A partire da iOS 11, le app a 32 bit non verranno più avviate e tutti gli invii all'App Store devono supportare 64 bit.

A partire da gennaio 2018, le nuove app inviate a Mac App Store devono supportare 64 bit e le app esistenti devono essere aggiornate entro giugno 2018.

L'API classica di Xamarin (XamMac.dll e monotouch.dll) supporta solo le applicazioni a 32 bit. Tuttavia, le nuove applicazioni Xamarin.iOS e Xamarin.Mac usano l'API unificata (Xamarin.iOS e Xamarin.Mac) per impostazione predefinita e possono quindi essere destinate sia a 32 che a 64 bit, se necessario.

iOS

Abilitazione di build a 64 bit di app Xamarin.iOS

Avviso

Questa sezione è inclusa per motivi cronologici e per facilitare lo spostamento dei progetti Xamarin.iOS meno recenti nell'API unificata e il supporto a 64 bit. Tutti i nuovi progetti Xamarin.iOS useranno l'API unificata e la destinazione 64 bit per impostazione predefinita.

Per le applicazioni per dispositivi mobili Xamarin.iOS convertite nell'API unificata, gli sviluppatori devono aggiornare manualmente le impostazioni di compilazione in destinazione a 64 bit:

  1. Nel riquadro della soluzione fare doppio clic sul progetto dell'app per aprire la finestra Opzioni progetto.

  2. Selezionare Build iOS(Compila iOS).

  3. Per il simulatore i Telefono, nell'elenco a discesa Architetture supportate selezionare x86_64 o i386 + x86_64:

    Setting Supported architectures to x86_64 or i386 + x86_64

  4. Per i dispositivi fisici, selezionare una delle combinazioni arm64 disponibili:

    Setting Supported architectures to one of the ARM64 combinations

  5. Fare clic su OK.

  6. Eseguire una compilazione pulita.

ARMv7s è supportato solo dal processore A6 incluso in i Telefono 5 (o versione successiva). Il codice ARMv7 è più veloce e più piccolo di ARMv6, funziona solo con i Telefono 3GS e versioni successive ed è richiesto da Apple quando la destinazione è l'iPad o una versione minima di iOS 5.0. ARMv6 funziona su tutti i dispositivi, ma non è più supportato dal compilatore fornito con Xcode 4.5 e versioni successive.

ARM64 è necessario per supportare iOS 8 in i Telefono dispositivi a 6 o altri dispositivi a 64 bit e sarà richiesto da Apple quando si inviano applicazioni nuove o aggiornando le applicazioni in uscita nell'App Store di iTunes.

Per un'analisi completa delle funzionalità di vari dispositivi iOS, vedere il documento Sulla compatibilità dei dispositivi di Apple.

Aumento delle dimensioni binarie e a 64 bit

Durante la transizione di Apple da 32 bit a 64 bit, le app iOS dovranno essere eseguite sia su hardware a 32 bit che su hardware a 64 bit. Per questo motivo, l'API unificata di Xamarin consente agli sviluppatori di scegliere entrambi come destinazione.

La destinazione di architetture a 32 bit e a 64 bit aumenterà significativamente le dimensioni di un'applicazione. In questo modo, tuttavia, i dispositivi più recenti potranno eseguire codice ottimizzato, supportando comunque i dispositivi meno recenti.

Importante

Se viene visualizzato il messaggio seguente quando si invia un'applicazione iOS all'App Store di iTunes, "AVVISO ITMS-9000: Supporto a 64 bit mancante. A partire dal 1° febbraio 2015, le nuove app iOS caricate nell'App Store devono includere il supporto a 64 bit e essere compilate con iOS 8 SDK, incluso in Xcode 6 o versione successiva. Per abilitare il progetto a 64 bit, è consigliabile usare l'impostazione predefinita di compilazione Xcode "Architetture standard" per compilare un singolo file binario con codice a 32 bit e a 64 bit. È necessario passare le architetture supportate a una delle combinazioni ARM64 disponibili (come illustrato in precedenza), ricompilare e inviare di nuovo.

Mac

Importante

A partire da gennaio 2018, tutte le nuove app Mac inviate a Mac App Store devono supportare 64 bit. Le app Mac App Store esistenti e i relativi aggiornamenti devono supportare a partire da giugno 2018 a 64 bit. Vedere l'annuncio di Apple e una guida che descrive come aggiornare le app Xamarin.Mac a 64 bit.

La maggior parte dei computer Mac moderni supporta sia applicazioni a 32 bit che a 64 bit. MacOS 10.6 (Snow Leopard) è stato l'ultimo sistema operativo da eseguire su sistemi a 32 bit. La maggior parte dei Mac rilasciati dal 2010 supporta entrambi i sistemi.

A differenza di iOS, molti dei nuovi framework introdotti nelle versioni recenti di macOS sono supportati solo in modalità a 64 bit (CloudKit, EventKit, GameController, LocalAuthentication, MediaLibrary, Multipeer Connessione ivity, NotificationCenter, GLKit, SpriteKit, Social e MapKit, tra gli altri).

L'API unificata consente agli sviluppatori di scegliere il tipo di applicazioni che vogliono produrre: a 32 bit o a 64 bit.

Le applicazioni a 32 bit verranno eseguite su computer Mac a 32 bit e a 64 bit, hanno uno spazio di indirizzi limitato a 32 bit e richiedono che tutte le librerie siano a 32 bit.

In genere si userà questa modalità se si hanno dipendenze a 32 bit che non vengono eseguite in modalità a 64 bit, se si vuole avere un download più piccolo o se non sono presenti vantaggi in termini di prestazioni nel passaggio a 64 bit.

Questa modalità è limitata perché non sarà possibile usare molti framework disponibili in macOS Mavericks e macOS Yosemite.

Le applicazioni a 64 bit verranno eseguite solo su dispositivi Mac a 64 bit.

Per Mac, questa è la modalità di funzionamento preferita come la maggior parte dei Mac in uso oggi supporta la modalità a 64 bit e si ha accesso al set completo di framework forniti da Apple.

Abilitazione di build a 64 bit di app Xamarin.Mac

Per informazioni sulla creazione di un'app a 64 bit con Xamarin.Mac, vedere la guida Aggiornamento di applicazioni unificate Xamarin.Mac a 64 bit .