建立適用于 iOS 的 Xamarin 應用程式

注意

支援的版本和需求 App Center 支援 (PCL) 和 .NET Standard 專案的便攜類別庫。 請參閱 .NET Standard 版本的 雲端組建電腦 。 App Center 不支援 Xamarin 元件存放區中的元件,我們建議您在每次可用時使用 NuGet 套件。 如果您使用的元件無法被取代,請與我們聯絡。 請參閱說明 和意見反應。

若要開始建立您的第一個 Xamarin iOS 應用程式,您必須:

  1. 連接至您的存放庫服務帳戶 (GitHub、Bitbucket、VSTS Azure DevOps) 。
  2. 選取存放庫和應用程式所在的分支。
  3. 設定組建的專案或工作區,以及您想要建立的配置。

注意

若要讓應用程式在真實裝置上執行,組建必須是以有效的布建設定檔和憑證簽署的程式碼。

1. 連結您的存放庫

如果您先前尚未連線至您的存放庫服務帳戶,則必須加以連接。 一旦您的帳戶連線,請選取 iOS 專案所在的存放庫。 若要設定存放庫的組建,您需要其系統管理員和提取許可權。

2. 選取分支

選取存放庫之後,請選取您想要建立的分支。 預設會列出所有作用中的分支。

3. 設定您的第一個組建

在您的第一個組建之前,您必須先設定 Xamarin 專案。

3.1. 專案/解決方案

如果您的存放庫中的方案和專案檔位於分析範圍內,App Center 就會自動偵測該解決方案和專案檔案。 選取您要建立的 .sln.csproj/. >.fsproj

注意

為了達到最佳效能,分析目前限制為 .sln />.fsproj.sln 和四個目錄層級的兩個目錄層級,包括您存放庫的根目錄。

3.1.1. 從方案檔建立 ( .sln)

在您的程式碼中,請務必停用適用于 iOS 組建之組建設定的 Android 和 UWP 專案:進入解決方案的設定對應,並且針對以 iPhoneiPhoneSimulator 為目標的所有對應,取消核取所有以其他平臺為目標的專案。 這項變更可確保在建立 .sln 時,不會嘗試建立其他專案。 還有其他您可以讀取的 解決方案設定對應資訊

3.1.2. 從專案檔案建立 ( .csproj/. >.fsproj)

若要從 .csproj/. >.fsproj 檔案建立所有參考的專案 (例如,您的 PCL 專案) 必須包含與來源 iOS 專案中的設定相同的名稱。 因此,如果您在 App Center 中執行模擬器的 調試 程式設定,您的 PCL 專案必須具有 Debug | iPhoneSimulator 設定。 如果它們不存在,而且為了避免進一步的錯誤,我們會在建立專案之前新增這類設定。 這些設定只有 Debug 和 Release 的基本預設設定。

3.2. 組態

選取您要建立的設定。 系統會根據上一個步驟中所挑選的來源檔案,自動偵測設定。

3.3. Mono 版本

App Center 可讓您使用不同的 Mono 環境搭配個別的 Xamarin. iOS SDK 來建立組建,以維持回溯相容性,同時釋出新功能的支援。 新分支設定的預設 Mono 將會是最新的穩定版本。 您可以選擇使用先前的其中一個 Mono 環境,來建立較舊版本的架構或程式庫。 當您選擇不同的 Mono 版本時,您會看到與它配套的 Xamarin. iOS SDK 版本。 若要追蹤 Xamarin SDK 版本更新,您可以閱讀 xamarin release blog中的文章。

3.3.1. .NET Core 版本

將會根據用於組建的 Mono 版本自動選取適當的 .NET Core 版本,且無法覆寫。 您可以在下表中,查看將 Mono 對應到我們的服務所使用的 .NET Core:

Mono .NET Core
<= 5.18 2.2.105
6.0 >2.2.300
6.4 3.0.100
6.6 3.1.100
6.8 3.1.200
6.10 3.1.300
6.12 3.1.401

3.4. Xcode 版本

目前支援的 Xamarin 版本需要 Xcode 9.4.1 或更高版本

3.5. 組建觸發程式

根據預設,每當開發人員推送至設定的分支時,就會觸發新的組建。 如果您想要手動觸發新的組建,您可以在 [設定] 窗格中變更此設定。

3.6. 模擬器組建

模擬器組建只能在模擬器上執行,而且無法安裝在裝置上,但是組建的完成速度會比裝置組建更快。 如果您的組建不是模擬器組建,您需要在下一個步驟中上傳程式碼簽署檔案。

3.7。 遞增組建編號

