每当我尝试在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 6 Beta 4中运行我的应用程序时,我都会得到错误:
The file "MyApp.app" couldn't be opened because you don't have permission to view it.
无论我的目标是什么模拟器或设备,都会出现此错误。
我试过:
在Xcode中删除所有来自组织者的派生数据 正在修复驱动器上的权限 手动提升构建的MyApp.app的权限 重启电脑
有没有其他人遇到过这个问题并找到了解决方案?
我会进入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),当我试图改变主要信息。Plist属性,同时试图改变我的应用程序名称。
在信息。plist我已经改变了可执行文件名称,而不是默认的${EXECUTABLE_NAME}…
我把这个字段误认为是在跳板图标下更改应用程序名称的字段。
我使用Xcode6 GM。我遇到了同样的问题。我所做的是去构建设置->构建选项。然后我将“Compiler for C/ c++ /Objective-C”的值改为默认编译器。
我最近在Xcode 6.0.1中运行一个旧项目(最初创建于Xcode 4.x)时遇到了同样的问题。
我通过将“建筑设置”中的“架构”更改为默认值来解决这个问题,即“标准架构(armv7,arm64)”。
希望这能帮助到有类似问题的人:)
我正在使用Xcode 6 GM,我遇到了同样的问题。 我所做的是去构建设置->构建选项(你可以搜索“编译器”), 然后将“Compiler for C/ c++ /Objective-C”的选项改为默认编译器。
对我来说,错误是在文件信息。plist, field Bundle标识符。不知怎的,它被修改成了
com.myCompany。$ {PRODUCT_NAME: rfc1034identifier}
从
com.myCompany。$ {PRODUCT_NAME}
我自己修复了在“arm32”和“arm64”架构之间切换的问题。从“构建设置”中,我将“架构”和“有效架构”从“arm32”修改为“arm64”,它工作了。在改变了一些其他设置后,在arm32和arm64之间切换不再有区别,所以我怀疑这是否是路由原因。
之前我尝试了这里的所有其他建议:
Plist未被修改 EXECUTIBLE_NAME未被修改 构建清洁 删除DerivedData 默认的编译器
What we didn't do right was to not apply with the accurate code when signing in the Build Settings. We fixed the issue up this way: Enter into Build Settings >> Code Signing >> Code Sign Identity. Then, apply with your iOS Developer ID for 'Debug', but be sure to apply with your iOS Distribution Profile for 'Release' We didn't apply correctly, so we couldn't have permission to ask for the App from the server, actually. Anyway this post forced us to revise all the parameters and requirements, so we pretty appreciate all your answers. Regards, T.
我能够从xcode 6.1之前的备份中恢复我的项目,
一旦我从不同的目录打开我的工作空间,我就能够运行我的目标而不会出现这个错误。 模拟器现在也可以正常工作了。
不知道这个问题是否相关,但也许对像我这样的人来说,这是一个解决方案。
就我而言,我有一个有很多目标的项目。每个目标都是基础项目的自定义,基础项目是Cocoa Touch静态库,目标是应用程序。即使将主文件添加到库编译中,但没有添加到每个目标中,也会出现错误消息。我做了什么?在Compile Sources部分中手动将主文件添加到每个目标,没问题。
在我的情况下主要。在“构建阶段”的“编译源”列表中没有包含main(…)函数。要检查是否是这种情况,进入Build Phases并查看,如果您的主。m出现在“编译源”列表中。
我有这个错误与我的一些旧的项目,我正在从橱柜出来更新。由于某些原因,在Xcode 6中使用旧代码似乎会导致这种情况。
我已经在我所做的所有项目中修复了这个问题:
删除派生数据 在产品:做清洁 进入项目目标中的构建设置,进入构建选项,并将“Compiler for C/ c++ /Objective-C”的值更改为“Default” 编译器”。
我在4年前从gitHub下载的Xcode 6.1.1项目上也犯了同样的错误。 对我来说,在“构建设置”中将“架构”设置为默认值“标准架构”(armv7,arm64),并将C/ c++ /Objective-C的“编译器”设置为“默认编译器”。
我有类似的问题(xCode 6.2)的示例代码下载。我试图在信息中将可执行名称设置为默认。但是这并没有起作用。
相反,将Compiler for C/ c++ /Objective-C更改为Default Compiler(Apple LLVM 6.0),而不是Unsupported Compiler(com.apple.compilers.llvmgcc42) for project。
X-code 6.3.2
[构建设置]选项。 [所有]-[构建选项]-[C / c++ /Objective-C编译器]-[默认编译器(Apple LLVM 6.1)]
然后重新构建项目,它可以正常运行。
因为我今天早上也遇到了这个问题,没有一个答案对我有帮助,尤其是在我的情况下。经过几个小时的努力,我终于找到了问题所在。
实际上,在故事板中工作时,我错误地重命名了我的“Main”。故事板“到”。并将其更改为“Main”。故事板解决了我的问题。
解决方案(根据我的问题):可能是你重命名了任何文件,因为xcode无法加载它,并提出了一个问题。 例如:如上文所述更改“可执行文件”名称的情况 可能的问题区域:可能是您使用的最后几个文件。
请检查是否已将可执行文件=> $(EXECUTABLE_NAME)更改为任何其他名称。如果您更改了此名称,则会显示此错误。请用$(EXECUTABLE_NAME)替换它。
我试了所有列出的答案,没有一个有用。问题是由于存在另一个plist文件通过cocoapods从子模块链接。幸运的是,这是我自己的模块,所以我只是从子模块项目中删除了这个plist,并重新安装了pods。
解决方案
后来我明白了问题的关键在于第二个plist的名称:简单地说,就是info.plist。您可以重命名文件并通过子模块的sources部分重新链接它
第二个plist文件有一个唯一的名字,所以Xcode不应该感到沮丧。甚至我的目标设置都指向一个主plist,而不是info.plist。看来Xcode对这个名字有特别的考虑
该错误在Xcode 6.4和Xcode 7.0中再现
对我来说,触发这个错误的原因是,在我的资源文件夹的根目录下,有一个与我的最终可执行文件同名的文件夹。
所以,当启动可执行文件时,我认为Xcode发现了文件夹,并在执行文件夹时遇到了问题!: -)
我的天哪! !我花了几个小时来解决这个问题。
在XCode 7.3上,我的项目没有任何问题。
我错了
我只是添加了物理文件夹,并将我的文件移动到其中,问题开始了。
我什么都试过了
默认的编译器 清洁和构建 重置模拟器和重启模拟器,Xcode, iPhone甚至mac 更新Info.plist 删除派生数据 编辑项目文件夹的权限 检查我的架构
什么都没用:(
我是如何决定的
我是关于创建新项目,然后我只是删除那些物理 我添加的文件夹,干净的构建和是的!!
它的工作原理!
我遇到了AppDelegate缺失的问题。
创建一个最小值解决了这个问题:
import UIKit
@UIApplicationMain
final class AppDelegate: UIResponder,UIApplicationDelegate {
}
我也有类似的问题。显然我已经包含了信息。Plist从外部项目文件夹。这将导致相同的错误,在每次构建之后都会显示出来(除了我在清理项目后运行它之后)。
为了解决这个问题,我只需要包含信息。从项目文件夹Plist。
对我来说,错误是在.plist文件的关键CFBundleExecutable。 我重命名了可执行文件,删除了两个单词之间的空格。(例如:从“狂野赛车手”到“狂野赛车手”)。花了1天时间发现它!!
Xcode在调试方面实在是太没有帮助了!
我在Xcode 8.2中也有同样的错误。我发现的原因是,另一个信息。Plist添加在我的项目中,同时添加库(手动复制)。
Xcode会因为选择正确的info。plist而感到困惑。
我只是删除了那个信息。Plist从添加的库。
然后它工作正常,没有任何权限警报。
我的项目也遇到了同样的问题。后来发现项目中使用的第三方(fmdb for SQLite)文件包含Info.plist。
简单地删除信息。Plist文件为我工作!
我从模拟器和设备两方面来研究这个问题。
这里有一个棘手的现象。如果我将项目复制到一个新位置,那么当我第一次运行时,这个问题就有可能消失。但当我打扫干净后,这个问题就来了。
我已经尝试了这个问题几乎所有的答案,但都没有。
在版本控制系统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”
我在Xcode 10和react-native中也遇到了同样的问题。 以上所有的方法对我都没有帮助。
我的解决方案: 创建一个具有相同名称的新项目。并更改项目和工作区文件从复制的项目。 而且很管用!!(在路径等一些小的构建问题之后)
我的应用程序在XCode 9.4上运行良好,但当我在XCode 10中打开我的项目时,我遇到了这个问题。对我来说,问题在于构建设置。我在这个页面https://forums.developer.apple.com/thread/112141找到了答案。
简单地说,转到文件>工作空间设置…>构建系统,并将其更改为“遗留构建系统”
我在Xcode 10.1添加objective c文件到我的swift项目后得到了这个问题。通过以下步骤得到这个工作,
在目标->构建阶段下添加.m文件来编译源代码 将-objc添加到.m文件旁边的编译器标志中
None of the provided answers worked for me. In my case, I finally fixed the error by updating the target architectures in Build Settings/Architectures/Valid Architectures to $(ARCHS_STANDARD), as arm64 was missing. This was not prohibiting the project to build, although a warning was issued recommending updating the valid architectures, but the "app could not be opened" error was shown at run time. I surmise this error is rather generic and not always linked with a permission issue, but may be displayed when the generated app package is invalid.
当我在Xcode 10.3中添加两个objective-c文件时,没有一个解决方案适合我。我通过以下步骤固定,
进入构建阶段 检查.m文件是否存在于编译器源代码中。如果不加的话 在.m文件旁边添加编译器标志的-objc标志
我所做的是:
我从项目中删除了VALIDARCHS 我从Target删除了VALIDARCHS 仅构建活动体系结构= YES(用于调试)体系结构 标准架构$(ARCHS_STANDARD)
另外,File ->项目/工作区设置==新建系统
Xcode版本12 (12A7209)
如果你谷歌这个错误消息的文本,你会在StackOverflow,苹果开发论坛,Reddit等地方发现大约20个关于Xcode无法运行编译后的可执行文件的错误消息。
In these threads you will find many people offering various suggestions about how to fix the problem: changing product name to match project name, changing build phase options, something with info.plist, changing compilers to or from Clang, etc. Presumably the suggestions are offered in good faith because they solved the problem for someone, but the answers are so varied that it is clear that the error message is generic and this is an important point if you are receiving it: this error seems to mean that something is wrong with the binary. Ignore its actual text: it may have nothing to do with permissions.
对于这个错误没有通用的解决方案。错误消息是完全通用的;假设它意味着“坏二进制文件”。如果你收到它,解决方案取决于你正在尝试做什么,改变了什么,为什么你突然看到这个错误。谷歌您的具体情况,而不是这个错误消息。
在我的例子中,我感觉这是一个常见的例子,我试图做的是在现代Xcode上构建一个旧的iOS项目,我想有9年了。解决方案是切换到遗留构建系统,这导致了编译错误,因为在旧项目中没有现代架构目标,可以通过手动添加它们来修复。
我的用例有点独特。我使用app_spec的info_plist属性来额外指定信息。plist属性通过哈希。
但是,设置CFBundleExecutable键会导致权限错误。我把它拿掉了。