【问题标题】:Permission Denied when running Mac app after upgrading to XCode 4.4升级到 XCode 4.4 后运行 Mac 应用程序时权限被拒绝
【发布时间】:2012-08-06 06:48:30
【问题描述】:

在我更新到 XCode 4.4 和 Mountain Lion 之前,我有一个可以工作的 Mac 应用程序。现在应用程序仍在编译,但当我尝试运行它时,我收到一条错误消息。

error: failed to launch '/Users/username/James/mac/Browser/trunk/Browser/DerivedData/Browser/Build/Products/Debug/Browser.app/Contents/MacOS/Browser' -- Permission denied*

谁能解释我为什么会得到这个?

【问题讨论】:

  • 尝试在 Xcode 中进行完整的“清理”(在“产品”菜单下),看看是否能解决您的问题。
  • 迈克尔。我试过一个干净的。没有这样的运气。谢谢。
  • 感谢您的尝试。让我们再做一件事:当您丢弃“Derived Data”文件夹(应该与“Clean”文件夹几乎完全相同)时会发生什么?当您进行另一个构建时,权限可能是正确的。
  • 我删除了它,XCode 又添加了它,我也遇到了同样的问题。该文件的权限默认设置为 -rwxr-xr-x。即使我将整个 DerivedData 文件夹设置为完全权限,我仍然会收到错误消息。
  • 我取消选中“代码签名应用程序”并且它运行。所以现在我需要弄清楚是什么导致了这个开始失败。

标签: xcode macos osx-mountain-lion xcode4.4


【解决方案1】:

简短的回答是,当您收到此错误消息时,构建的应用程序中没有有效的开发配置文件。

仅此一项并不能解决您的问题!造成这种情况的常见原因有很多:

  • 您已移至新机器,但尚未在 Xcode 中安装配置文件。另见下文
  • 您已移至新计算机,但该计算机未处于开发人员模式或未添加到配置文件中

对于这两种情况,让 Xcode 重新生成它,或者在会员中心自己做...您可以通过运行控制台和过滤 taskgated 来验证原因与您的配置文件有关,您可以在其中查看哪些配置它尝试使用的配置文件(它会先提取嵌入在应用程序中的配置文件,然后尝试从 Mac 上安装的任何配置文件中提取)。

确保检查您的构建设置,确保调试构建使用了正确的设置。通常可以解决的简单步骤(XCode 5)

  1. 转到会员中心并创建新的开发资料
  2. 选择应用和证书
  3. 验证您正在使用的机器是否在要包含在配置文件中的机器列表中,勾选该框
  4. 生成证书
  5. 下载它,然后将它拖到文档中的 Xcode 图标上
  6. 转到目标中的“构建设置”选项卡并将配置文件设置为您刚刚下载的配置文件

    • 您没有正确配置 iCloud/APN/GameCenter 权利。