啟用時, CFBundleVersion 會自動為每個組建遞增 plist 中的應用程式。 變更會在預先組建時發生,且不會認可至您的存放庫。

3.8。 程式碼簽署

成功的裝置組建將會產生 IPA 檔案。 若要在裝置上安裝組建,必須使用有效的布建設定檔和憑證進行簽署。 若要簽署從分支產生的組建,請啟用 [設定] 窗格中的程式碼簽署,然後上傳佈建 設定檔 (.mobileprovision) 和有效的憑證 (.p12) 以及憑證的密碼。 您可以在 xamarin 檔中深入瞭解 xamarin iOS 應用程式的程式碼簽署和裝置布建。

具有 應用程式或 watchOS 延伸 模組的應用程式需要每個擴充功能的額外布建設定檔才能進行簽署。

注意

在包含 Xamarin watchOS 應用程式的專案中執行時,有一個 現有的問題 nuget restore 。 在 App Center 中建立 watchOS 應用程式而不使用因應措施,將會產生錯誤:

Project <project> is not compatible with xamarinios10 (Xamarin.iOS,Version=v1.0) / win-x86. Project <project> supports: xamarinwatchos10 (Xamarin.WatchOS,Version=v1.0).

若要在 App Center 上建立 watchOS 應用程式,需要因應措施。 在包含與 Watch 應用程式參考的 iOS 專案中, 必須包含額外一行

<ReferenceOutputAssembly>False</ReferenceOutputAssembly>

使用因應措施的 WatchApp 參考範例:

    <ProjectReference Include="..\MyWatchApp\MyWatchApp.csproj">
      <Project>{59EB034F-3D29-43A5-B89F-124879504771}</Project>
      <Name>MyWatchApp</Name>
      <IsWatchApp>True</IsWatchApp>
      <ReferenceOutputAssembly>False</ReferenceOutputAssembly>
    </ProjectReference>

3.9。 在真實裝置上啟動成功的組建

使用新產生的 ipa 檔案來測試您的應用程式是否會在實際裝置上啟動。 啟動測試會在組建時間增加約10分鐘。 您可能想要查看更 完整的組建測試指南

3.10。 NuGet 還原

如果已簽入存放庫的 NuGet.config 檔案,且位於您存放庫的 .sln 或根層級旁邊,則 App Center 會在新增時還原您的私用 NuGet 摘要,如下列範例所示。 您可以使用 環境變數安全地新增認證:

<?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>

如果您有複雜的設定,而且需要詳細資訊,請參閱設定 NuGet 行為

3.11。 散發至通訊群組

您可以將每個成功的組建從分支設定為散發至先前建立的通訊群組。 您可以從 [散發] 區段內加入新的通訊群組。 一律會有一個名為「共同作業者」的預設通訊群組,其中包含所有可存取應用程式的使用者。

儲存設定之後,將會自動啟動新的組建。

4. 建立結果

觸發組建之後,可能會處於下列狀態:

  • 排入 佇列-組建位於等候資源釋放的佇列中。
  • 建立 -組建正在執行,並執行預先定義的工作。
  • 成功 -組建已順利完成。
  • 失敗 -組建因為失敗而停止。 您可以下載並檢查組建記錄檔,以針對發生錯誤的原因進行疑難排解。
  • 已取消 -組建已由使用者動作取消或已超時。

4.1. 組建記錄

針對完成的組建 (成功或失敗的) ,請下載記錄檔,以深入瞭解組建的執行方式。 App Center 會使用下列檔案提供封存:

|-- 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)

(位於封存) 目錄中的組建步驟專屬記錄, build/ 對於疑難排解和瞭解組建失敗的步驟和原因很有用。

4.2. 應用程式 (.ipa.app)

.ipa是包含 ios 應用程式的 ios 應用程式封存檔案。 如果組建已正確簽署, .ipa 可以安裝在實際的裝置上,其對應于簽署時使用的布建設定檔。 有更多 有關使用 App Center 進行程式碼簽署和散發的詳細資料

如果應用程式是模擬器組建,您可以在模擬器上執行檔案 .app ,但無法在真實裝置上使用。

4.3. 符號檔 ( dsym)

只會針對裝置組建產生符號檔。 Dsym 檔案包含應用程式的 debug 符號。

  • 如果先前在應用程式中整合了 App Center SDK,且已啟用損毀報告模組,則損毀報表服務會要求組建使用此檔案, .dsym 以顯示人類可讀取的 (symbolicated) 損毀報表。
  • 如果您先前在應用程式中整合了另一個適用于損毀報告的 SDK (例如,HockeyApp SDK) ,則對應的服務會要求檔案 .dsym 顯示人類可讀取的損毀報告。