快速入門:使用管線建立及部署 Xamarin 應用程式

Azure Pipelines

使用建立管線來部署 xamarin 應用程式,開始使用Xamarin和 Azure Pipelines。 您可以在相同或不同的管線中部署 Android 和 iOS 應用程式。

必要條件

在開始之前,您需要:

取得驗證碼

在 GitHub 中派生此存放庫:

https://github.com/MicrosoftDocs/pipelines-xamarin

此範例是存放 FirstApp 庫中的範例 https://github.com/xamarin/xamarin-forms-samples 。 如需開始使用 Xamarin 的詳細資訊,請參閱 建立您的第一個 xamarin. Forms 應用程式

登入 Azure Pipelines

登入Azure Pipelines。 登入之後,您的瀏覽器會移至 https://dev.azure.com/my-organization-name 並顯示您的 Azure DevOps 儀表板。

在您選取的組織內建立 專案。 如果您的組織中沒有任何專案,您會看到 [ 建立專案] 以開始 使用畫面。 否則,請選取儀表板右上角的 [建立] Project按鈕。

建立管線

  1. 登入您的 Azure DevOps 組織,然後瀏覽至您的專案。

  2. 移至Pipelines,然後選取 [新增管線]。

  3. 先選取 GitHub 作為原始程式碼的位置,以逐步完成精靈的步驟。

  4. 系統可能會將您重新導向至 GitHub 以進行登入。 若是如此,請輸入您的 GitHub 認證。

  5. 當存放庫清單出現時,請選取您的存放庫。

  6. 您可能會被重新導向至 GitHub,以安裝 Azure Pipelines 應用程式。 如果是,請選取 [ 核准 安裝]。

  1. 出現 [ 設定 ] 索引標籤時,請選取 [ xamarin ] 以建立 Android 專案或 [ xamarin ] 來建立 ios 專案。 如果您想要使用包含的範例檔案 .yml ,請選擇 [.yml檔],然後選擇其中一個隨附的範例管線 (Android、iOS 或建立這兩種) 的組合管線。

  2. 當您的新管線出現時,請查看 YAML 查看其功能。 當您準備好時,請選取 [ 儲存並執行]。

    新 YAML 管線中的 [儲存並執行] 按鈕

  3. 如果您已建立新的 YAML 檔案,系統會提示您將新的 >azure-pipelines.yml yml 檔案認可至您的存放庫。 當您感到滿意訊息之後,請選取 [儲存後再 執行 一次]。

    如果您想要監看管線的作用,請選取組建作業。 您現在已有可 azure-pipelines.yml 供您自訂的 () 儲存機制中的工作 YAML 管線!

  4. 當您準備好要對管線進行變更時,請在 [ Pipelines ] 頁面中選取該檔案,然後編輯該檔案

  5. 請參閱下列各節,以瞭解自訂管線的一些較常見的方式。

設定 Xamarin 工具

您可以使用 Azure Pipelines 建立您的 Xamarin 應用程式,而不需要設定您自己的任何基礎結構。 Xamarin 工具會預先安裝在 Azure Pipelines 的 Microsoft 裝載的代理程式上。 您可以使用 macOS 或 Windows 代理程式來執行 xamarin. Android 組建,以及 macOS 代理程式來執行 xamarin 組建。 如果您使用自我裝載的代理程式,您必須為 macOS 代理程式的 Windows 代理程式或Visual Studio for Mac安裝適用于 Xamarin 的 Visual Studio Tools

針對已預先安裝的 Xamarin 確切版本,請參閱 Microsoft 裝載的 代理程式。

在存放庫的根目錄中建立名為 >azure-pipelines.yml 的檔案。 然後,將下列程式碼片段新增至您的檔案, azure-pipelines.yml 以選取適當的代理程式組件區:

# https://docs.microsoft.com/azure/devops/pipelines/ecosystems/xamarin
pool:
  vmImage: 'macOS-10.15' # For Windows, use 'windows-2019'

建立 Xamarin Android 應用程式

若要建立 Xamarin Android 應用程式,請將下列程式碼片段新增至您的檔案 azure-pipelines.yml 。 變更值以符合您的專案設定。 如需這些選項的詳細資訊,請參閱 Xamarin. Android 工作。

variables:
  buildConfiguration: 'Release'
  outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)'

steps:
- task: NuGetToolInstaller@1

- task: NuGetCommand@2
  inputs:
    restoreSolution: '**/*.sln'

- task: XamarinAndroid@1
  inputs:
    projectFile: '**/*Droid*.csproj'
    outputDirectory: '$(outputDirectory)'
    configuration: '$(buildConfiguration)'
    msbuildVersionOption: '16.0'

簽署 Xamarin. Android 應用程式

如需簽署應用程式的相關資訊,請參閱 在 CI 期間簽署您的 Mobile Android 應用程式

建立 Xamarin iOS 應用程式

若要建立 Xamarin iOS 應用程式,請將下列程式碼片段新增至您的檔案 azure-pipelines.yml 。 變更值以符合您的專案設定。 如需這些選項的詳細資訊,請參閱「 Xamarin. iOS 」工作。

