【问题标题】:Application developed in Snow Leopard not appearing executable in Leopard在 Snow Leopard 中开发的应用程序在 Leopard 中没有出现可执行文件
【发布时间】:2018-07-30 13:30:35
【问题描述】:

我在 Snow Leopard 中开发了一个简单的应用程序。它在 Snow Leopard 中编译的构建配置是:(10.5 | Release | i386)。

当我尝试使用上述配置编译它时,它在我创建项目时自动创建的应用程序委托文件中给了我这个错误:找不到“NSApplicationDelegate”的协议声明。 于是我把它的头文件中的<NSApplicationDelegate>去掉,就编译成功了。

虽然它在 Snow Leopard 中成功运行,但令我惊讶的是,它的 .app 文件似乎无法在 Leopard 中执行。

谁能告诉我为什么它会表现出如此奇怪的行为以及我该如何解决它

谢谢,

米拉杰

【问题讨论】:

  • 我也有同样的问题。
  • 嗨 Joao... 这个问题对我来说仍然没有解决.. 为了应对这种奇怪的行为,我做了以下事情:如果我希望任何应用程序同时在 10.5 和 10.6 上运行,我准备10.5 中的 Xcode 项目然后将其传输到运行 10.6 的 mac 并使用设置 - 10.5 进行编译。因此获得的版本适用于 Leopard 和 Snow!

标签: cocoa xcode


【解决方案1】:

有多个设置必须全部正确设置才能运行。 (有一天,我希望 Xcode 有一个神奇的“这个程序应该在什么系统上运行?”列表,然后正确设置所有内容。但这既不是这里也不是那里......)

Project -> Edit Project Settings -> Build Tab:确保 Architectures/Base SDK 设置为 Mac OS X 10.5。

项目 -> 编辑项目设置 -> 构建选项卡:确保体系结构/有效体系结构列表包括您正在运行 Leopard 的系统类型(很容易忽略 ppc 选项)。

项目 -> 编辑项目设置 -> 构建选项卡:确保架构/仅构建活动架构未选中

项目 -> 编辑项目设置 -> 构建选项卡:确保部署/Mac OS X 部署目标设置为 Mac OS X 10.5。

在项目下 -> 编辑活动目标 -> 构建选项卡:检查相同的内容


现在,您说您必须删除一些 10.6 协议声明才能构建它。这意味着您已经完成了所有这些工作(我主要是为了 Google 的缘故编写了答案的顶部;但它可能仍然值得仔细检查)。所以现在我很好奇“在 Leopard 中似乎无法执行”的症状是什么。

它会立即崩溃吗?操作系统是否不将其视为可执行包?还有什么?

您是否尝试过在 Leopard 上从命令行运行可执行文件(cd 到 MyApp.app\Contents\MacOS,然后运行 ​​./MyApp)。那会发生什么?当你这样做时,控制台会打印什么?

基本上,您没有详细地告诉我们哪里出了问题,我们无法真正提供帮助。

【讨论】:

  • 在发布文件夹中,.app 文件上方出现了一个十字符号,所以我无法运行它!此外,当我尝试使用命令通过控制台运行它时:open xyz.app 它给了我这个消息:文件不存在!
  • 未知:您当前的工作目录是 Xcode 放置 xyz.app 的构建文件夹吗?这是一个相对路径,所以它需要在你的工作目录中才能工作。如果您只是在一个新的终端窗口中执行此操作,它将在您的主文件夹的顶层中查看。
  • 是的,它是 Xcode 放置 xyz.app 的构建文件夹。我想根据您之前的建议为您提供更多输入 - 项目-> 编辑项目设置 -> 构建选项卡:(架构:标准(32/64 位通用)),(有效架构:i386 / ppc / ppc64 / ppc7400 /ppc970 / x86_64), (Build Active Architecture Only: unchecked), (Mac OS X Deployment Target: Mac OS X 10.5), for Project -> Edit Active Target -> Build Tab: All as previous + Debug Information Format: DWARF使用 dSYM 文件。
  • 此外..当我尝试双击 .app 图标时,它给了我这样的消息:“你不能在这个版本的 Mac OS X 上使用这个版本的应用程序 XYZ”
  • 嗯。嗯,这很奇怪,我从来没有遇到过。在二进制文件上运行 otool 时的输出是什么?
【解决方案2】:

检查您的构建设置。特别是 Deployment:MacOS X 部署目标

【讨论】:

  • 我查过了,设置为Mac OS X 10.5
【解决方案3】:

检查您的 Info.plist 以获取
Minimum system version (LSMinimumSystemVersion) 的值

【讨论】:

  • 是${MACOSX_DEPLOYMENT_TARGET}
【解决方案4】:
miraaj:~ keyss$ otool -L -arch all /Users/keyss/Desktop/Release_2/XYZ.app/Contents/MacOS/* /Users/keyss/Desktop/Release_2/XYZ.app/Contents/MacOS/XYZ (architecture x86_64): /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version
1.0.0, current version 111.1.4) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.18.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.24.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.46.0) /Users/keyss/Desktop/Release_2/XYZ.app/Contents/MacOS/XYZ (architecture i386): /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version
1.0.0, current version 111.1.4) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.18.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.24.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.46.0) /Users/keyss/Desktop/Release_2/XYZ.app/Contents/MacOS/XYZ (architecture ppc7400): /System/Library/Frameworks/Cocoa.framework/Versions/A/Cocoa (compatibility version 1.0.0, current version 12.0.0) /usr/lib/libgcc_s.1.dylib (compatibility version 1.0.0, current version 1.0.0) /usr/lib/libSystem.B.dylib (compatibility version
1.0.0, current version 111.1.4) /usr/lib/libobjc.A.dylib (compatibility version 1.0.0, current version 227.0.0) /System/Library/Frameworks/CoreServices.framework/Versions/A/CoreServices (compatibility version 1.0.0, current version 32.0.0) /System/Library/Frameworks/CoreFoundation.framework/Versions/A/CoreFoundation (compatibility version 150.0.0, current version 476.18.0) /System/Library/Frameworks/Foundation.framework/Versions/C/Foundation (compatibility version 300.0.0, current version 677.24.0) /System/Library/Frameworks/AppKit.framework/Versions/C/AppKit (compatibility version 45.0.0, current version 949.46.0)

【讨论】:

  • 这对我来说看起来很合理(尽管我远非专家!)。我没主意了。很抱歉我帮不上忙。
  • 我在另一条评论中看到您已将 LSMinimumSystemVersion 设置为变量。尝试将其设置为 10.5.0 看看会发生什么。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-09
相关资源
最近更新 更多