【问题标题】:Xcode attempted to locate or generate matching signing assets and failed to do soXcode 试图定位或生成匹配的签名资产,但未能这样做
【发布时间】:2014-11-12 02:54:40
【问题描述】:

因此,我尝试使用现有的配置文件(之前有效)和 Xcode 6.0.1 在 Mavericks 上创建临时构建,但在尝试导出此存档后,我不断收到以下错误:

我是否需要重新创建我的证书和配置文件,还是有更好的解决方案?谢谢!

【问题讨论】:

  • 这是一个不同的错误。正如我在问题中提到的那样,我正在使用 xcode 6.0.1。
  • 在哪里可以解决这个问题?
  • 尝试重新创建“生产”证书和新的配置文件。

标签: ios xcode xcode6 provisioning-profile adhoc


【解决方案1】:

作为“团队成员”的角色,我也面临着这个问题。 'You are not allowed to perform this operation' 警告让我相信 XCode 更严格地执行此处定义的角色:https://developer.apple.com/programs/roles/

即使我可以访问签名资产(证书和配置文件),XCode 也不允许我指定它们。尝试将您的角色升级为团队管理员。

2014 年 9 月 29 日更新: 经过广泛的研究,我发现可以使用命令行中的 xcodebuild 生成 .ipa,甚至可以使用以下命令作为“团队成员”角色:

xcodebuild -exportArchive -archivePath $projectname.xcarchive -exportPath $projectname -exportFormat ipa -exportProvisioningProfile "Provisioning Profile Name"

感谢1

注意:正如链接文章中所指出的,“Provisioning Profile Name”是证书名称字段中指定的名称(可从 developer.apple.com 查看)。

您可以通过将调用包含到项目构建脚本中来在 xcode 中自动化该过程。

【讨论】:

  • 哦,哇,这个技巧(使用命令行)刚刚保存了我的培根,非常感谢!是的,只需复制并粘贴出现在开发门户中的 prov 配置文件名称。不要使用该导出配置文件的文件名。
  • 非常感谢分享:)
  • 这太棒了。当用户从服务器安装它时,我不确定失败的验证是否会导致问题。仍然是对问题最满意的答案。
  • 在哪里可以获得 .xarchive 文件?我已经归档了我的项目,但似乎在我的项目文件夹中找不到任何文件
  • 要查找 .xcarchive,请右键单击“管理器”窗口中的存档并选择“在 Finder 中显示”。将文件拖入终端窗口,快速获取完整路径字符串。
【解决方案2】:

尝试打开您的控制台并转到您的 Xcode 项目文件夹,然后键入以下命令:

清理你的项目

xcodebuild clean -project YourProjectName.xcodeproj -configuration Release -alltargets

构建和归档您的应用

xcodebuild archive -project YourProjectName.xcodeproj -scheme YourSchemaName -archivePath YourProjectName.xcarchive

您可以简单地在 Xcode > 产品 > 方案 > 编辑方案...

最后创建您的应用程序 .ipa 文件

xcodebuild -exportArchive -archivePath YourProjectName.xcarchive -exportPath YourProjectName -exportFormat ipa -exportProvisioningProfile 'Your Provisioning Profile Name'

要查找您的配置文件名称,请登录 Apple 开发者会员中心并转到 Certificates, Identifiers & Profiles,然后点击 Provisioning Profiles 适用于 iOS 应用程序。在那里您会找到您的配置文件名称。

