每当我尝试在Xcode 6 Beta 4中运行我的应用程序时,我都会得到错误:
The file "MyApp.app" couldn't be opened because you don't have permission to view it.
无论我的目标是什么模拟器或设备,都会出现此错误。
我试过:
有没有其他人遇到过这个问题并找到了解决方案?
我会进入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}以外的名称…
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下)。为我工作!
对我来说,一个简单的产品->清洁工作得很好
对我来说,错误在文件info.plist,字段Bundle identifier中。不知怎的,它被修改成了
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之间切换不再有区别,所以我怀疑这是否是路由原因。
之前我尝试了这里的所有其他建议:
我能够从xcode 6.1之前的备份中恢复我的项目,
我的解决方案是:
打开~ /图书馆/开发/ CoreSimulator /设备/ < / p > < /李>
删除适当的文件夹
再次编译,它应该工作
有时候在新版本的Xcode中打开旧项目会得到这个消息。
转到问题导航器,并遵循警告提示“更新到重新确认的设置”。
繁荣,神奇!
在我的例子中,我只是将info.plist中的Bundle Name和Executable file值重命名为项目名称。这对我很管用。
Bundle Name
Executable file
不知道这个问题是否相关,但也许对像我这样的人来说,这是一个解决方案。
就我而言,我有一个有很多目标的项目。每个目标都是基础项目的自定义,基础项目是Cocoa Touch Static Library,目标是Applications。即使main文件被添加到库编译中,但没有添加到每个目标中,也会出现错误消息。我做了什么?手动将main文件添加到Compile Sources节中的每个目标,没问题。
Cocoa Touch Static Library
Applications
main
Compile Sources
产品->清洁(命令shift K)为我修复了它
在我的情况下主要。在“构建阶段”的“编译源”列表中没有包含main(…)函数。要检查是否是这种情况,进入Build Phases并查看,如果您的主。m出现在“编译源”列表中。
我发现在Build Options中将我的编译器更改为LLVM 6.0对我来说就足够了(xcode 6.1)
这是因为您可能会使用从git或svn克隆的存储库。尝试克隆另一个新版本并运行它。
我有这个错误与我的一些旧的项目,我正在从橱柜出来更新。由于某些原因,在Xcode 6中使用旧代码似乎会导致这种情况。
我已经在我所做的所有项目中修复了这个问题:
我在我的Xcode但是上得到了4年前从gitHub下载的项目的相同错误。 对我来说,将体系结构设置为默认值标准体系结构(v7, arm64),将编译器C/ c++ /Objective-C设置为建筑设置中的默认编译器有效
我有类似的问题(xCode 6.2)的示例代码下载。我试图将Executable Name设置为Default in Info.plist,但这没有工作。
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)]
然后重新构建项目,它可以正常运行。
因为我今天早上也遇到了这个问题,没有一个答案对我有帮助,尤其是在我的情况下。经过几个小时的努力,我终于找到了问题所在。
实际上,在故事板中工作时,我只是将我的“Main.storyboard”重命名为“.storyboard”,并将其改回“Main.storyboard”解决了我的问题。
解决方案(根据我的问题):可能是你重命名了任何文件,由于xcode无法加载它,并提出了一个问题。 例如:如上所述,改变"可执行文件" name的情况 可能的问题区域:可能是您工作的最后几个文件。
我有这个问题时,我的appdelegate类没有链接到我的主要应用程序目标,而是一个单独的静态框架。直接链接到目标应用程序解决了这个问题。
请检查是否已将可执行文件=> $(EXECUTABLE_NAME)更改为任何其他名称。如果您更改了此名称,则会显示此错误。请用$(EXECUTABLE_NAME)替换它。
我试了所有列出的答案,没有一个有用。问题是由于存在另一个plist文件通过cocoapods从子模块链接。幸运的是,这是我自己的模块,所以我只是从子模块项目中删除了这个plist,并重新安装了pods。
后来我明白了问题的关键在于第二个plist的名称:简单地说就是info.plist。你可以重命名文件并通过子模块的sources部分重新链接它
sources
第二个plist文件有一个唯一的名字,所以Xcode不应该感到沮丧。甚至我的目标设置指向一个主plist,而不是info.plist。看来Xcode对这个名字有特别的考虑
该错误在Xcode 6.4和Xcode 7.0中再现
对我来说,触发这个错误的原因是,在我的资源文件夹的根目录下,有一个与我的最终可执行文件同名的文件夹。
所以,当启动可执行文件时,我认为Xcode发现了文件夹,并在执行文件夹时遇到了问题!;-)
我把名字改成了新名字,然后我把旧名字还给了我的项目,这对我很有帮助。
我的天哪! !我花了几个小时来解决这个问题。
在XCode 7.3上,我有项目没有问题。
我错了
我只是添加了物理文件夹,并将我的文件移动到其中,问题开始了。
我什么都试过了
什么都没用:(
我是如何决定的
我是关于创建新项目,然后我只是删除那些物理 文件夹我添加了,干净的构建和yes !!< / p >
它的工作原理!
我遇到了AppDelegate缺失的问题。
创建一个最小值解决了这个问题:
import UIKit @UIApplicationMain final class AppDelegate: UIResponder,UIApplicationDelegate { }
按下运行/停止按钮右侧所需按钮,选择方案菜单:
按编辑方案…:
.
选择你的可执行文件:
尝试“cmd+shift+k”清理项目并重新构建。至少对我有用
请检查是否添加了任何第三方lib与plist。有些时候第三方lib有信息plist导致的问题。
我也有类似的问题。显然我已经包含了信息。Plist从外部项目文件夹。这将导致相同的错误,在每次构建之后都会显示出来(除了我在清理项目后运行它之后)。
为了解决这个问题,我只需要包含信息。从项目文件夹Plist。
CFBundleExecutable
Xcode在调试方面实在是太没有帮助了!
我在Xcode 8.2中也有同样的错误。我为我发现的原因是,另一个Info.plist被添加到我的项目中,同时添加库(手动复制)。
Xcode会因为选择正确的Info.plist而感到困惑。
我只是删除了那个信息。Plist从添加的库。
然后它工作正常,没有任何权限警报。
我的项目也遇到了同样的问题。后来发现项目中使用的第三方(fmdb for SQLite)文件包含Info.plist. plist。
简单地删除信息。plist文件为我工作!
我通过清除xcode中的首选项中的派生数据来解决这个问题
我从模拟器和设备两方面来研究这个问题。
这里有一个棘手的现象。如果我将项目复制到一个新位置,那么当我第一次运行时,这个问题就有可能消失。但当我打扫干净后,这个问题就来了。
我已经尝试了这个问题几乎所有的答案,但都没有。
在版本控制系统git的帮助下,我可以检查出以前版本的代码,并查看哪些修改导致了这个问题。
在我的项目中头版本是可行的,我最新的umcommitted修改将导致这个问题。
因此,我检出我的代码的可行版本中的每个文件,以定位问题。当我签出coin.xcodeproj/project.pbxproj(硬币是我的应用程序名称)时,这个问题消失了。
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
我有同样的问题与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项目后得到了这个问题。通过以下步骤得到这个工作,
没有一个提供的答案对我有用。在我的情况下,我最终通过更新Build Settings/ architectures /Valid architectures中的目标架构到$(ARCHS_STANDARD)来修复这个错误,因为arm64缺失了。这并不是禁止项目构建,尽管发布了建议更新有效架构的警告,但在运行时显示了“app无法打开”错误。
我猜这个错误是相当普遍的,并不总是与权限问题有关,但当生成的应用程序包无效时可能会显示
如果你在项目中使用了。m文件,但没有在构建阶段“编译源代码”中添加,也会出现此消息。
当我在Xcode 10.3中添加两个objective-c文件时,没有一个解决方案适合我。我通过以下步骤固定,
-objc
也许可以考虑安装最新版本的Xcode。
在尝试了所有其他的解决方案(对我来说并不管用)之后,我这样做了,这个问题自动得到了解决。
我所做的是:
同样,File ->项目/工作区设置==新建系统
Xcode版本12 (12A7209)
如果你谷歌这个错误消息的文本,你会在StackOverflow,苹果开发论坛,Reddit等地方发现大约20个关于Xcode无法运行编译后的可执行文件的错误消息。
在这些帖子中,你会发现许多人提供了各种关于如何解决问题的建议:更改产品名称以匹配项目名称,更改构建阶段选项,一些信息。plist,从Clang更改编译器等。假设这些建议是善意地提供的,因为它们为某人解决了问题,但答案是如此不同,以至于错误消息显然是通用的,如果您收到它,这是很重要的一点:这个错误似乎意味着二进制文件有问题。忽略它的实际文本:它可能与权限无关。
对于这个错误没有通用的解决方案。错误消息是完全通用的;假设它意味着“糟糕的二进制文件”。如果你收到它,解决方案取决于你正在尝试做什么,改变了什么,为什么你突然看到这个错误。谷歌您的具体情况,而不是这个错误消息。
在我的例子中,我感觉这是一个常见的例子,我试图做的是在现代Xcode上构建一个旧的iOS项目,我想有9年了。解决方案是切换到遗留构建系统,这导致了编译错误,因为在旧项目中没有现代架构目标哪些可以通过手动添加来修复。
我的用例有点独特。我正在使用app_spec的info_plist属性来通过哈希额外指定info.plist属性。
app_spec
info_plist
但是,设置CFBundleExecutable键会导致权限错误。我把它拿掉了。
当路径不正确或试图获取文件夹的内容而不是路径时,也会出现此错误。