文件“myapp .app”;不能't被打开,因为你没有权限查看它'在Xcode 6 Beta 4中运行应用程序时

每当我尝试在Xcode 6 Beta 4中运行我的应用程序时,我都会得到错误:

The file "MyApp.app" couldn't be opened because you don't have permission to view it.

无论我的目标是什么模拟器或设备,都会出现此错误。

我试过:

  • 在Xcode中删除所有来自组织者的派生数据
  • 正在修复驱动器上的权限
  • 手动提升构建的MyApp.app的权限
  • 重启电脑

有没有其他人遇到过这个问题并找到了解决方案?

截图

178315 次浏览

我会进入Xcode文档所在的文件夹,点击command + I来获取信息。在底部,点击锁以解锁文件夹以编辑权限。如果权限看起来不错,勾选“应用到附带文件夹”的复选框,让它来做它的事情。我个人没有见过这个,也不确定这是否是你在编辑构建权限时在你的帖子中所说的。

信息系统出了点问题。项目的Plist。我在Xcode 6 beta 4中创建了一个同名的新项目,然后替换了真实项目的信息。请用新的。然后,该项目建立并运行良好。

看看差异,看起来plist可能不知怎么搞混了游乐场的plist。捆绑包标识符是“com.apple.dt.playground”。iOS-18300-13”,可执行文件和捆绑包的名称是“iOS”以及其他一些奇怪的名称。

这是完整的差异,以防有人需要参考:

        <key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
-       <string>iOS</string>
+       <string>${EXECUTABLE_NAME}</string>
<key>CFBundleIdentifier</key>
-       <string>com.apple.dt.playground.iOS-18300-13</string>
+       <string>com.myCompany.${PRODUCT_NAME:rfc1034identifier}</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
-       <string>iOS</string>
+       <string>${PRODUCT_NAME}</string>
<key>CFBundlePackageType</key>
-       <string>AAPL</string>
+       <string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
-       <key>CFBundleSupportedPlatforms</key>
-       <array>
-               <string>iPhoneSimulator</string>
-       </array>
+       <key>CFBundleSignature</key>
+       <string>????</string>
<key>CFBundleVersion</key>
<string>1</string>
-       <key>DTPlatformName</key>
-       <string>iphonesimulator</string>
-       <key>DTSDKName</key>
-       <string>iphonesimulator8.0</string>
-       <key>LSBackgroundOnly</key>
-       <true/>
<key>LSRequiresIPhoneOS</key>
<true/>
+       <key>UIMainStoryboardFile</key>
+       <string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>armv7</string>
</array>
+       <key>UISupportedInterfaceOrientations</key>
+       <array>
+               <string>UIInterfaceOrientationPortrait</string>
+               <string>UIInterfaceOrientationLandscapeLeft</string>
+               <string>UIInterfaceOrientationLandscapeRight</string>
+       </array>
</dict>
</plist>

在设备上也有问题(不仅仅是模拟器)?


其他解决方案只是在模拟器上为我固定,而不是设备。

对我来说,这个问题发生(在Xcode 6),当我试图改变主要info.plist属性,同时试图改变我的应用程序名称。

info.plist中,我已经将Executable File的名称更改为默认的${EXECUTABLE_NAME}以外的名称…

我把这个字段误认为是在跳板图标下更改应用程序名称的字段。

我使用Xcode6 GM。我遇到了同样的问题。我所做的是去构建设置->构建选项。然后我将“Compiler for C/ c++ /Objective-C”的值更改为Default Compiler. __abc0

为我解决这个问题的是将只构建活动架构没有设置为是的

在Xcode中执行以下操作

窗口->组织者->项目->应用程序的问题->删除按钮在派生数据。

然后我清理了项目,瞧

作品

我最近在Xcode 6.0.1中运行一个旧项目(最初创建于Xcode 4.x)时遇到了同样的问题。

我通过将建筑设置s中的体系结构更改为默认值“标准体系结构(v7, arm64)”来解决这个问题。

希望这能帮助到有类似问题的人:)

我也遇到过类似的问题。不知何故,我的值键可执行文件混淆了。只需将其更改回${EXECUTABLE_NAME}(在您的项目> Info下)。为我工作!

对我来说,一个简单的产品->清洁工作得很好

我正在使用Xcode 6 GM,我遇到了同样的问题。 我所做的是去构建设置->构建选项(你可以搜索“编译器”), 然后将“Compiler for C/ c++ /Objective-C”的选项更改为默认编译器

