ChatGPT解决这个技术问题 Extra ChatGPT

在 Xcode 6 Beta 4 中运行应用程序时,“无法打开文件“MyApp.app”,因为您无权查看它”

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

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

无论我针对什么模拟器或设备,都会出现此错误。

我努力了:

从 Xcode 中的 Organizer 中删除所有派生数据

修复我的驱动器上的权限

手动提升已构建的 MyApp.app 的权限

重新启动我的电脑

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

https://i.stack.imgur.com/4ZSJN.png

我在 XCode 6.1 上遇到了同样的问题。起初,问题只是模拟器的问题,现在,在遵循这篇文章中的一些线索之后,我在运行目标手机时也遇到了同样的错误。
我遵循@YuAn 解决方案。它适用于模拟器。谢谢 但是当我尝试在设备上构建它时,我仍然收到消息说“我没有任何查看它的权限”。即使在删除派生数据的内容后尝试构建后,xcode 中产品目录和派生数据目录中的 myapp.app 文件也显示被阻止。
触发此问题的另一种(愚蠢)方法:编译仅包含资源且没有源文件的应用程序。不要问我怎么知道的:)
产品 > 清洁帮我解决这个问题
就我而言,这些都不起作用!一旦我从 Xcode 中删除 pilst 文件并再次附加到项目中,它就像一个魅力!希望对各位有帮助!!

U
Umar Farooq

https://i.stack.imgur.com/XbR5N.png


A
Albert Renshaw

DEVICE 也有问题(不仅仅是模拟器)?

其他解决方案仅在模拟器上为我修复它,而不是设备。

对我来说,当我尝试更改主要 info.plist 属性同时尝试更改我的应用程序名称时,就会出现这个问题(在 Xcode 6 中)。

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

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


就我而言,这很有效,谢谢。我一直在更改 -Info.plist 文件中的其他类似字段,一旦按照您的建议将 Executable File 更改回 ${EXECUTABLE_NAME} ,它就会构建并运行。
谢谢..我的情况也是如此
非常感谢@Albert Renshaw,你的回答解决了我的问题。自最近两天以来,我一直在寻找解决方案。
同样的问题,字段名称是“捆绑显示名称”,用于更改图标下的名称
这使我找到了我的解决方案,当我将外部库的源代码包含到我的代码中时,我得到了一个额外的 Info.plist,并且他们的资产组文件夹中有一个 Info.plist。删除额外的 Info.plist 解决了我的问题。
T
Tom

在 Xcode 中执行以下操作

窗口 --> 管理器 --> 项目 --> 有问题的应用程序 --> 派生数据中的删除按钮。

然后我清理了项目,瞧

作品


我遵循@YuAn 解决方案。它适用于模拟器,但是当我尝试在设备上构建它时,我仍然收到消息说“我没有任何查看它的权限”。即使在删除派生数据的内容后尝试构建后,xcode 中产品目录和派生数据目录中的 myapp.app 文件也显示被阻止。任何想法出了什么问题?
这对我有用,但它一直在发生。每次我想在模拟器中运行应用程序时,我都无法不断删除派生数据......
我面临同样的问题尝试了各种解决方案但对我没有用..帮助将不胜感激
S
SleepsOnNewspapers

对我来说,一个简单的 Product -> Clean 效果很好


y
yury.ku

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


d
drewag

项目的 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>

是的,我有一个类似的问题。 Info.plist 文件是二进制文件格式。不得不转换它
A
Antony Raphel

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

所以 Xcode 对选择正确的 Info.plist 感到困惑。

我刚刚从添加的库中删除了那个 Info.plist。

然后它在没有任何许可警报的情况下工作正常。


您也可以将 Info.plist 的名称更改为 FRAMEWORK_NAME_HEREInfo.plist
这里一样,从另一个项目复制
这正是我的问题所在。我添加了另一个 swift 文件文件夹,其中有一个 plist 文件。我删除了那个 plist 文件,一切都很好。谢谢!
P
Pratik Patel

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


是的,当我尝试更改应用程序名称时发生了。季节开发人员只是心不在焉地进入 plist 并更改了“可执行文件”,而实际上我的意思是更改“捆绑包名称”
这为我修好了。它发生在我重命名我的项目之后。谢谢。
J
James Zatsiorsky

Product -> Clean (command shift K) 为我修复了它


很好的提醒,有时简单的解决方案是有效的。
在 Xcode 7.2.1 下,此处需要干净并重新启动 Xcode。单独清洁使我进入了一个“未知错误”,没有尝试构建。
s
swiftBoy

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

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

我犯的错误

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

我尝试了一切

默认编译器

清洁和建造

重置模拟器和重启模拟器,Xcode,iPhone甚至mac

更新了 Info.plist

删除派生数据

编辑项目文件夹的权限

检查我的架构

没有任何效果:(

我是如何解决的

我正要创建新项目,然后我刚刚删除了我添加的那些物理文件夹,干净的构建和是的!

有用!!

https://i.stack.imgur.com/ETC1e.png


是的,这也是给我的。
这对我有帮助。但我想我可以使用文件夹引用。奇怪的。
O
One Eyed Raven

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


M
ManuQiao

有时在新版本的 Xcode 中打开旧项目会收到此消息。

转到问题导航器并按照警告提示“更新到重新设置的设置”。

砰,魔法!


问题导航器在哪里?
@salvishahzad Xcode 的左侧区域,您可以在其中看到构建警告和错误。 Cmd+5 是 Xcode 13 下的快捷键。
J
Jayprakash Dubey

对于下载的示例代码,我遇到了类似的问题(xCode 6.2)。我尝试将 Executable Name 设置为 Default in Info.plist 但这没有用。

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

https://i.stack.imgur.com/fWcIl.png


@iOSRocks:欢迎朋友!
i
informatiker

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

简而言之,转到 File > Workspace Settings... > Build System 并将其更改为“Legacy Build System”


最后! ——————谢谢,我忘记了那个设置!
它在 xcode 12.1 中也适用于我。但是它说“旧版构建系统”属性将在未来版本中被弃用。
W
Waseem Shah

1)首先构建选项。

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

