【问题标题】:Push notifications are not working in the iOS build created using Azure Pipeline推送通知在使用 Azure Pipeline 创建的 iOS 版本中不起作用
【发布时间】:2022-10-18 13:00:00
【问题描述】:

在 Xamarin.forms 项目中,我尝试使用以下 YML 脚本创建构建。我添加了安装 Appstore 分发和 APNS 证书 .p12 文件的任务。整个脚本工作正常,构建工作正常,只有推送通知不起作用,下面是我正在使用的脚本:

stage: iOSBuildProd
  displayName: iOS Build Prod
  dependsOn: iOSBuildQA
  pool:
      vmImage: 'macOS-latest'
  jobs:
    - job: iOSBuildSolution
      displayName: iOS Build Solution
      steps:
      - script: sudo $AGENT_HOMEDIRECTORY/scripts/select-xamarin-sdk.sh 5_0_0 
        displayName: 'Select Xamarin SDK version'
        enabled: false
      - task: InstallAppleCertificate@2
        displayName: installing Build certificate
        inputs:
          certSecureFile: '$(certAPNSFile)'
          certPwd: '$(certificatePassword)'
          keychain: 'temp'
          deleteCert: true  
      - task: InstallAppleCertificate@2
        displayName: installing Build certificate
        inputs:
          certSecureFile: '$(certDistributionFile)'
          certPwd: '$(certificatePassword)'
          keychain: 'temp'
          deleteCert: true  

      - task: InstallAppleProvisioningProfile@1
        displayName: installing provisioning profiles
        inputs:
          provisioningProfileLocation: 'secureFiles'
          provProfileSecureFile: $(AppStoreProfileName)
          removeProfile: true
      - task: NuGetToolInstaller@1
        displayName: 'NuGet Installer'
      - task: NuGetCommand@2
        displayName: 'NuGet Command'
        inputs:
          restoreSolution: '$(solutionPath)'
      - task: XamariniOS@2
        displayName: 'iOS Build'
        inputs:
          solutionFile: '$(iOSSolutionPath)'
          configuration: '$(solutionConfiguration)'
          args: '/p:IpaPackageDir="$(outputDirectory)"'
          packageApp: true
          buildForSimulator: false
          runNugetRestore: true
          signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
          signingProvisioningProfileID: '$(APPLE_PROV_PROFILE_UUID)'
      - task: PublishBuildArtifacts@1
        inputs:
          pathtoPublish: '$(outputDirectory)'
          ArtifactName: 'prodStage'

【问题讨论】:

  • 我有同样的问题。我无法让推送通知工作。我正在使用 openssl 创建我的 Apple Dev 证书和 Apple Push Notification 证书。它们都是 p12 文件。我可以在 DotNetCoreCLI@2 Task 中看到没有提及推送通知证书。我正在构建一个 .Net Maui 应用程序。我也没有在 Pre-job:InstallAppleProvisioningProfile 任务中看到任何关于推送通知的提及。你有没有让这个工作?

标签: ios xamarin.forms azure-pipelines azure-pipelines-release-pipeline


【解决方案1】:

这就是我的做法。这不起作用,但我想分享一些代码。

- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: 'apple_dev_2022.p12' 
    certPwd: $(iOSCertPassword)
    keychain: 'custom' # Options: default, temp, custom
    customKeychainPath: $(Agent.BuildDirectory)/CustomFirstKeyChain.keychain
    deleteCustomKeychain: true
    keychainPassword: $(iOSCertPassword)
  displayName: Install Development Certificate (Dev not Ad Hoc)
      
- task: InstallAppleCertificate@2
  inputs:
    certSecureFile: 'apple_dev_push_2022.p12' 
    certPwd: $(iOSCertPassword)
    keychain: 'custom' # Options: default, temp, custom
    customKeychainPath: $(Agent.BuildDirectory)/CustomSecondKeyChain.keychain
    deleteCustomKeychain: true
    keychainPassword: $(iOSCertPassword)
  displayName: Install Push Notification Certificate

- task: InstallAppleProvisioningProfile@1
  inputs:
    provisioningProfileLocation: 'secureFiles'
    provProfileSecureFile: 'My_App_Dev_not_Ad_Hoc_3_v2.mobileprovision'

【讨论】:

    猜你喜欢
    • 2019-02-28
    • 1970-01-01
    • 2020-06-30
    • 2015-06-28
    • 2019-09-22
    • 2015-12-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多