【讨论】:

    【解决方案2】:

    我确信这早就被解决了,但我的权限被拒绝了,结果我不得不将我的笔记本电脑添加到配置文件中。我最近重新映像了我的机器,因此配置文件不再对那台机器有效。在我启用 iCloud 之前它运行良好。这就是权限被拒绝的开始。

    检查 XCODE 中的管理器,单击设备选项卡,然后单击左侧的机器。检查它显示的 UDID 是否列在您的 mac 开发人员门户的设备部分中。

    【讨论】:

      【解决方案3】:

      在墙上抛出一些想法:

      • 您是否在外部磁盘上构建?一些驱动器获得特殊权限(例如“忽略权限”复选框),或者可能以一种奇怪的方式设置了 ACL。尝试在内部启动盘上构建?

      • 您在进行代码签名吗?您是否尝试过将其关闭,以查看代码签名或权利中是否存在错误?新的协同设计工具已经不是第一次出现错误了。

      • 您是否尝试过使用 xcode-select 并更新已安装的任何命令行工具以确保它们都与使用的 Xcode 版本相匹配?

      • 您是否有任何 shell 脚本构建阶段或类似内容可能会在应用程序签名后对其进行编辑,从而破坏签名?

      • 您是否检查过您的硬盘是否已满或路径中某处是否存在(损坏的?)符号链接,或已卸载的卷名?

      【讨论】:

      • 我的主文件夹在另一个卷上,但“忽略权限”没有打开。我还没有从全启动磁盘帐户尝试过。 • 只有在启用了 iCloud 或沙盒的情况下启用代码签名时才会出现问题——请参阅我的回答。 • 这是使用 Xcode 本身构建的,因此 CLI 工具应该不是问题。 • 好主意!但是不,没有标准五之外的阶段。 • 主文件夹磁盘曾一度接近满,但现在远未满,问题仍然存在。 AFAIK,没有破烂的路径。
      【解决方案4】:

      由于缺乏更好的描述,该设备将该应用视为“从网络下载的未经授权的应用”。进入设置>安全和隐私,在底部,允许从任何地方下载应用程序。

      【讨论】:

      • 我已经设置好了(这是 Lion 的默认设置),但问题仍然存在。
      • 这实际上不是 Lion 上的默认设置
      • 这是 Lion 的默认设置。这是 10.7.5 上一个全新用户帐户的屏幕截图:i.imgur.com/dyDVN.png
      • 对不起,我指的是山狮
      【解决方案5】:

      打开管理器,确保你的 mac 处于开发者模式。

      同时检查您的网守设置。

      【讨论】:

      • GateKeeper 在 Lion 上默认是关闭的(即使在它存在的版本上——从 10.7.4 或 10.7.5 开始)。我的 Mac 没有处于开发者模式,但我打开它并没有帮助。
      【解决方案6】:

      这是由权利引起的(并且可能是因为它的证书类型错误)。

      • 如果您启用了沙盒,并尝试使用开发人员 ID 证书进行签名,您的应用程序将在启动时崩溃(从 Lion 开始,我还没有在 Mountain Lion 上尝试过)。
      • 如果您启用了 iCloud,并尝试使用 Developer ID 证书进行签名,您的应用程序将根本无法启动 - 在 Xcode 中,您会在问题中收到错误消息,而在 Finder 中,应用程序将永远启动这么简单,然后被 SIGKILLed。

      据推测,如果您拥有 Mac 开发人员计划会员资格,则可以使用一种正确的证书来签署应用程序,以便能够使用沙盒甚至 iCloud 进行测试。开发者 ID 证书不是那种证书。

      (无论如何,这解决了 我的 问题。丹尼斯,你要签署什么样的证书?)

      【讨论】:

      • 我也遇到了这个问题。我尝试使用我的 iOS 开发人员 ID 对 Mac OSX 应用程序进行代码签名。它不喜欢它。现在我想我得为 Mac 开发者支付 99 美元来测试我的 iCloud 东西......ack
      • 很遗憾,您无法在 App Store 以外的应用中使用 iCloud。 (citation)
      • @cobbal:我至少应该能够运行该应用程序。除此之外,没有任何证书可以用来在我自己的机器上测试我自己的应用程序中的 iCloud 支持吗?
      • @PeterHosey 我对此一无所知;我开发 iOS 应用程序的时间太长了。我怀疑 Mac 上的情况是从 iOS 借来的,并且您必须拥有付费证书(例如允许您仅在 iOS 设备上运行应用程序但不能广泛分发的临时证书)才能使用 iCloud特征。这纯粹是我的猜测,我尊重任何实际尝试过的人。
      【解决方案7】:

      我在为开发而新设置的 iPhone 5 (iOS 6.0) 上发现了这一点。我不得不在手机上手动启动应用程序,它说“你确定要启动这个开发者签名的应用程序吗?”一旦我批准了,“权限被拒绝”就消失了,它现在从 Xcode 启动。

      【讨论】:

      • 谢谢,这对我有帮助。
      【解决方案8】:

      解锁设备

      在运行之前尝试简单地解锁您的设备。我被同样的问题难住了。在不更改操作系统、环境、代码等的情况下构建和运行时,我收到了错误。

      herehere 提出了类似的问题,但在这种情况下没有帮助。

      【讨论】:

      • 我猜 Xcode 终于支持锁屏了。 (我说得对吗?以前没有?)
      • 我很抱歉我没有把我最初的帖子说清楚。这是一个 OSX 应用程序,而不是 iOS。
      • 啊,那肯定会有所作为。我会把答案留给其他谷歌的人。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-03-19
      • 2015-12-23
      • 2018-01-09
      相关资源
      最近更新 更多