可执行文件路径是一个目录。Xcode弹出错误。

15
我有一个iOS Xcode项目,包含3个目标——AppTarget、Lib1和Lib2。
层次结构如下:
- AppTarget依赖于Lib1和Lib2。它没有代码(SceneDelegate、AppDelegate等已移至Lib1)。 - Lib1是一个静态库,包含AppDelegate和SceneDelegate(不要深究为什么将它们从AppTarget移动到此处)。 - Lib2是一个静态库,依赖于Lib1。它使用swift扩展扩展了SceneDelegate类。
为了获得上述结构,我必须添加、删除文件引用并设置依赖关系。
当我运行AppTarget时,在构建成功后会弹出以下弹窗, enter image description here 将上述错误作为文本粘贴:
Details

Executable Path is a Directory
Domain: DVTMachOErrorDomain
Code: 5
Recovery Suggestion: /Users/<user_name>/Library/Developer/Xcode/DerivedData/<project_name>-bnytgzvocmpwyuajjxxjivpkymui/Build/Products/Debug-iphonesimulator/<project_name>.app is not a valid path to an executable file.
User Info: {
    DVTErrorCreationDateKey = "2022-11-03 08:04:49 +0000";
}

我不确定为什么会发生这种情况。我没有在Xcode->首选项->位置选项卡中更改默认的可执行路径。
有一个Apple论坛帖子描述了类似的错误(不完全相同)。解决方法是检查旧文件的引用,这些文件现在不存在了。我已经验证了所有3个目标的Target->构建阶段->编译源代码,并且一切都符合预期... 没有看到任何“模糊的文件”。
我在使用Xcode 14.0.1和swift 5+。

我在编辑 info.plist 后得到了相同的错误。 - zeroalpha
6个回答

5

在为模拟器构建时,要排除arm64架构。原因是模拟器使用基于X86的架构。当为真实设备(如iPhone)构建时,必须移除架构排除。iPhone使用基于arm的架构。 在此处查看快照


2

其中一个原因可能是应用程序目标中没有源代码。如果没有代码,则无法按预期生成可执行文件。请尝试添加虚拟/示例源代码,例如只包含空类的Swift文件也可以解决问题。


1

我的解决方法:

  1. 从模拟器中删除应用程序
  2. 删除DerivedData文件夹 -> ~/Xcode/DerivedData
  3. 退出Xcode
  4. 重新启动电脑
  5. 启动Xcode,清除项目(command + k),清除构建文件夹(shift+command+k)

从那里起,我就能够成功运行我的应用程序目标 ✅


谢谢您的回答,但这对我没有用。在AppTarget中添加一个虚拟文件可以解决问题。 - NightFuryLxD

0
在我的情况下,这是代码中一个相当标准的语法错误,编译器无法显示正确的错误信息。我怀疑二进制文件无法构建,如果无法构建,就无法进行构建和运行。我只是开始注释掉代码,直到找到问题所在,那是一个缺少的右括号"}"。顺便说一句,这是我在使用SwiftUI时经常遇到的问题。我使用的Xcode版本是最新的,截至目前为止是14.3.1。

0
我遇到了类似的问题,通过使用Rosetta运行模拟器,我成功解决了它。
以下是我遵循的步骤:
1. 使用Xcode打开你的项目,点击“Product”菜单,选择“Destination”,然后选择“Destination Architectures”,再选择“Show Rosetta Destinations”。
2. 在上述步骤完成后,模拟器将显示带有Rosetta标签的选项,问题将得到解决。

-1

从模拟器中删除应用程序 删除DerivedData文件夹 -> ~/Xcode/DerivedData 退出Xcode 重新启动电脑 启动Xcode,清理项目(command + k),清理构建文件夹(shift+command+k) 从那里我能够成功运行我的应用程序目标

在此之前,请检查Build Phase中的Compile sources是否存在,如果不存在,请添加它或添加缺少的编译源文件。这将百分之百有效。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接