每当我尝试在Xcode 6 Beta 4中运行我的应用程序时,我收到错误:
The file "MyApp.app" couldn't be opened because you don't have permission to view it.
无论我的目标模拟器或设备是什么,都会出现此错误。
我试过了:
是否有其他人遇到此问题并找到了解决方案?
答案 0 :(得分:252)
我使用Xcode6 GM。我遇到了同样的问题。我做的是去构建设置 - >构建选项。然后我将“Compiler for C / C ++ / Objective-C”的值更改为Default Compiler。
答案 1 :(得分:146)
在Xcode中执行以下操作
窗口 - >组织者 - >项目 - >有问题的应用 - >在派生数据中删除按钮。
然后我清理了项目并瞧
作品
答案 2 :(得分:141)
其他解决方案仅在模拟器上为我修复,而非设备。
对我来说,当我尝试更改我的应用名称时尝试更改主 info.plist 属性时,会出现此问题(在Xcode 6中)。
在 info.plist 中,我已将Executable File
名称更改为默认${EXECUTABLE_NAME}
以外的其他名称...
我误将此字段误认为是在跳板上的图标下更改应用名称的字段。
答案 3 :(得分:52)
对我来说,一个简单的产品 - >干净工作得很好
答案 4 :(得分:46)
我通过清理构建文件夹修复了它。只需转到“产品”菜单和选项+单击“清除”。之后问题得到了解决。
答案 5 :(得分:27)
项目的Info.plist出现问题。我在Xcode 6 beta 4中创建了一个同名的新项目,然后用新的项目替换了真实项目的Info.plist。然后该项目建成并运行良好。
看看这个差异,看起来像是一个可能不知何故与一个操场上的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>
答案 6 :(得分:26)
我在Xcode 8.2中遇到了同样的错误。我找到的原因是,在添加库(手动复制)时,我的项目中添加了另一个 Info.plist 。
因此,Xcode对于选择正确的 Info.plist 感到困惑。
我刚从添加的库中删除了该Info.plist。
然后它没有任何许可警报正常工作。
答案 7 :(得分:18)
请检查您是否更改了可执行文件=&gt; $(EXECUTABLE_NAME)到任何其他名称。如果您更改了此名称,则会显示此错误。请将其替换为$(EXECUTABLE_NAME)。
答案 8 :(得分:14)
产品 - &gt;清洁(命令班次K)为我修好了
答案 9 :(得分:13)
我的天啊!我花了几个小时来解决这个问题。
在 XCode 7.3 上,我的项目没有任何问题。
我做错了
我刚刚添加了物理文件夹并将我的文件移入其中,问题已经开始。
我尝试了一切
我如何解决
我是关于创建新项目然后我只是删除了那些物理 文件夹我添加了,清理构建和YESS !!
它有效!!
答案 10 :(得分:13)
尝试&#34; cmd + shift + k&#34;清理项目并重建。至少它对我有用
答案 11 :(得分:11)
我有类似的问题(xCode 6.2)下载了示例代码。我尝试将Executable Name
设置为Default in Info.plist
,但这并没有奏效。
而是将编译器用于C / C ++ / Objective-C 更改为默认编译器(Apple LLVM 6.0)而不是不支持的编译器(com.apple.compilers。项目的llvmgcc42)。
答案 12 :(得分:10)
1)首先建立选项。
2)然后将“Compiler for C / C ++ / Objective-C”的值更改为Default Compiler。
清洁和工作: - )
答案 13 :(得分:10)
有时在新版Xcode中打开旧项目会收到此消息。
转到问题导航器,然后按照警告提示“Upate to reconmmented settings”。
狂热,神奇!答案 14 :(得分:10)
我发现在构建选项中将编译器更改为LLVM 6.0对我来说已经足够了(xcode 6.1)
答案 15 :(得分:9)
答案 16 :(得分:9)
我在一些旧的项目中遇到了这个错误,我正从柜子里拿出来进行更新。似乎使用Xcode 6和较旧的代码似乎出于某种原因带来了这一点。
我已经通过以下方式解决了所有项目:
答案 17 :(得分:9)
对于从4年前提交的gitHub下载的项目,我在 Xcode 6.1.1 上遇到了同样的错误。 对我来说,将体系结构设置为默认值标准体系结构(armv7,arm64)和编译器for C / C ++ / Objective-C 到默认编译器在建筑设置中工作。
答案 18 :(得分:8)
我尝试了所有列出的答案,但没有一个是有用的。问题是由于存在从子模块通过cocoapods链接的另一个plist文件。幸运的是,这是我自己的模块,所以我只是从子模块项目中删除了这个plist并重新安装了pod。
后来我明白问题的关键在于第二个plist的名称:只是sources
。您可以重命名该文件并通过子模块的info.plist
部分重新链接该文件
第二个plist文件有一个唯一的名称,所以Xcode不应该变得沮丧。甚至我的目标设置指向主plist,而不是var request = WebRequest.Create("http://www.djinmelbourne.com/lighting_effect.gif");
using (var response = request.GetResponse())
using (var stream = response.GetResponseStream())
{
pictureBox1.Image = Bitmap.FromStream(stream);
}
。看起来Xcode对该名称有特殊的考虑
Xcode 6.4 和 Xcode 7.0
中再现的错误答案 19 :(得分:8)
我最近遇到了在Xcode 6.0.1中运行旧项目(最初在Xcode 4.x中创建)的相同问题。
我通过将构建设置中的体系结构更改为默认值来修复此问题,即“标准体系结构(armv7,arm64)”。
希望这可以帮助那些遇到类似问题的人:)
答案 20 :(得分:7)
在我的情况下,我只需重命名Bundle Name
中与项目名称相同的Executable file
和info.plist
值。它对我有用。
答案 21 :(得分:6)
我有类似的问题。不知何故,我的关键可执行文件的价值混淆了。只需将其更改回$ {EXECUTABLE_NAME}(在您的项目&gt;信息下)。为我工作!
答案 22 :(得分:5)
对我来说,错误发生在密钥CFBundleExecutable
的.plist文件中。
我重命名了可执行文件,删除了两个单词之间的空格。 (例如:来自&#34; Wild Racer&#34;到#34; WildRacer&#34;)。花了1天时间发现它!!
Xcode在调试中太无用了!
答案 23 :(得分:5)
不知道问题是否相关,但也许它可以解决任何像我这样拉毛的人。
就我而言,我有一个有很多目标的项目。每个目标都是该基础项目的自定义,即Cocoa Touch Static Library
和目标Applications
。即使main
文件已添加到库编译中,但未添加到每个目标中,也会显示该错误消息。那我做了什么?手动将main
文件添加到Compile Sources
部分和宾果游戏中的每个目标,一切正常。
答案 24 :(得分:5)
我在这里做什么:
此外,文件->项目/工作区设置==新构建系统
Xcode版本12.0(12A7209)
答案 25 :(得分:4)
在我的案例中,包含main(...)函数的main.m未包含在&#34; Compile Sources&#34;的列表中。在&#34;构建阶段&#34;。要检查是否是这种情况,请进入构建阶段并查看,如果您的main.m出现在&#34;编译源&#34;列表。
答案 26 :(得分:3)
我的应用程序在XCode 9.4上运行正常,但是当我在XCode 10中打开项目时,遇到了此问题。对我来说,问题是构建设置。我在此页面https://forums.developer.apple.com/thread/112141中找到了答案。
简而言之,转到“文件”>“工作区设置...”>“构建系统”,然后将其更改为“旧版构建系统”
答案 27 :(得分:3)
使用X-code 6.3.2
[Build Settings]选项。 [全部] - [构建选项] - [C / C ++ / Objective-C编译器] - [默认编译器(Apple LLVM 6.1)]
然后重建项目,运行正常。
答案 28 :(得分:3)
为我解决的是将建立活动架构从否设置为是。
答案 29 :(得分:2)
在我的情况下,它只是关闭Xcode,修复了磁盘工具的权限。只有在重新启动之后,它就像魅力一样。
答案 30 :(得分:2)
如果您在谷歌上搜索此错误消息的文本,您会在 StackOverflow、Apple 开发论坛、Reddit 等上找到大约 20 个关于 Xcode 无法运行带有此错误消息的已编译可执行文件的主题。
在这些线程中,您会发现许多人提供了有关如何解决问题的各种建议:更改产品名称以匹配项目名称、更改构建阶段选项、使用 info.plist 的内容、将编译器更改为 Clang 或从 Clang 更改等。大概这些建议是真诚地提供的,因为它们为某人解决了问题,但答案千差万别,很明显错误消息是通用的,如果您收到它,这是一个重要的点:这个错误似乎意味着什么二进制是错误的。忽略它的实际文本:它可能与权限无关。
此错误没有通用的解决方案。错误消息是完全通用的;假设它的意思是“坏的二进制文件”。如果您收到它,解决方案取决于您尝试做什么,发生了什么变化,为什么您会突然看到此错误。谷歌搜索您的具体情况,而不是这条错误消息。
就我而言,我感觉这是一个常见的案例,我试图做的是在现代 Xcode 上构建一个旧的 iOS 项目,我认为已经有九年历史了。解决方案是 switch to the legacy build system,这导致了编译错误,因为在旧项目中没有现代架构目标 which could be fixed by manually adding them。
答案 31 :(得分:2)
我有类似的问题。显然,我已经从项目文件夹外部包含了Info.plist。这会导致相同的错误,在每次构建之后显示(除非在清理项目后运行它之后)。
要修复它,我只需要在项目文件夹中包含Info.plist。
答案 32 :(得分:2)
因为我今天早上也遇到过这个问题,所有答案都没有帮助我,特别是在我的情况下。经过几个小时的努力,我发现了这个问题。
实际上,当我错误地在故事板中工作时,我只是将“ Main.storyboard ”重命名为“ .storyboard ”并将其更改回“ Main。故事板“解决了我的问题。
解决方案(根据我的问题):可能您已重命名任何文件,因为xcode无法加载它并引发问题。 例如:如上所述,更改“可执行文件”名称的情况 可能的问题区域:可能是您工作的最后几个文件。
答案 33 :(得分:1)
我将名称更改为新名称,然后将旧名称返回到我的项目中,它帮助了我。
答案 34 :(得分:1)
我正在使用Xcode 6 GM。我遇到了同样的问题。 我做的是去构建设置 - &gt;构建选项(您可以搜索“编译器”), 然后将“Compiler for C / C ++ / Objective-C”的选项更改为Default Compiler。
答案 35 :(得分:1)
该错误消息是通用消息,实际上并未告诉您它的真正含义。
对我来说,我必须还原较早的github版本,该版本提供了:
armv7 armv7s arm64
架构。
答案 36 :(得分:0)
我通过清除xcode
中的首选项中的派生数据来修复此问题答案 37 :(得分:0)
我会去你的Xcode文档所在的文件夹,然后点击命令+我来获取信息。在底部,点击锁定以解锁文件夹以编辑权限。如果权限看起来不错,请选中要应用于封闭文件夹的框,然后执行此操作。我没有亲自看到这个,也不确定在编辑构建权限时,这是否就是你在帖子中所说的内容。
答案 38 :(得分:0)
也许考虑安装最新版本的Xcode。
在尝试了所有其他解决方案(对我不起作用)之后,我这样做了,问题已自动修复。
答案 39 :(得分:0)
当我向项目中添加两个Objective-c文件时,没有一种解决方案在Xcode 10.3中对我有用。我按照以下步骤进行了修复,
-objc
标志答案 40 :(得分:0)
如果您在项目中使用未在构建阶段“编译源代码”中添加的.m文件,也会出现此消息
答案 41 :(得分:0)
提供的答案中没有一个对我有用。就我而言,由于缺少arm64,我最终通过将“构建设置/体系结构/有效体系结构”中的目标体系结构更新为$(ARCHS_STANDARD)来修复了该错误。尽管发出了警告,建议您更新有效的体系结构,但这并不禁止项目的建立,但是在运行时会显示“无法打开应用程序”错误。
我想这个错误是很普遍的,并不总是与权限问题相关,但是当生成的应用程序包无效时可能会显示该错误。
答案 42 :(得分:0)
在我的swift项目中添加了目标c文件后,我在Xcode 10.1中遇到了这个问题。请按照以下步骤操作,
答案 43 :(得分:0)
我更新了可可豆荚,并在构建设置中添加了新的受支持的体系结构,并对其进行了修复。
答案 44 :(得分:0)
我在Xcode 10和react-native上遇到了同样的问题。 以上所有解决方案都对我没有帮助。
我的解决方案: 用相同的名称创建一个新项目。并使用复制的项目中的文件更改项目和工作区文件。 而且有效!!! (在一些带有路径的小构建问题之后)
答案 45 :(得分:0)
我在模拟器和设备上都遇到过这个问题。
还有一个棘手的现象。如果我将项目复制到一个新的地方,那么当我第一次运行时,这个问题就有可能消失。但是在我清理并运行之后,这个问题就出现了。
我已经从这个问题的答案中尝试了几乎所有解决方案,但两者都没有。
在版本控制系统git的帮助下,我可以查看以前版本的代码,看看导致此问题的修改。
在我的项目中, HEAD版本是可行的,我最新的umcommitted修改将导致此问题。
所以我从我的代码的可行版本中检出每个文件以找到问题。当我结帐coin.xcodeproj/project.pbxproj
(硬币是我的应用名称)时,这个问题就消失了。
解决方案:只需检查可行的coin.xcodeproj/project.pbxproj
,对于我的情况,我只使用HEAD版本即可。
git checkout HEAD coin.xcodeproj/project.pbxproj
使其成为摘要:
Compiler for C/C++/Objective-C
设置为默认编译器。$(EXECUTABLE_NAME)
或直接设置为您的应用名称。Xcode->preference->locations->Derived data
查找派生数据路径,然后使用rm -r /Users/roofe/Library/Developer/Xcode/DerivedData
答案 46 :(得分:0)
对我而言,错误位于文件info.plist
,字段Bundle identifier
中。不知怎的,它被修改为
com.myCompany.${PRODUCT_NAME:rfc1034identifier}
来自
com.myCompany.${PRODUCT_NAME}
答案 47 :(得分:0)
检查项目文件夹的读取+写入权限(在Finder中右键单击项目文件夹&gt;获取信息)
答案 48 :(得分:0)
我自己修改了这个&#34; arm32&#34;和&#34; arm64&#34;架构。从&#34;构建设置&#34;,我修改了#34;体系结构&#34;和#34;有效架构&#34;来自&#34; arm32&#34; to&#34; arm64&#34;它起作用了。在更改了许多其他设置之后,在arm32和arm64之间切换不再有所作为,所以如果这是路由原因,我会持怀疑态度。
之前我在这里尝试了所有其他建议:
答案 49 :(得分:0)
当我的appdelegate类没有链接到我的主应用程序目标而是一个单独的静态框架时,我遇到了这个问题。将其直接与目标应用程序相关联可解决问题。
答案 50 :(得分:0)
还请检查您是否添加了任何带有plist的第三方库。有时候第三方lib有信息plist导致问题。
答案 51 :(得分:0)
答案 52 :(得分:0)
我遇到了AppDelegate丢失的问题。
创建一个最小的解决了这个问题:
import UIKit
@UIApplicationMain
final class AppDelegate: UIResponder,UIApplicationDelegate {
}
答案 53 :(得分:0)
我能够从pre-xcode 6.1备份恢复我的项目,
一旦我从另一个目录打开我的工作区,我就可以在没有此错误的情况下运行我的目标。 模拟器现在也可以正常工作。
答案 54 :(得分:0)
就我而言,触发此错误的是我在我的资源文件夹的根目录下有一个与我的最终可执行文件同名的文件夹。
因此,在启动可执行文件时,我认为Xcode找到了该文件夹并且在执行文件夹时遇到了问题! ; - )
答案 55 :(得分:0)
我的解决方案是:
在您的终端中输入: 打开〜/ Library / Developer / CoreSimulator / Devices /
删除相应的文件夹
再次编译它应该工作
答案 56 :(得分:-1)
那是因为您可以使用从git或svn克隆的存储库。尝试克隆另一个新版本并运行它。
答案 57 :(得分:-1)
我们没有做的是在登录Build Settings时不使用准确的代码。 我们以这种方式解决了这个问题: 进入构建设置&gt;&gt;代码签名&gt;&gt;代码签名身份。然后,请使用您的iOS开发者ID进行“调试”,但请务必使用您的iOS发布配置文件来发布&#39;发布&#39;我们没有正确应用,所以我们无法获得从服务器请求应用程序的权限。 无论如何,这篇文章迫使我们修改所有的参数和要求,所以我们非常感谢你的所有答案。 问候, 吨。