对我来说,错误在文件info.plist,字段Bundle identifier中。不知怎的,它被修改成了

com.myCompany.${PRODUCT_NAME:rfc1034identifier}

com.myCompany.${PRODUCT_NAME}

我已经通过清理构建文件夹来修复它。刚刚进入“产品”菜单和选项+点击“清洁”。在那之后,一个问题解决了。

1)首先构建选项。

2)然后将“Compiler for C/ c++ /Objective-C”的值改为Default Compiler。

清洁和工作:-)

在我的情况下,它帮助只是关闭Xcode,修复权限与磁盘实用工具。只有在重新启动之后,它才像一个魅力。

我自己修复了在“arm32”和“arm64”架构之间切换的问题。从“构建设置”中,我将“架构”和“有效架构”从“arm32”修改为“arm64”,它工作了。在改变了一些其他设置后,在arm32和arm64之间切换不再有区别,所以我怀疑这是否是路由原因。

之前我尝试了这里的所有其他建议:

  • Plist未被修改
  • EXECUTIBLE_NAME未被修改
  • 构建清洁
  • 删除DerivedData
  • 默认的编译器
我们没有做对的是在构建设置中签名时没有应用准确的代码。 我们是这样解决这个问题的: 进入构建设置>>代码签名>>代码签名标识。然后,用你的iOS开发者ID来申请“调试”,但一定要用你的iOS发行配置文件来申请“发布”。我们没有正确地申请,所以我们实际上无法从服务器请求应用程序。 无论如何,这篇文章迫使我们修改了所有的参数和要求,所以我们非常感谢你的回答。 问候, t . < / p >

我能够从xcode 6.1之前的备份中恢复我的项目,

一旦我从不同的目录打开我的工作空间,我就能够运行我的目标而没有这个错误。

我的解决方案是:

  1. 打开~ /图书馆/开发/ CoreSimulator /设备/ < / p > < /李>

  2. 删除适当的文件夹

  3. 再次编译,它应该工作

有时候在新版本的Xcode中打开旧项目会得到这个消息。

转到问题导航器,并遵循警告提示“更新到重新确认的设置”。

繁荣,神奇!

在我的例子中,我只是将info.plist中的Bundle NameExecutable file值重命名为项目名称。这对我很管用。

不知道这个问题是否相关,但也许对像我这样的人来说,这是一个解决方案。

就我而言,我有一个有很多目标的项目。每个目标都是基础项目的自定义,基础项目是Cocoa Touch Static Library,目标是Applications。即使main文件被添加到库编译中,但没有添加到每个目标中,也会出现错误消息。我做了什么?手动将main文件添加到Compile Sources节中的每个目标,没问题。

产品->清洁(命令shift K)为我修复了它

在我的情况下主要。在“构建阶段”的“编译源”列表中没有包含main(…)函数。要检查是否是这种情况,进入Build Phases并查看,如果您的主。m出现在“编译源”列表中。

我发现在Build Options中将我的编译器更改为LLVM 6.0对我来说就足够了(xcode 6.1)

enter image description here

这是因为您可能会使用从git或svn克隆的存储库。尝试克隆另一个新版本并运行它。

我有这个错误与我的一些旧的项目,我正在从橱柜出来更新。由于某些原因,在Xcode 6中使用旧代码似乎会导致这种情况。

我已经在我所做的所有项目中修复了这个问题:

  1. 删除导出数据
  2. 产品:做一次清洁
  3. 进入项目目标中的构建设置,进入构建选项,并将“Compiler for C/ c++ /Objective-C”的值更改为“Default” 李编译器> < /强壮’。< / >

我在我的Xcode但是上得到了4年前从gitHub下载的项目的相同错误。 对我来说,将体系结构设置为默认值标准体系结构(v7, arm64),将编译器C/ c++ /Objective-C设置为建筑设置中的默认编译器有效

我有类似的问题(xCode 6.2)的示例代码下载。我试图将Executable Name设置为Default in Info.plist,但这没有工作。

将项目的编译器C/ c++ /Objective-C改为默认编译器(Apple LLVM 6.0),而不是不支持的编译器(com.apple.compilers.llvmgcc42)

截图

检查项目文件夹的读写权限(在Finder >中右键单击项目文件夹获取信息)

X-code 6.3.2

[构建设置]选项。 [所有]-[构建选项]-[C / c++ /Objective-C的编译器]-[默认编译器(Apple LLVM 6.1)]

. exe . exe

然后重新构建项目,它可以正常运行。