清洁和工作:-)


要清除它: 1. 转到构建设置(全选并组合) 2. 搜索构建选项 3. 将 C/C++/Objective-C 的编译器设置为默认编译器
为什么人们要对这个评分最高的答案进行投票?
S
SleepsOnNewspapers

我发现在构建选项中将编译器更改为 LLVM 6.0 对我来说已经足够了(xcode 6.1)

https://i.stack.imgur.com/4pxgg.png


z
zeeawan

对于 4 年前提交的从 gitHub 下载的项目,我在 Xcode 6.1.1 上遇到了同样的错误。对我来说,将 Architectures 设置为默认值 Standard architectures(armv7,arm64) 并将 Compiler for C/C++/Objective-C 设置为 Building Settings 中的 Default Compiler 有效。


J
Jayprakash Dubey

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

只需删除 Info.plist 文件对我有用!

https://i.stack.imgur.com/2yYnu.png


也为我工作。
H
HunTer DRF

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

我通过将 Building Settings 中的 Architectures 更改为默认值“Standard architectures(armv7,arm64)”解决了这个问题。

希望这可以帮助遇到类似问题的任何人:)


这个答案应该被标记为正确的@drewag
看起来这个神秘的错误消息背后有不同的问题,无论如何这就是用 XCode 6.1 解决了我的问题
i
idmean

我的许多旧项目都出现了这个错误,我要从橱柜里拿出来更新。似乎出于某种原因,将 Xcode 6 与旧代码一起使用似乎会导致这种情况。

我已通过以下方式在我完成此操作的所有项目中修复了此问题:

删除产品中的派生数据:干净地转到项目目标中的构建设置并转到构建选项并将“C/C++/Objective-C 编译器”的值更改为“默认编译器”。


A
Ans

就我而言,我只是将 info.plist 中的 Bundle NameExecutable file 值重命名为与项目名称相同。它对我有用。


T
Tim

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

解决方案

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

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

Xcode 6.4 和 Xcode 7.0 中重现的错误


类似的事情发生在我身上。我的 Info.plist 配置不正确,所以 XCode 使用了它在项目文件夹中碰巧找到的第一个 Info.plist,它属于一些不相关的依赖项。
感谢上帝,您为我节省了数小时毫无意义的 Xcode 调试
N
Narendar Singh Saini

我所做的是在这里:

我从项目中删除了 VALIDARCHS

我从 Target 中删除了 VALIDARCHS

仅构建活动架构 = YES(用于调试)架构

标准架构 $(ARCHS_STANDARD)

此外,文件 -> 项目/工作区设置 == 新构建系统

Xcode 版本 12.0 (12A7209)


V
Viper

我有这个类似的问题。不知何故,我对关键可执行文件的价值混淆了。只需将其改回 ${EXECUTABLE_NAME} (在您的项目 > 信息下)。为我工作!


需要注意的一件事是,我的设置为 $(EXECUTABLE_NAME) 并将其更新为 ${EXECUTABLE_NAME} 为我解决了这个问题。
j
jwezorek

如果您在 Google 上搜索此错误消息的文本,您会在 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


要是能详细解释就更好了
使用遗留系统也为我修复了它。现在我只需要找出如何迁移到新的
让我知道你是否能解决这个问题。我没试过。
@jwezorek 说得很好!如果有人在 New Build System 中运行代码并更改为 Legacy 构建系统,则会出现此问题。我们可能不得不将它改回 Legacy 可能会一次或两次,然后再试一次。我在 Xcode 13 中运行了代码,它需要 New Build 系统并切换回 Xcode 12。
A
Awsed

在我的情况下,包含 main(...) 函数的 main.m 未包含在“构建阶段”的“编译源”列表中。要检查是否是这种情况,请进入构建阶段并查看您的 main.m 是否出现在“编译源”列表中。


我不知道您是如何发现这一点的,这不是我的确切问题,但它引导我找到了解决方案,非常感谢!!
对于任何可能认为 .m 或 .mm 很重要的读者,我也有这个(缺少 main())但使用 .cpp。
G
Gustavo Barbosa

不知道问题是否相关,但也许它可以成为像我这样拉扯头发的人的解决方案。

就我而言,我有一个有很多目标的项目。每个目标都是该基础项目的定制,即 Cocoa Touch Static Library 和目标 Applications。即使将 main 文件添加到库编译中,但不是在每个目标中,也会出现该错误消息。那我做了什么?手动将 main 文件添加到 Compile Sources 部分中的每个目标和宾果游戏,一切正常。


谢谢,这帮助很大。
j
jeddi

对我来说,错误出现在键 CFBundleExecutable 处的 .plist 文件中。我重命名了可执行文件,删除了两个单词之间的空格。 (例如:从“Wild Racer”到“WildRacer”)。花了1天时间才发现!!

Xcode 在调试中太无用了!


M
Misha

为我解决的问题是将“仅构建活动架构”从“否”设置为“是”。


b
bruce

使用 X 代码 6.3.2

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

然后重建项目,它运行正常。


关注公众号,不定期副业成功案例分享
关注公众号

不定期副业成功案例分享

领先一步获取最新的外包任务吗?

立即订阅