Creazione di app Xamarin per iOS
Importante
Visual Studio App Center è previsto per il ritiro il 31 marzo 2025. Anche se è possibile continuare a usare Visual Studio App Center fino a quando non viene completamente ritirato, esistono diverse alternative consigliate che è possibile considerare la migrazione a.
Altre informazioni sulle sequenze temporali di supporto e sulle alternative.
Nota
Le versioni e i requisiti supportati di App Center supportano progetti PCL (Portable Class Library) e .NET Standard . Fare riferimento a Macchine di compilazione cloud per le versioni di .NET Standard. App Center non supporta i componenti dall'Archivio componenti Xamarin e consigliamo di usare i pacchetti NuGet ogni volta che sono disponibili. Se si usa un componente che non può essere sostituito, contattare microsoft. Vedere la Guida e il feedback.
Per iniziare a creare la prima app IOS Xamarin, è necessario:
- Connettersi all'account del servizio repository (GitHub, Bitbucket, VSTS, Azure DevOps).
- Selezionare un repository e un ramo in cui risiede l'app.
- Configurare il progetto o l'area di lavoro della compilazione e lo schema da compilare.
Nota
Per l'esecuzione dell'app in un dispositivo reale, la compilazione deve essere firmata con un profilo di provisioning valido e un certificato.
1. Collegamento del repository
Se non è stata precedentemente connessa all'account del servizio repository, è necessario connetterla. Dopo la connessione dell'account, selezionare il repository in cui si trova il progetto iOS. Per configurare una compilazione per un repository, è necessaria l'autorizzazione di amministratore e pull.
2. Selezione di un ramo
Dopo aver selezionato un repository, selezionare il ramo da compilare. Per impostazione predefinita, tutti i rami attivi verranno elencati.
3. Configurazione della prima compilazione
Prima della prima compilazione, è necessario configurare il progetto Xamarin.
3.1. Progetto/soluzione
App Center rileva automaticamente i file di soluzione e di progetto nel repository se si trovano all'interno dell'intervallo di analisi. Selezionare il .sln o .csproj/.fsproj da compilare.
Nota
Per prestazioni ottimali, l'analisi è attualmente limitata a due livelli di directory per .sln e quattro livelli di directory per .csproj/fsproj , inclusa la radice del repository.
3.1.1. Compilazione dal file di soluzione (.sln)
Nel codice assicurarsi di disabilitare i progetti Android e UWP per le configurazioni di compilazione destinate alle compilazioni iOS: passare ai mapping di configurazione della soluzione e per tutti i mapping destinati a iPhone e iPhoneSimulator, deselezionare tutti i progetti destinati ad altre piattaforme. Questa modifica garantisce che quando l' .sln sta creando, non tenterà di compilare gli altri progetti. Sono disponibili altre informazioni sul mapping delle configurazioni della soluzione che è possibile leggere.
3.1.2. Compilazione dal file di progetto (.csproj/.fsproj)
Per compilare da un file con estensione csproj/.fsproj tutti i progetti a cui si fa riferimento (ad esempio, il progetto PCL) deve contenere la configurazione con lo stesso nome del progetto iOS di origine. Quindi, se si esegue la configurazione debug per il simulatore in App Center, il progetto PCL deve avere la configurazione Debug|iPhoneSimulator . Nel caso in cui non esistano e per evitare ulteriori errori, si aggiungono tali configurazioni prima di creare i progetti. Queste configurazioni hanno impostazioni predefinite di base solo per Debug e Versione.
3.2. Configurazione
Selezionare la configurazione con cui si vuole compilare. Le configurazioni vengono rilevate automaticamente a seconda del file di origine selezionato nel passaggio precedente.
3.3. Versione mono
App Center consente di usare diversi ambienti Mono raggruppati con i rispettivi SDK Xamarin.iOS per la compilazione per mantenere la compatibilità con le versioni precedenti, rilasciando un supporto per le nuove funzionalità. Il mono predefinito per una nuova configurazione del ramo sarà quello stabile più recente. È possibile scegliere di usare uno degli ambienti Mono precedenti per creare versioni precedenti di framework o librerie. Quando si sceglie una versione mono diversa, verrà visualizzata la versione di Xamarin.iOS SDK in bundle. Per tenere traccia degli aggiornamenti della versione di Xamarin SDK, è possibile leggere i post nel blog sulla versione di Xamarin.
3.3.1. Versione di .NET
La versione corretta di .NET verrà selezionata automaticamente in base alla versione Xamarin.iOS usata per la compilazione e non può essere sovrascritto. È possibile visualizzare il mapping di Xamarin.iOS a .NET usato dai servizi nella tabella seguente:
Xamarin.iOS | .NET |
---|---|
13.20 | 3.1.401 |
14,0 | 3.1.401 |
14,2 | 3.1.401 |
14.4 | 3.1.401 |
14.6 | 5.0.100 |
14.8 | 5.0.100 |
14.10 | 5.0.100 |
14.14 | 5.0.100 |
14.16 | 5.0.100 |
14.20 | 5.0.100 |
15 | 5.0.100 |
15.2 | 5.0.100 |
15,4 | 5.0.100 |
15.6 | 5.0.100 |
15.8 | 5.0.100 |
15.10 | 5.0.100 |
15.12 | 5.0.100 |
16,0 | 5.0.100 |
16.0 (.NET 6) | 6.0.405 |
16.1 | 6.0.405 |
16.2 | 6.0.405 |
3.4. Versione Xcode
Le versioni attualmente supportate di Xamarin richiedono Xcode 11.7 o versioni successive
3.5. Trigger di compilazione
Per impostazione predefinita, viene attivata una nuova compilazione ogni volta che uno sviluppatore esegue il push in un ramo configurato. Se si preferisce attivare manualmente una nuova compilazione, è possibile modificare questa impostazione nel riquadro di configurazione.
3.6. Compilazione del simulatore
Le build del simulatore possono essere eseguite solo nei simulatori e non possono essere installate nel dispositivo, ma le build vengono completate più velocemente rispetto alle compilazioni del dispositivo. Se la compilazione non è una compilazione del simulatore, è necessario caricare i file di firma del codice nel passaggio successivo.
3.7. Numero di compilazione incrementa
Se abilitato, l'elemento nell'elenco CFBundleVersion
Info.plist dell'app incrementa automaticamente per ogni compilazione. La modifica viene eseguita prima della compilazione e non verrà eseguito il commit nel repository.
3.8. Firma del codice
Una compilazione del dispositivo riuscita produrrà un file IPA. Per installare la compilazione in un dispositivo, deve essere firmato con un profilo di provisioning e un certificato validi. Per firmare le compilazioni prodotte da un ramo, abilitare la firma del codice nel riquadro di configurazione e caricare un profilo di provisioning () e un certificato valido (.mobileprovision
.p12
) insieme alla password per il certificato. Per altre informazioni sulla firma del codice e sul provisioning dei dispositivi di app Xamarin iOS, vedere la documentazione di Xamarin.
Le app con le estensioni app o watchOS richiedono la firma di un profilo di provisioning aggiuntivo per estensione.
Nota
Si è verificato un problema esistente durante l'esecuzione nuget restore
in progetti contenenti app watchOS Xamarin.
La creazione di un'app watchOS in App Center senza una soluzione alternativa genera un errore:
Project <project> is not compatible with xamarinios10 (Xamarin.iOS,Version=v1.0) / win-x86. Project <project> supports: xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0)
.
Per compilare app watchOS in App Center, è necessaria una soluzione alternativa. All'interno del progetto iOS contenente, che fa riferimento all'app Watch, è necessario includere una riga aggiuntiva:
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
Riferimento di WatchApp di esempio con soluzione alternativa:
<ProjectReference Include="..\MyWatchApp\MyWatchApp.csproj">
<Project>{59EB034F-3D29-43A5-B89F-124879504771}</Project>
<Name>MyWatchApp</Name>
<IsWatchApp>True</IsWatchApp>
<ReferenceOutputAssembly>False</ReferenceOutputAssembly>
</ProjectReference>
3.9. Avviare la compilazione riuscita in un dispositivo reale
Usare il file con estensione ipa appena prodotto per testare se l'app inizia in un dispositivo reale. Il test di avvio aggiunge circa 10 minuti al tempo di compilazione. È possibile controllare una guida più completa sui test delle compilazioni
3.10. NuGet restore
Se il file NuGet.config viene archiviato per il repository e si trova accanto al .sln o al livello radice del repository, App Center ripristina i feed NuGet privati quando vengono aggiunti come illustrato nell'esempio seguente. Le credenziali possono essere aggiunte in modo sicuro usando le variabili di ambiente:
<?xml version="1.0" encoding="utf-8"?>
<configuration>
<packageSources>
<add key="nuget" value="https://api.nuget.org/v3/index.json" />
<add key="MyGet" value="https://www.myget.org/F/MyUsername/api/v2/index.json" />
<add key="MyAuthNuget" value="https://nuget.example.com/v2/index.json" />
</packageSources>
<activePackageSource>
<add key="All" value="(Aggregate source)" />
</activePackageSource>
<packageSourceCredentials>
<MyAuthNuget>
<add key="Username" value="$USER_VARIABLE" />
<add key="ClearTextPassword" value="$PASSWORD_VARIABLE" />
</MyAuthNuget>
</packageSourceCredentials>
</configuration>
Se sono presenti configurazioni complesse e sono necessarie altre informazioni, vedere Configurazione del comportamento di NuGet.
3.11. Distribuire a un gruppo di distribuzione
È possibile configurare ogni compilazione corretta da un ramo da distribuire a un gruppo di distribuzione creato in precedenza. È possibile aggiungere un nuovo gruppo di distribuzione dall'interno della sezione Distribuisci. Esiste sempre un gruppo di distribuzione predefinito denominato "Collaboratori" che include tutti gli utenti che hanno accesso all'app.
Dopo aver salvato la configurazione, verrà avviata automaticamente una nuova compilazione.
4. Compilare i risultati
Dopo aver attivato una compilazione, può essere presente negli stati seguenti:
- accodato : la compilazione si trova in una coda in attesa che le risorse vengano liberate.
- building : la compilazione è in esecuzione ed esegue le attività predefinite.
- riuscito: la compilazione è stata completata correttamente.
- non riuscita: la compilazione è stata arrestata a causa di un errore. È possibile risolvere il problema scaricando e controllando il log di compilazione.
- annullata: la compilazione è stata annullata da un'azione dell'utente o dal timeout.
4.1. Log di compilazione
Per una compilazione completata (riuscita o non riuscita), scaricare i log per altre informazioni su come è andata la compilazione. App Center fornisce un archivio con i file seguenti:
|-- 1_build.txt (this is the general build log)
|-- build (this folder contains a separate log file for each build step)
|-- <build-step-1> (e.g. 2_Get Sources.txt)
|-- <build-step-2> (e.g. 3_Pod install.txt)
|--
|-- <build-step-n> (e.g. n_Post Job Cleanup.txt)
I log specifici della compilazione (presenti nella directory dell'archivio build/
) sono utili per la risoluzione dei problemi e la comprensione del passaggio e del motivo per cui la compilazione non è riuscita.
4.2. L'app (.ipa
o .app
)
È .ipa
un file di archivio dell'applicazione iOS che contiene l'app iOS. Se la compilazione è stata firmata correttamente, è .ipa
possibile installare in un dispositivo reale, corrispondente al profilo di provisioning usato durante la firma. Sono disponibili altri dettagli sulla firma del codice e sulla distribuzione con App Center.
Se l'app è una compilazione del simulatore, è possibile eseguire il .app
file in un simulatore, ma non è possibile usarlo in un dispositivo reale.
4.3. File di simboli (con estensione dsym)
I file di simboli vengono generati solo per le compilazioni del dispositivo. I file con estensione dsym contengono i simboli di debug per l'app.
- Se in precedenza è stato integrato App Center SDK nell'app con il modulo di creazione di report di arresto anomalo abilitato, il servizio di creazione di report degli arresti anomali richiede questo
.dsym
file per visualizzare report di arresto anomalo leggibili (simbolici). - Se in precedenza è stato integrato un altro SDK per la segnalazione degli arresti anomali nell'app (ad esempio HockeyApp SDK), il servizio corrispondente richiede il
.dsym
file per visualizzare i report di arresto anomalo leggibili.