因为我今天早上也遇到了这个问题,没有一个答案对我有帮助,尤其是在我的情况下。经过几个小时的努力,我终于找到了问题所在。

实际上,在故事板中工作时,我只是将我的“Main.storyboard”重命名为“.storyboard”,并将其改回“Main.storyboard”解决了我的问题。

解决方案(根据我的问题):可能是你重命名了任何文件,由于xcode无法加载它,并提出了一个问题。 例如:如上所述,改变"可执行文件" name
的情况 可能的问题区域:可能是您工作的最后几个文件。

我有这个问题时,我的appdelegate类没有链接到我的主要应用程序目标,而是一个单独的静态框架。直接链接到目标应用程序解决了这个问题。

请检查是否已将可执行文件=> $(EXECUTABLE_NAME)更改为任何其他名称。如果您更改了此名称,则会显示此错误。请用$(EXECUTABLE_NAME)替换它。

我试了所有列出的答案,没有一个有用。问题是由于存在另一个plist文件通过cocoapods从子模块链接。幸运的是,这是我自己的模块,所以我只是从子模块项目中删除了这个plist,并重新安装了pods。

解决方案

后来我明白了问题的关键在于第二个plist的名称:简单地说就是info.plist。你可以重命名文件并通过子模块的sources部分重新链接它

第二个plist文件有一个唯一的名字,所以Xcode不应该感到沮丧。甚至我的目标设置指向一个主plist,而不是info.plist。看来Xcode对这个名字有特别的考虑

该错误在Xcode 6.4Xcode 7.0中再现

对我来说,触发这个错误的原因是,在我的资源文件夹的根目录下,有一个与我的最终可执行文件同名的文件夹。

所以,当启动可执行文件时,我认为Xcode发现了文件夹,并在执行文件夹时遇到了问题!;-)

我把名字改成了新名字,然后我把旧名字还给了我的项目,这对我很有帮助。

我的天哪! !我花了几个小时来解决这个问题。

XCode 7.3上,我有项目没有问题。

我错了

我只是添加了物理文件夹,并将我的文件移动到其中,问题开始了。

我什么都试过了

  • 默认的编译器
  • 清洁和构建
  • 重置模拟器和重启模拟器,Xcode, iPhone甚至mac
  • 更新Info.plist
  • 删除派生数据
  • 编辑项目文件夹的权限
  • 检查我的架构

