36

I am trying to setup continuous integration in Xcode 5 on Mavericks. If I have a bot do a new clean project build, it completes with no errors. If I have the bot do the build on my actual project, I get the following error:

No matching provisioning profile found: Your build settings specify a provisioning profile with the UUID “XXXXXXXX-XXXX-XXXX-XXXX-XXXXXXXXXXXX”, however, no such provisioning profile was found. CodeSign error: code signing is required for product type 'Application' in SDK 'iOS 7.0'

If I pull latest source on the server machine and build/archive it on the server it works as expected. All expected certificates and public keys are included in keychain. I have tried to update all provisioning profile settings in the project and build target the scheme points at. Does anyone have any ideas how to resolve this error?

EDIT: After cracking open the project file and looking at the UUID, from what I can tell the UUID for the provisioning file it can't find does exist. Perhaps this is some kind of permission issue with the build not having access to the profile or keychain certificate?

4

11 回答 11

63

我遇到了同样的问题,最后设法让它工作。

首先,我将我的服务器添加到我的开发团队,但我遇到了和你一样的错误。

然后我将我的密钥从复制user keychain此处system keychain,但仍然不够。

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

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

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

于 2013-10-28T23:40:28.997 回答
23

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

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

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

于 2014-01-16T22:43:19.390 回答
4

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

于 2014-10-03T22:05:01.727 回答
3

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

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

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

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

于 2014-10-21T13:05:17.220 回答
1

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

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

只需注意两点:-

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

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

于 2013-12-22T20:19:03.867 回答
1

我遇到了同样的错误,以上答案都不适合我。我引用了这个博客并将我的配置文件从 ~/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 服务的开发人员团队并重新登录,但这对我来说特别不起作用。从理论上讲,这应该完成同样的事情。

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

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

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

于 2014-03-13T14:30:42.220 回答
1

实际上,该解决方案比复制配置文件等简单得多。您需要做的就是正确设置 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 部分中的该Edit...按钮添加一个帐户,如屏幕截图所示。Builds

在此处输入图像描述

于 2014-09-23T11:31:46.930 回答
0

我在这里尝试了所有答案,然后坐下来思考这不可能这么难。再次搜索,发现这个Apple OS X Server(Xcode CI 服务)找不到配置文件

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

于 2014-02-04T22:58:54.117 回答
0

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

于 2013-12-24T17:14:40.797 回答
0

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

于 2014-09-16T10:13:44.330 回答
0

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

$ sudo -i

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

于 2015-12-07T20:47:18.827 回答