Azure Devops管道-具有多个配置文件的Xcode项目无法存档和签名

Azure Devops管道-具有多个配置文件的Xcode项目无法存档和签名,xcode,azure-devops,azure-pipelines,Xcode,Azure Devops,Azure Pipelines,我是DevOps的新手,所以如果我错过了一些基本的东西,请对我宽容一些:) 我在Azure管道中使用以下内容:带有Xcode构建代理的托管MacOS(Xcode版本5.142.0) 我刚刚开始尝试为一个基于Xcode的项目建立一个管道,该项目使用多个配置文件。在我的场景中,我的应用程序中有以下配置文件: 意图 ItentsUI 小部件 应用程序 我已经按照此处设置证书和配置文件的说明进行了操作(尽管我的项目使用自动签名): 这些都已正确安装到托管的生成代理(无错误),并且在签名之前,生成将

我是DevOps的新手,所以如果我错过了一些基本的东西,请对我宽容一些:)

我在Azure管道中使用以下内容:带有Xcode构建代理的托管MacOS(Xcode版本5.142.0)

我刚刚开始尝试为一个基于Xcode的项目建立一个管道,该项目使用多个配置文件。在我的场景中,我的应用程序中有以下配置文件:

  • 意图
  • ItentsUI
  • 小部件
  • 应用程序
我已经按照此处设置证书和配置文件的说明进行了操作(尽管我的项目使用自动签名)

这些都已正确安装到托管的生成代理(无错误),并且在签名之前,生成将正常进行

在签名期间,似乎没有一个目标可以找到他们的配置文件(在使用“手动”和“自动”分配时)

以下是日志中运行的内容:

[命令]/usr/bin/xcodebuild-workspace/Users/vsts/agent/2.142.1/work/1/s/*MYAPP**.xcworkspace-scheme**MYAPP**archive-sdk-iphoneos-configuration-Release-archivePath/Users/vsts/agent/2.142.1/work/1/s/**MYAPP**CODE**SIGN\u STYLE=手动配置文件=配置文件\配置文件\说明符=|/usr/local/bin/xcbreatty--无颜色

随后,当涉及到归档时,每个方案都会出现以下情况:

错误:“xxx今日小部件”需要具有推送通知和应用程序组功能的配置文件。在项目编辑器中为“发布”生成配置选择一个配置文件。(在目标“xxx今日小部件”中)

有几个问题:

  • 有更新过的指南吗?这似乎是一个常见的用例,我显然遗漏了一些东西

  • 或者,在同一版本中归档和签署多个方案时,是否有方法强制将哪个配置文件用于哪个方案

  • 自动签名是管道中的一个选项吗


  • 为了完整起见,我在这里看到了类似的问题:但它已经关闭两年多了。

    仔细检查后发现,我使用的开发证书是错误的(我的Mac上有一些)。我把它换成了合适的版本,问题就消失了

    我现在可以成功地构建、存档和签名

    希望这对某人有所帮助


    Andrew

    以下是我们如何构建一个具有多个配置文件的iOS应用程序,以便在Azure DevOps中工作

    • 确保您的帐户中安装了Microsoft编写的
    • 使用多个任务安装所需的所有资源调配配置文件
    • 添加并使用您的工作区/项目设置对其进行配置
    • 将“签名样式”设置为“自动签名”,并在“签名和资源调配”部分的“团队ID”字段中提供您的团队ID
    • 创建一个.plist文件,将其配置为如下所示,并将其放置在某个位置(代码存储库、安全文件等)。此示例是一个watch应用程序,但可能是需要多个配置文件的任何场景。您可以通过在文本编辑器中打开配置文件并查找“UUID”键来找到该配置文件的UUID
    
    供应文件
    您的\u BUNDLE\u ID.watchkitapp.watchkitpension
    UUID\u的\u关联的\u配置\u配置文件
    您的\u BUNDLE\u ID.watchkitapp
    UUID\u的\u关联的\u配置\u配置文件
    您的\u BUNDLE\u ID
    UUID\u的\u关联的\u配置\u配置文件
    签约证书
    iOS分发
    签约风格
    手册
    方法
    应用商店
    teamID
    您的团队ID
    
    • 在“包选项”部分下,在“导出选项”字段中指定“Plist”,并提供在“导出选项Plist”字段中创建的.Plist的路径

    确保正确定位项目的
    .xcworkspace
    文件,而不是让它默认为
    .xcodeproj/Project.xcworkspace
    。这件事困扰了我两天的测试

    例如:

    - task: Xcode@5
      inputs:
        sdk: '$(sdk)'
        scheme: '$(scheme)'
        configuration: '$(configuration)'
        xcWorkspacePath: '**/<Project Name>.xcworkspace' # Make sure this line is here
        xcodeVersion: 'default' # Options: default, 10, 9, 8, specifyPath
        exportPath: '$(agent.buildDirectory)/output/$(sdk)/$(configuration)'
    
    -任务:Xcode@5
    投入:
    sdk:“$(sdk)”
    方案:“$(方案)”
    配置:“$(配置)”
    xcWorkspacePath:“**/.xcworkspace”#确保此行在此处
    xcodeVersion:'default'#选项:default、10、9、8、specifyPath
    exportPath:“$(agent.buildDirectory)/output/$(sdk)/$(配置)”
    
    嗨,安德鲁,我也遇到了类似的问题,我想知道是否可以获得有关您的设置的更多信息。您只有一个Xcode任务吗?对于Xcode任务,您是否将签名样式设置为自动或手动?对于您需要的每个配置文件,您是否都有一个安装Apple provisioning profile任务(在您的案例中可能有四个),或者您只是在build agent上手动安装了所有配置文件?任何帮助都将不胜感激。@cmour我有一个Xcode任务,签名样式设置为“项目默认值”。我需要安装应用程序使用的资源调配配置文件。是(在默认mac build agent上使用安全存储的临时密钥链)。谢谢@Andrew Lombard。您是使用Azure Devops中的“安装Apple资源调配配置文件”任务安装资源调配配置文件,还是仅在构建计算机上手动安装配置文件?我正在Azure Devops中使用此任务,但构建无法成功找到配置文件。@cmour-我正在使用“安装Apple配置文件”步骤,但您需要在“安全文件”中设置配置文件,以便管道可以在构建过程中获取它们。如果你需要更多的信息,请告诉我。我没法让它工作。我得到的结果是:“未找到“”的配置文件:Xcode找不到任何iOS应用程序开发配置文件。”
    - task: Xcode@5
      inputs:
        sdk: '$(sdk)'
        scheme: '$(scheme)'
        configuration: '$(configuration)'
        xcWorkspacePath: '**/<Project Name>.xcworkspace' # Make sure this line is here
        xcodeVersion: 'default' # Options: default, 10, 9, 8, specifyPath
        exportPath: '$(agent.buildDirectory)/output/$(sdk)/$(configuration)'