什么都没用:(

我是如何决定的

我是关于创建新项目,然后我只是删除那些物理 文件夹我添加了,干净的构建和yes !!< / p >

它的工作原理!

enter image description here

我遇到了AppDelegate缺失的问题。

创建一个最小值解决了这个问题:

import UIKit


@UIApplicationMain
final class AppDelegate: UIResponder,UIApplicationDelegate {
}

按下运行/停止按钮右侧所需按钮,选择方案菜单:

图片1


按编辑方案…:

图2 .


选择你的可执行文件:

图3

尝试“cmd+shift+k”清理项目并重新构建。至少对我有用

请检查是否添加了任何第三方lib与plist。有些时候第三方lib有信息plist导致的问题。

我也有类似的问题。显然我已经包含了信息。Plist从外部项目文件夹。这将导致相同的错误,在每次构建之后都会显示出来(除了我在清理项目后运行它之后)。

为了解决这个问题,我只需要包含信息。从项目文件夹Plist。

对我来说,错误是在.plist文件的CFBundleExecutable键。 我重命名了可执行文件,删除了两个单词之间的空格。(例如:从“狂野赛车手”到“狂野赛车手”)。花了1天时间发现它!!< / p >

Xcode在调试方面实在是太没有帮助了!

我在Xcode 8.2中也有同样的错误。我为我发现的原因是,另一个Info.plist被添加到我的项目中,同时添加库(手动复制)。

Xcode会因为选择正确的Info.plist而感到困惑。

我只是删除了那个信息。Plist从添加的库。

然后它工作正常,没有任何权限警报。

我的项目也遇到了同样的问题。后来发现项目中使用的第三方(fmdb for SQLite)文件包含Info.plist. plist。

简单地删除信息。plist文件为我工作!

Info.plist .

我通过清除xcode中的首选项中的派生数据来解决这个问题

我从模拟器和设备两方面来研究这个问题。

这里有一个棘手的现象。如果我将项目复制到一个新位置,那么当我第一次运行时,这个问题就有可能消失。但当我打扫干净后,这个问题就来了。

我已经尝试了这个问题几乎所有的答案,但都没有。

在版本控制系统git的帮助下,我可以检查出以前版本的代码,并查看哪些修改导致了这个问题。

在我的项目中头版本是可行的,我最新的umcommitted修改将导致这个问题。

因此,我检出我的代码的可行版本中的每个文件,以定位问题。当我签出coin.xcodeproj/project.pbxproj(硬币是我的应用程序名称)时,这个问题消失了。

解决方案:只是签出可行的coin.xcodeproj/project.pbxproj,对于我的情况下,我只使用HEAD版本是可以的。

git checkout HEAD coin.xcodeproj/project.pbxproj


总结一下:

我有同样的问题与Xcode 10 &react-native。 以上所有的方法对我都没有帮助。< / p > < p >我的解决方案: 创建一个具有相同名称的新项目。并变更项目&工作区文件与复制项目中的文件。 而且很管用!!(在路径等一些小的构建问题后)

错误消息是通用的,实际上并没有告诉您它的真正含义。

对我来说,我必须恢复早期的github回归,这给:

armv7 armv7s arm64

对建筑。

我更新了我的可可荚,并在构建设置中添加了新的支持架构,并修复了它。

我的应用程序在XCode 9.4上运行良好,但当我在XCode 10中打开我的项目时,我遇到了这个问题。对我来说,问题在于构建设置。我在本页https://forums.developer.apple.com/thread/112141中找到了答案。

简单地说,转到文件>工作空间设置…>构建系统,并将其更改为“遗留构建系统”

我在Xcode 10.1添加objective c文件到我的swift项目后得到了这个问题。通过以下步骤得到这个工作,

  • 在目标->构建阶段下添加.m文件来编译源代码
  • 将-objc添加到.m文件旁边的编译器标志中

没有一个提供的答案对我有用。在我的情况下,我最终通过更新Build Settings/ architectures /Valid architectures中的目标架构到$(ARCHS_STANDARD)来修复这个错误,因为arm64缺失了。这并不是禁止项目构建,尽管发布了建议更新有效架构的警告,但在运行时显示了“app无法打开”错误。

我猜这个错误是相当普遍的,并不总是与权限问题有关,但当生成的应用程序包无效时可能会显示

如果你在项目中使用了。m文件,但没有在构建阶段“编译源代码”中添加,也会出现此消息。

当我在Xcode 10.3中添加两个objective-c文件时,没有一个解决方案适合我。我通过以下步骤固定,

  1. 构建阶段
  2. 检查00文件是否在编译器的来源中。如果不加的话
  3. 在.m文件旁边添加编译器标志-objc标志

也许可以考虑安装最新版本的Xcode。

在尝试了所有其他的解决方案(对我来说并不管用)之后,我这样做了,这个问题自动得到了解决。

我所做的是:

  • 我从项目中删除了VALIDARCHS
  • 我从Target删除了VALIDARCHS
  • 仅构建活动体系结构= YES(用于调试)体系结构
  • 标准架构$(ARCHS_STANDARD)

同样,File ->项目/工作区设置==新建系统

Xcode版本12 (12A7209)

如果你谷歌这个错误消息的文本,你会在StackOverflow,苹果开发论坛,Reddit等地方发现大约20个关于Xcode无法运行编译后的可执行文件的错误消息。

在这些帖子中,你会发现许多人提供了各种关于如何解决问题的建议:更改产品名称以匹配项目名称,更改构建阶段选项,一些信息。plist,从Clang更改编译器等。假设这些建议是善意地提供的,因为它们为某人解决了问题,但答案是如此不同,以至于错误消息显然是通用的,如果您收到它,这是很重要的一点:这个错误似乎意味着二进制文件有问题。忽略它的实际文本:它可能与权限无关。

对于这个错误没有通用的解决方案。错误消息是完全通用的;假设它意味着“糟糕的二进制文件”。如果你收到它,解决方案取决于你正在尝试做什么,改变了什么,为什么你突然看到这个错误。谷歌您的具体情况,而不是这个错误消息。

在我的例子中,我感觉这是一个常见的例子,我试图做的是在现代Xcode上构建一个旧的iOS项目,我想有9年了。解决方案是切换到遗留构建系统,这导致了编译错误,因为在旧项目中没有现代架构目标哪些可以通过手动添加来修复

我的用例有点独特。我正在使用app_specinfo_plist属性来通过哈希额外指定info.plist属性。

但是,设置CFBundleExecutable键会导致权限错误。我把它拿掉了。

当路径不正确或试图获取文件夹的内容而不是路径时,也会出现此错误。