推送通知在使用Azure Pipeline创建的iOS版本中不起作用



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

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'

我终于使用.Net Maui的Firebase.plugin完成了这项工作。我不知道我发布的安装两个苹果证书的代码是否修复了它。我已经用我构建的APN服务器进行了测试。Firebase控制台也可以工作。

如果您在iOS上构建Firebase.plugin时遇到问题,请查看此问题。https://github.com/TobiasBuchholz/Plugin.Firebase/issues/51

以下是我的操作方法。

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

最新更新