【发布时间】:2020-05-28 03:35:43
【问题描述】:
我正在尝试让 Azure Pipelines 与我们的 iOS 项目一起工作。我已经建立了一个更简单的项目,并且在更简单的项目上一切正常,但是我们的主应用程序使用 OneSignal 进行通知。这意味着有一个额外的目标和不同的配置文件。在阅读了我能找到的与配置文件以及如何配置 yaml 文件有关的所有内容后,我不知所措。
我能找到的最好的信息是here
我的 YAML 文件目前如下所示:
pool:
vmImage: 'macOS-10.14'
variables:
- group: ios-pipeline
- name: configuration
value: 'Release'
- name: sdk
value: 'iphoneos'
steps:
- task: InstallAppleCertificate@2
inputs:
certSecureFile: '$(p12FileName)'
certPwd: '$(p12Password)'
keychain: 'temp'
deleteCert: true
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(oneSignalProvProfile)'
- task: InstallAppleProvisioningProfile@1
inputs:
provisioningProfileLocation: 'secureFiles'
provProfileSecureFile: '$(provisioningProfile)'
- task: CocoaPods@0
inputs:
forceRepoUpdate: false
- task: Xcode@5
inputs:
actions: 'build'
xcWorkspacePath: '**/PROJECT_NAME.xcworkspace'
scheme: 'SCHEME_NAME'
packageApp: true
exportOptions: 'plist'
exportOptionsPlist: '**/DevOpsOptions.plist'
signingOption: 'auto'
teamId: 'OUR_TEAM_ID'
构建任务中的plist文件引用包含以下内容:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>provisioningProfiles</key>
<dict>
<key>APP_BUNDLE_ID.OneSignalNotificationServiceExtension</key>
<string>THE UUID FOR THIS PROFILE</string>
<key>APP_BUNDLE_ID</key>
<string>THE UUID FOR THIS PROFILE</string>
</dict>
<key>signingCertificate</key>
<string>iOS Distribution</string>
<key>signingStyle</key>
<string>manual</string>
<key>method</key>
<string>app-store</string>
<key>teamID</key>
<string>OUR_TEAM_ID</string>
</dict>
</plist>
当我尝试运行此配置时出现以下错误:
❌ error: No profiles for 'MAIN_APP_BUNDLE_ID' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'MAIN_APP_BUNDLE_ID'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'MAIN_APP_BUNDLE_ID' from project 'PROJECT_NAME')
❌ error: No profiles for 'OneSignalNotificationServiceExtension_BUNDLE_ID' were found: Xcode couldn't find any iOS App Development provisioning profiles matching 'OneSignalNotificationServiceExtension_BUNDLE_ID'. Automatic signing is disabled and unable to generate a profile. To enable automatic signing, pass -allowProvisioningUpdates to xcodebuild. (in target 'OneSignalNotificationServiceExtension_BUNDLE_ID' from project 'PROJECT_NAME')
我也尝试过使用手动签名选项:
- task: Xcode@5
inputs:
actions: 'build'
xcWorkspacePath: '**/WORKSPACE_NAME.xcworkspace'
scheme: 'SCHEME_NAME'
packageApp: true
signingOption: 'manual'
signingIdentity: '$(APPLE_CERTIFICATE_SIGNING_IDENTITY)'
provisioningProfileUuid: '$(APPLE_PROV_PROFILE_UUID)'
当我使用此构建任务时,我收到一条错误消息,指出没有为 OneSignalExtension 安装配置文件。我是在这里鞭打一匹死马还是有人设法让这个(或类似的东西)工作?感谢任何人都可以给我的任何帮助!
【问题讨论】:
-
嗨,有没有最小的可重复样本?在使用托管代理之前,请尝试它是否适用于您的 private agent 和您的本地环境。
-
我将尝试设置一个私人代理并在 GitHub 上创建一个最小示例。感谢您的建议 - 我会告诉您我的进展情况!
-
你好朋友,这个问题有更新吗?它在本地运行良好但只发生在管道中吗?
-
我创建了一个最小的项目来尝试重新创建问题,但我还没有设置私人代理(我需要做更多的阅读,因为我是 Azure 的新手)。不幸的是,我仍然没有找到问题的根源。我会坚持的!
-
如果此问题有任何更新,请随时告诉我 :) 这是否意味着它在 Xcode 本地运行良好,源文件 100% 相同?
标签: ios xcode azure-devops azure-pipelines