菜鸟教程小白 发表于 2022-12-13 04:57:01

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


                                            <p><p>我是 DevOps 的新手,所以如果我错过了一些基本的东西,请放轻松:)</p>
<p>我在 Azure Pipelines 中使用以下内容:使用 Xcode 构建代理托管的 MacOS(Xcode 版本 5.142.0)</p>
<p>我刚刚开始尝试为使用多个配置文件的基于 Xcode 的项目设置管道。在我的场景中,我的应用中有以下配置文件:</p>
<ul>
<li>意图</li>
<li>ItentsUI</li>
<li>小部件</li>
<li>应用</li>
</ul>
<p>我已按照此处的说明设置证书和配置文件<strong>(尽管我的项目使用自动签名)</strong>:
<a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/apps/mobile/app-signing?view=vsts&amp;tabs=apple-install-during-build" rel="noreferrer noopener nofollow">https://learn.microsoft.com/en-us/azure/devops/pipelines/apps/mobile/app-signing?view=vsts&amp;tabs=apple-install-during-build</a> </p>
<p>这些已正确安装到托管构建代理(没有错误),并且构建正在完美进行,直到签名。</p>
<p>在签名期间,似乎没有一个目标可以找到他们的配置文件(使用“手动”和“自动”分配时)。</p>
<p>这是日志中运行的内容:</p>
<p><code>/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_STYLE=Manual PROVISIONING_PROFILE= PROVISIONING_PROFILE_SPECIFIER= |/usr/local/bin/xcpretty --no-color</code></p>
<p>然后,当涉及到归档时,每个方案都会发生以下情况:</p>
<p><code>错误:“xxx Today Widget”需要具有推送通知和应用程序组功能的配置文件。在项目编辑器中为“发布”构建配置选择一个配置文件。 (在目标“xxx Today Widget”中)</code></p>
<p>几个问题:</p>
<ol>
<li><p>有没有人可以指点我的更新指南?这似乎是一个常见的用例,我显然遗漏了一些东西。</p>
</li>
<li><p>在同一版本中归档和签署多个方案时,是否有办法强制将哪个配置文件用于哪个方案?</p>
</li>
<li><p>自动签名是管道中的一个选项吗?</p>
</li>
</ol>
<p>为了完整起见,我在这里看到了类似的问题:<a href="https://github.com/Microsoft/azure-pipelines-tasks/issues/964" rel="noreferrer noopener nofollow">https://github.com/Microsoft/azure-pipelines-tasks/issues/964</a>但它已经关闭了两年多。</p></p>
                                    <br><hr><h1><strong>Best Answer-推荐答案</ strong></h1><br>
                                            <p><p>以下是我们如何构建具有多个配置文件以在 Azure DevOps 中工作的 iOS 应用。</p>

<ul>
<li>确保您拥有 <a href="https://marketplace.visualstudio.com/items?itemName=ms-vsclient.app-store&amp;targetId=a575c211-7cc4-4523-939f-a1691bf34fa2&amp;utm_source=vstsproduct&amp;utm_medium=ExtHubManageList" rel="noreferrer noopener nofollow">Apple App Store Azure DevOps extension</a>由 Microsoft 编写并安装在您的帐户中。</li>
<li>使用多个 <a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/utility/install-apple-provisioning-profile?view=azure-devops" rel="noreferrer noopener nofollow">Install Apple Provisioning Profile</a> 安装所需的所有配置文件任务</li>
<li>添加 <a href="https://learn.microsoft.com/en-us/azure/devops/pipelines/tasks/build/xcode-build?view=tfs-2018&amp;viewFallbackFrom=vsts" rel="noreferrer noopener nofollow">Xcode build task</a>并使用您的工作区/项目设置对其进行配置</li>
<li>将“签名样式”设置为“自动签名”,并在“签名和配置”部分下的“团队 ID”字段中提供您的团队 ID</li>
<li>创建一个 .plist 文件,将其配置如下,并将其放在某处(您的代码存储库、安全文件等)。此示例是一个 watch 应用程序,但可以是需要多个配置文件的任何场景。您可以通过在文本编辑器中打开配置文件并查找“UUID”键来找到配置文件的 UUID。</li>
</ul>

<pre><code>    &lt;?xml version=&#34;1.0&#34; encoding=&#34;UTF-8&#34;?&gt;
    &lt;!DOCTYPE plist PUBLIC &#34;-//Apple//DTD PLIST 1.0//EN&#34; &#34;http://www.apple.com/DTDs/PropertyList-1.0.dtd&#34;&gt;
    &lt;plist version=&#34;1.0&#34;&gt;
    &lt;dict&gt;
      &lt;key&gt;provisioningProfiles&lt;/key&gt;
      &lt;dict&gt;
            &lt;key&gt;YOUR_BUNDLE_ID.watchkitapp.watchkitextension&lt;/key&gt;
            &lt;string&gt;UUID_OF_ASSOCIATED_PROVISIONING_PROFILE&lt;/string&gt;
            &lt;key&gt;YOUR_BUNDLE_ID.watchkitapp&lt;/key&gt;
            &lt;string&gt;UUID_OF_ASSOCIATED_PROVISIONING_PROFILE&lt;/string&gt;
            &lt;key&gt;YOUR_BUNDLE_ID&lt;/key&gt;
            &lt;string&gt;UUID_OF_ASSOCIATED_PROVISIONING_PROFILE&lt;/string&gt;
      &lt;/dict&gt;
      &lt;key&gt;signingCertificate&lt;/key&gt;
      &lt;string&gt;iOS Distribution&lt;/string&gt;
      &lt;key&gt;signingStyle&lt;/key&gt;
      &lt;string&gt;manual&lt;/string&gt;
      &lt;key&gt;method&lt;/key&gt;
      &lt;string&gt;app-store&lt;/string&gt;
      &lt;key&gt;teamID&lt;/key&gt;
      &lt;string&gt;YOUR_TEAM_ID&lt;/string&gt;
    &lt;/dict&gt;
    &lt;/plist&gt;
</code></pre>

<ul>
<li>在“包选项”部分下,在“导出选项”字段中指定“Plist”,并提供您在“导出选项 plist”字段中创建的 .plist 的路径</li>
</ul></p>
                                   
                                                <p style="font-size: 20px;">关于xcode - Azure Devops Pipelines - 具有多个配置文件的 Xcode 项目无法存档和签名,我们在Stack Overflow上找到一个类似的问题:
                                                        <a href="https://stackoverflow.com/questions/53225705/" rel="noreferrer noopener nofollow" style="color: red;">
                                                                https://stackoverflow.com/questions/53225705/
                                                        </a>
                                                </p>
                                       
页: [1]
查看完整版本: xcode - Azure Devops Pipelines - 具有多个配置文件的 Xcode 项目无法存档和签名