variables:
  buildConfiguration: 'Release'

steps:
- task: XamariniOS@2
  inputs:
    solutionFile: '**/*iOS.csproj'
    configuration: '$(buildConfiguration)'
    packageApp: false
    buildForSimulator: true

簽署及布建 Xamarin iOS 應用程式-PackageApp 選項

若要產生已簽署和已布建的 ipa 套件,請設定 packageApptrue ,並確定在這項工作之前,您已將正確的 apple 布建設定檔和 apple 憑證(符合您的應用程式套件組合識別碼)安裝至執行此作業的代理程式。

若要滿足這些必要的必要條件,請使用 Microsoft 提供的工作來 安裝 apple 布建設定檔安裝 apple 憑證

- task: XamariniOS@2
    inputs:
      solutionFile: '**/*iOS.csproj'
      configuration: 'AppStore'
      packageApp: true

提示

如果執行作業的代理程式已安裝適當的布建設定檔和 Apple 憑證,則 Xamarin 組建工作會產生 ipa 套件。 如果您啟用 packageApp 選項,且代理程式沒有適當的 apple 布建設定檔 (. >.mobileprovision) 和 apple 憑證 ( p12) 組建可能會報告成功,但不會產生 ipa。

若為 Microsoft 裝載的代理程式,則 ipa 封裝預設位於 path:
{iOS.csproj root}/bin/{Configuration}/{iPhone/iPhoneSimulator}/

您可以藉由將引數新增至 Xamarin 工作來設定輸出路徑:

- task: XamariniOS@2
    inputs:
      solutionFile: '**/*iOS.csproj'
      configuration: 'AppStore'
      packageApp: true
      args: /p:IpaPackageDir="/Users/vsts/agent/2.153.2/work/1/a"

這個範例會在組建成品預備目錄中找出 ipa,準備好要推送到 Azure DevOps 作為每個組建執行的成品。若要將其推送至 Azure DevOps 只要將發佈成品工作新增至管線的結尾。

如需有關簽署及布建 iOS 應用程式的詳細資訊,請參閱 在 CI 期間簽署您的行動 iOS 應用程式

在 macOS 上設定 Xamarin SDK 版本

若要設定要在 Microsoft 裝載的 macOS 代理程式組件區上使用的特定 Xamarin SDK 版本,請在檔案中的工作之前新增下列程式碼片段 XamariniOSazure-pipelines.yml 。 如需正確設定版本號碼格式的詳細資料 (如下所示 5_4_1) ,請參閱 如何在 Hosted macOS 代理程式上手動選取工具的版本?

- script: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_4_1
  displayName: 'Select Xamarin SDK version'

使用一個管線建立 Xamarin. Android 和 Xamarin iOS 應用程式

您可以在中定義多個 作業 ,以在相同的管線中建立和測試您的 xamarin Android 應用程式、xamarin ios 應用程式和相關應用程式 。 這些工作可以平行執行,以節省時間。 下列完整範例會使用兩個工作,在 Windows 上建立 xamarin Android 應用程式,並在 macOS 上建立 xamarin ios 應用程式。

# Xamarin.Android and Xamarin.iOS
# Build a Xamarin.Android and Xamarin.iOS app.
# Add steps that test, sign, and distribute the app, save build artifacts, and more:
# https://docs.microsoft.com/azure/devops/pipelines/ecosystems/xamarin

jobs:

- job: Android
  pool:
    vmImage: 'windows-2019'

  variables:
    buildConfiguration: 'Release'
    outputDirectory: '$(build.binariesDirectory)/$(buildConfiguration)'

  steps:
  - task: NuGetToolInstaller@1

  - task: NuGetCommand@2
    inputs:
      restoreSolution: '**/*.sln'

  - task: XamarinAndroid@1
    inputs:
      projectFile: '**/*droid*.csproj'
      outputDirectory: '$(outputDirectory)'
      configuration: '$(buildConfiguration)'
      msbuildVersionOption: '16.0'

  - task: AndroidSigning@3
    inputs:
      apksign: false
      zipalign: false
      apkFiles: '$(outputDirectory)/*.apk'

  - task: PublishBuildArtifacts@1
    inputs:
      pathtoPublish: '$(outputDirectory)'

- job: iOS
  pool:
    vmImage: 'macOS-10.15'

  steps:
  # To manually select a Xamarin SDK version on the Hosted macOS agent, enable this script with the SDK version you want to target
  # https://go.microsoft.com/fwlink/?linkid=871629
  - script: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_4_1 
    displayName: 'Select Xamarin SDK version'
    enabled: false

  - task: NuGetToolInstaller@1

  - task: NuGetCommand@2
    inputs:
      restoreSolution: '**/*.sln'

  - task: XamariniOS@2
    inputs:
      solutionFile: '**/*.sln'
      configuration: 'Release'
      buildForSimulator: true
      packageApp: false

清除資源

如果您不需要範例程式碼,請刪除您的 GitHub 存放庫,並 Azure Pipelines 專案。

下一步