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

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

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

我试过:

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

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


当前回答

我在Xcode 10和react-native中也遇到了同样的问题。 以上所有的方法对我都没有帮助。

我的解决方案: 创建一个具有相同名称的新项目。并更改项目和工作区文件从复制的项目。 而且很管用!!(在路径等一些小的构建问题之后)

其他回答

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

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

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

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

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

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

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

git checkout HEAD coin.xcodeproj/project.pbxproj


总结一下:

project.pbxproj: checkout the workable project.pbxproj file. Build Options: set Compiler for C/C++/Objective-C to default compiler. Executable file: set to $(EXECUTABLE_NAME) or directly set to your app name. Build > Clean:just do a clean. Replace the Info.plist with a new file from a new project Duplicate Info.plist in the project: just remove the extra one. Derived Data.: Find the Derived data path by Xcode->preference->locations->Derived data, then delete it with rm -r /Users/roofe/Library/Developer/Xcode/DerivedData And there may other reasons, you can refer to “The file ”MyApp.app“ couldn't be opened because you don't have permission to view it”

我遇到了AppDelegate缺失的问题。

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

import UIKit

@UIApplicationMain
final class AppDelegate: UIResponder,UIApplicationDelegate {
}

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

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

解决方案

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

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

该错误在Xcode 6.4和Xcode 7.0中再现

对我来说,错误是在文件信息。plist, field Bundle标识符。不知怎的,它被修改成了

com.myCompany。$ {PRODUCT_NAME: rfc1034identifier}

com.myCompany。$ {PRODUCT_NAME}