如果不起作用,请尝试将单引号替换为双引号( ' 与 " )。

您将在 Xcode 项目文件夹中找到 .ipa 文件。

之后,您将能够在 iTunes 中打开您的 .ipa 文件并安装到您的 iOS 设备上。

希望对你有帮助!

【讨论】:

  • 令人沮丧的是,您通过命令行成功创建了 IPA 文件(以上对我来说非常完美!),但是 XCode 让您感到困惑的是一条没有任何意义的错误消息。
  • IPA会损坏还是OK?
  • 这应该有更多的支持,因为它工作得很好,谢谢你!
  • "--- xcodebuild: WARNING: -exportArchive without -exportOptionsPlist is deprecated"
【解决方案3】:

发生了什么:Xcode 需要使用有效证书对构建进行签名。它正试图找到一个没有运气的人。为什么?因为在 Xcode6 之前,您可以使用您的开发人员证书签署 AdHoc 构建。你能够做到,因为你有一个私钥。但现在您需要使用 Production 证书签署 Ad Hoc 构建。而且你没有它的私钥。

因此,从 Xcode6 (https://stackoverflow.com/a/26061067/1918302) 构建成为可能所需的步骤:

  1. 为您的生产证书获取私钥。 (您需要从它拥有的 Mac 钥匙串中导出它并导入到您的钥匙串中,或者撤销当前并创建新的生产证书。在创建过程中您会得到一个。从上面的链接引用这里:

    注意:吊销企业分发证书会使使用该证书签名和部署的所有应用失效 证书 (official info))。

  2. 创建特殊的 XC Ad Hoc:Distribution 配置文件(如果您在 developer.apple.com 上的团队中具有管理员角色 - Xcode 将为您执行此操作)。

  3. 在项目的目标中设置配置文件 -> 构建设置 -> 代码签名到在步骤 2 中创建的内容。

完成!

或者,如果以上这些都无法实现,您可以使用命令行工具进行构建:https://stackoverflow.com/a/25979784/1918302。 但这在我看来是安全漏洞,我不相信这会持续很长时间。

【讨论】:

  • 我根据这个答案将我的生产证书添加到了钥匙串中,并且能够再次签名。谢谢。
  • 酷,很高兴这有帮助。
【解决方案4】:

我们能够通过简单地让其中一位管理员从开发中心下载“XC Ad Hoc: Distribution”配置文件,然后将其发送给想要构建的“团队成员”并让他来解决这个问题手动导入。由于他已经拥有证书,这就是他能够进行构建并停止出现此错误所需的全部内容。此处的现有答案是正确的,但对于我们许多人来说,这是获得最后一块拼图的低摩擦方式。

总之,您需要此配置文件在您的钥匙串中带有私钥的证书。

【讨论】:

  • 对我来说恰恰相反。我有分发配置文件,但我需要分发证书,以便我可以签署应用程序以上传到 App Store。检查我的钥匙串,我发现我丢失了分发私钥,所以我有人将它发送给我,这解决了 OP 的原始错误消息。
【解决方案5】:

对我来说,结果是我没有按照this answer 设置项目的配置文件属性。

【讨论】:

    【解决方案6】:

    我的情况是,问题出在 App ID 上。当然,该应用程序确实存在于我的会员中心帐户中。问题出在“功能”窗格中。一些功能没有解决问题,但构建成功。这导致了我在会员中心的 App ID 和 Xcode 的功能设置不同的情况。

    消除这种不和谐已经解决了我的问题。 如果您有类似的问题,请检查两次。

    【讨论】:

      【解决方案7】:

      您必须在 Xcode->preferences->account 中定义您的帐户 好像你定义了一个不允许访问IOS开发者账号的appleId。

      尝试在https://developer.apple.com/devcenter/ios/index.action 中与该用户签名,并查看该用户是否被允许加入 IOS 开发者计划。

      如果您已使用 iTunes 连接进行签名,则可能会发生这种情况。它们是不同的帐户。

      我希望这会有所帮助!

      【讨论】:

      • mmmm 你签的是什么角色?开发者?
      • 是的,不是管理员。但是在我使用管理员帐户登录后,我可以同时从管理员和我的帐户登录。奇怪的东西……
      • 尝试用这个来修复 xcode:github.com/thecodepath/ios_guides/wiki/Fixing-Xcode 在发生奇怪行为时非常有用。
      【解决方案8】:

      您的分布式帐户与团队不匹配。

      您必须在 xcodeproj->Identity->Team ->Add an Account 中定义您的帐户

      【讨论】:

        【解决方案9】:

        我也收到此错误,因为我正在构建的机器的开发人员证书已过期。

        即使在续订​​该证书后,我也无法导出 App Store 版本的构建。 即使按照已接受答案中的说明并将该开发人员帐户升级为管理员也是如此。

        事实证明,由于存档是在开发人员证书过期时创建的,因此开发人员无法使用分发配置文件进行协同设计。 在更新开发者证书后,我必须重新创建存档,以允许该机器使用分发证书(已安装且以前工作),以允许对新存档进行代码签名并上传到应用商店。

        分享以防其他人遇到这种情况。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2014-11-09
          • 1970-01-01
          • 2020-09-08
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多