【问题标题】:Xcode continuous integration provisioning profile errorXcode 持续集成配置文件错误
【发布时间】:2013-11-07 11:55:38
【问题描述】:

我正在尝试在 Mavericks 的 Xcode 5 中设置持续集成。如果我有一个机器人进行新的干净项目构建,它会毫无错误地完成。如果我让机器人在我的实际项目上进行构建,我会收到以下错误:

未找到匹配的配置文件:您的构建设置指定了一个 带有 UUID 的配置文件 “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”,但是没有这样的配置 个人资料被发现。 CodeSign 错误:代码签名是必需的 SDK“iOS 7.0”中的产品类型“应用程序”

如果我在服务器机器上提取最新源并在服务器上构建/存档它,它会按预期工作。所有预期的证书和公钥都包含在钥匙串中。我试图更新项目中的所有配置文件设置并构建方案指向的目标。有没有人知道如何解决这个错误?

编辑: 破解打开项目文件并查看 UUID 后,我可以告诉 UUID 的配置文件它找不到确实存在。也许这是构建无法访问配置文件或钥匙串证书的某种权限问题?

【问题讨论】:

    标签: xcode5


    【解决方案1】:

    我遇到了同样的问题,终于成功了。

    首先,I added my server to my developer team 但我遇到了和你一样的错误。

    然后我将我的密钥从user keychain 复制到system keychain,如here 所示,但仍然不够。

    最后,我将配置文件从 ~/Library/MobileDevice/Provisioning\ Profiles/ 复制到 /Library/MobileDevice/Provisioning\ Profiles/(实际上我复制了所有 MobileDevice 目录,因为它不存在)。

    现在,我有一个有效的持续集成,为我提供了一个 ipa,我可以将它下载到我的 Mac 上或通过无线方式安装在我的设备上。

    我不知道为什么我必须这样做,但我希望它也对你有用。

    【讨论】:

    • 这里没有工作。但这确实救了我们:stackoverflow.com/a/11167851/76522
    • @iDou 有什么解释为什么这个副本 (cp -r ~/Library/MobileDevice/ /Library/MobileDevice/) 会成功吗?
    • 至少在我的设置中,“正确”的目标路径似乎是 /Library/Developer/XcodeServer/ProvisioningProfiles/ 而不是 /Library/MobileDevice/Provisioning\ Profiles/...
    • 在带有 Xcode Server 3.2.1 的 Xcode 6 中,路径可能已更改,如 @KaelinColclasure 在上一条评论中所述。最后我发现没有必要复制任何东西。只需正确设置 Xcode Server。请查看我的答案,如果这是一个解决方案,请告诉我:stackoverflow.com/a/25993995/300694
    • 这个解决方案在 Xcode 6 中对我有用,但我选择符号链接而不是复制文件夹:sudo ln -s ~/Library/MobileDevice/ /Library/MobileDevice
    【解决方案2】:

    自从切换到 Xcode 5 后,我遇到了同样的问题。我的解决方案不同。

    由于错误消息说“您的构建设置指定了具有 UUID xxxxxx 的配置文件”,我检查了包含我的构建设置的文件 (myproject.xcodeproj/projecjt.pbxproj)。

    在那里我找到了与该 UUID 完全相同的行。删除该行后(当然是先备份文件),一切都恢复正常了。

    【讨论】:

    • 真的很奇怪,但这也为我解决了问题!我认为它关于不指定显式 UUID(当您添加设备等时可能会更改)而是使用已经安装的任何开发人员或分发配置文件。
    • 谢谢,为我工作。但我没有编辑 .pbxproj 文件,而是通过单击 Project Navigator 中的项目并更改 Build Settings > Code Signing > Provisioning Profile 来更改 Xcode 5 中的设置。
    • 为我工作!无论我在 Xcode 中选择什么,它都不服从。所以我编辑了 .pbxproj 文件,它成功了!
    • 同理,Xcode 5 不会在不编辑项目文件的情况下删除 UUID。
    【解决方案3】:

    您好,我遇到了同样的问题,问题是我的登录钥匙串中有证书,而构建脚本正在系统钥匙串中查找。我还复制了系统密钥链中的证书,现在 Xcode 能够使用配置文件进行构建

    【讨论】:

      【解决方案4】:

      在搜索了如何解决这个问题之后,在我的键盘前花了 1 天时间,浏览了所有页面和如何解决这个问题的想法之后,我实际上发现了一些有趣的东西。

      我想到了一些事情(编辑 YOU_APP.xcodeproj)。所以我解决了这个问题:

      1. 转到您的项目文件夹
      2. 右键单击YOU_APP.xcodeproj并选择显示包内容
      3. 使用(例如 TextMate2 或类似的东西)编辑 project.pbxproj
      4. 现在注意。我找到了将显示此 UUID(错误的 UUID)并替换为我创建并已使用多次的所有内容。我换了13次。
      5. 完成。只需编译即可。

      您不会相信,但在花费了很多时间后它起作用了。 =)

      【讨论】:

      • 这对我有用。我建议大家在深入之前尝试这个简单的解决方案。
      【解决方案5】:

      过去几周我一直在网上搜索,试图通过 Jenkins 建立持续集成,当通过 OS X Server Bots 失败时,两者都因相同的问题而失败。

      将配置文件从“~/Library/MobileDevice/Provisioning Profiles/”复制到“/Library/MobileDevice/Provisioning Profiles/”是唯一的关键。

      只需注意两点:-

      1-如果您使用的是 OS X Lion,请注意您的 ~/Library 文件夹将在 Finder 中不出现,因为它被设置为 invisible;请参考http://www.macworld.com/article/1161156/view_library_folder_in_lion.html查看。

      2-不要自己携带配置文件(例如,从 MemberCenter 下载它,...)只需复制您的 ~/Library/... 中的配置文件即可;它们的命名不同;它们都由 UUID 命名,例如 3D19E524-9E2A-45C2-942C-F30AC3ACF0CC*.mobileprovision*

      【讨论】:

        【解决方案6】:

        我遇到了同样的错误,以上答案都不适合我。我引用了 This blog 并将我的配置文件从 ~/Library/MobileDevice/Provisioning Profiles/ 目录复制到 /Library/Server/Xcode/Data/ProvisioningProfiles 目录,但我仍然遇到同样的错误。

        所以我打开了 Xcode 并将我的配置文件与配置门户同步。如果您不熟悉,请转到 Preferences -> Accounts -> ,突出显示开发人员团队并单击“查看详细信息”。然后在“Signing Identities”中突出显示分发代码签名身份,然后单击左下角的刷新按钮。我是从服务器上执行此操作的,但是,我相信您可以在开发 Mac 上刷新您的配置文件,然后将它们复制到服务器。

        此过程会刷新 ~/Library/MobileDevice/Provisioning Profiles/ 目录中的配置文件。然后,我重新尝试从 ~/Library/MobileDevice/Provisioning Profiles/ 复制过程到 /Library/Server/Xcode/Data/ProvisioningProfiles,Xcode 机器人在下一次集成期间成功找到了配置文件。

        作为说明,我尝试退出 Xcode 服务的开发人员团队并重新登录,但这对我来说特别不起作用。从理论上讲,这应该可以完成同样的事情。

        就像其他人提到的那样,我会复制所有配置文件,而不是只查找您正在寻找的临时配置文件。原因可能是,就像我的情况一样,Xcode bot 试图使用开发配置文件存档,而“开发配置文件”比“4F96F173-7EBE-4892-B283-52489DE2F409”更容易调试。

        如果还是不行,我建议按照上面的链接,完成证书流程;您从开发人员计算机中获取证书并将其复制到服务器上 Keychain Access 应用程序的系统文件夹中。

        只是添加一个注释,因为这也让我很头疼,Xcode 机器人的模拟器可能位于 /var/_xcstest/Library/Application Support/iPhone Simulator/。那是我在我们的服务器上找到它的地方,但我怀疑对其他人来说会有所不同。我必须找到它,因为 Localizable.strings 文件没有在模拟器中更新并且测试失败。希望这会有所帮助。

        【讨论】:

          【解决方案7】:

          实际上,该解决方案比复制配置文件等简单得多。您需要做的就是正确设置 Xcode Server。

          我正在使用 Xcode 6.0.1 (6A317) 和 Xcode Server 3.2.1 (13S5179)。虽然我认为 Xcode Server 会使用我安装的 Xcode 中的配置文件,但事实并非如此。它在/Library/Developer/XcodeServer/ProvisioningProfiles/ 有自己的文件夹,而Xcode 将使用~/Library/MobileDevice/Provisioning\ Profiles/

          所以解决办法是: 将您的开发者帐户添加到 Xcode Server。然后它将自动下载所有必要的配置文件,以便您的 CI 构建最终可以访问配置文件。您可以通过单击 Xcode Server 的 Builds 部分中的 Edit... 按钮添加一个帐户,如屏幕截图所示。

          【讨论】:

          • 我已经按照您的描述设置了我的服务器,但仍然发现它没有选择添加到团队中的新配置文件。并且重新添加团队似乎也没有解决问题......唯一让我走得更远的是手动复制文件,如所述 [stackoverflow.com/questions/19639398/…
          • 这似乎是 Xcode Server 中的一个错误。如果我不能在接下来的几天内解决这个问题,我将提交一份雷达报告。
          【解决方案8】:

          我遇到了同样的问题:我已将配置文件添加到 /Library/Server/Xcode/Data/ProvisioningProfiles 但出现此错误。解决方案是更改配置文件的权限,以便系统中的每个人都可以阅读它们。

          【讨论】:

            【解决方案9】:

            我在这里尝试了所有答案,然后坐下来思考这不可能这么难。再次搜索,发现了这个Apple OS X Server (Xcode CI service) can't find provisioning profiles

            我需要使用正确的团队配置文件。此页面还链接到一个很好的教程。

            【讨论】:

              【解决方案10】:

              删除整个 ~/Library/Developer/XCode 文件夹应该可以解决缓存问题。然后 xcode 应该可以正确找到位于 ~/Library/MobileDevice/Provisioning Profiles/ 中的配置文件。

              【讨论】:

                【解决方案11】:

                @amrsd 谢谢。我现在看到很多人都成功地从“~/Library/MobileDevice”中的“Provisioning Profiles”文件夹中手动复制了配置文件(包括我自己)。如果这也是您要采用的路线,请退出复制+粘贴并符号链接!

                $ sudo -i

                # mkdir /Library/MobileDevice; ln -s /Users/myuser/Library/MobileDevice/Provisioning\ Profiles/ /Library/MobileDevice/ -- 其中 myuser 是您的用户名。

                【讨论】:

                  猜你喜欢
                  • 1970-01-01
                  • 2023-03-07
                  • 1970-01-01
                  • 1970-01-01
                  • 1970-01-01
                  • 2015-02-10
                  • 1970-01-01
                  • 1970-01-01
                  • 2010-09-17
                  相关资源
                  最近更新 更多