我的 Xcode OS 应用程序无法在其他一些 Mac 上打开
My Xcode app for OS isn't opening on some other Macs
我正在为 OS X 创建一个应用程序,它基本上完成了。为了测试它,我在其他 macs 上试过了。我尝试了几种将应用程序发送到其他 mac 的方法,但它们最终得到了相同的结果。这些方法包括发送在 Products 文件夹中找到的 .app 文件,或发送应用程序的存档版本。
这适用于一些 macs,比如我的笔记本电脑,以及我用过的另外 2 台。但是,对于属于我朋友的一台特定笔记本电脑,该应用程序无法正常启动。该应用程序在停靠栏中出现半秒钟,然后自行关闭并显示错误报告。
我看了看,唯一能看懂的就是下面这句话:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[SKLabelNode labelNodeWithText:]: unrecognized selector sent to class 0x104807258'
terminating with uncaught exception of type NSException
abort() called
我检查了我的代码,发现方法 labelNodeWithText: 在代码中只有一次,实际上在任何方法的代码之外:
@implementation GameScene
SKLabelNode *mousePosition = [SKLabelNode labelNodeWithText:@"Mouse Clicked Position: (0, 0)"];
..............
@end
(我能这样做的原因是因为该文件是.mm 文件而不是.m 文件。)
所以我尝试使用 didMoveToView: 方法中的代码行,果然,当应用程序再次在我朋友的计算机上启动时,它没有崩溃。然而,该应用程序仍然存在漏洞,因为屏幕上唯一的东西就是这个 SKLabelNode,而所有其他应该存在的节点都不存在。
我不知道是什么导致了这个问题。部署目标是 10.9,低于我测试过的所有 macs 上的版本。我能想到的 mac 之间的唯一区别是我朋友的 mac 上没有 Xcode(他现在不能下载,直到他更新到 10.10)。
我读过其他人遇到过的类似问题(在网上只能找到 2 个),但是所提供的 answers/solutions 中的 none 对我有用。这不是我在朋友的计算机上遇到这些问题的唯一应用程序,因为我过去曾尝试过 2 个类似的结果。
有人可以帮我解决这个问题吗?
labelNodeWithText:
class SKLabelNode
的方法仅在 Mac OS X 上的 10.10 后可用。即使 SKLabelNode
出现在 10.9 ,有些方法没有,比如 labelNodeWithText:
.
你看看labelNodeWithText:
的文档就明白了:
Availability
Available in OS X v10.10 and later.
这与是否拥有XCode的最新版本无关。想象一下,如果每个下载应用程序的人都必须安装 XCode,但愿没有必要。
我正在为 OS X 创建一个应用程序,它基本上完成了。为了测试它,我在其他 macs 上试过了。我尝试了几种将应用程序发送到其他 mac 的方法,但它们最终得到了相同的结果。这些方法包括发送在 Products 文件夹中找到的 .app 文件,或发送应用程序的存档版本。
这适用于一些 macs,比如我的笔记本电脑,以及我用过的另外 2 台。但是,对于属于我朋友的一台特定笔记本电脑,该应用程序无法正常启动。该应用程序在停靠栏中出现半秒钟,然后自行关闭并显示错误报告。
我看了看,唯一能看懂的就是下面这句话:
*** Terminating app due to uncaught exception 'NSInvalidArgumentException', reason: '+[SKLabelNode labelNodeWithText:]: unrecognized selector sent to class 0x104807258'
terminating with uncaught exception of type NSException
abort() called
我检查了我的代码,发现方法 labelNodeWithText: 在代码中只有一次,实际上在任何方法的代码之外:
@implementation GameScene
SKLabelNode *mousePosition = [SKLabelNode labelNodeWithText:@"Mouse Clicked Position: (0, 0)"];
..............
@end
(我能这样做的原因是因为该文件是.mm 文件而不是.m 文件。)
所以我尝试使用 didMoveToView: 方法中的代码行,果然,当应用程序再次在我朋友的计算机上启动时,它没有崩溃。然而,该应用程序仍然存在漏洞,因为屏幕上唯一的东西就是这个 SKLabelNode,而所有其他应该存在的节点都不存在。
我不知道是什么导致了这个问题。部署目标是 10.9,低于我测试过的所有 macs 上的版本。我能想到的 mac 之间的唯一区别是我朋友的 mac 上没有 Xcode(他现在不能下载,直到他更新到 10.10)。
我读过其他人遇到过的类似问题(在网上只能找到 2 个),但是所提供的 answers/solutions 中的 none 对我有用。这不是我在朋友的计算机上遇到这些问题的唯一应用程序,因为我过去曾尝试过 2 个类似的结果。
有人可以帮我解决这个问题吗?
labelNodeWithText:
class SKLabelNode
的方法仅在 Mac OS X 上的 10.10 后可用。即使 SKLabelNode
出现在 10.9 ,有些方法没有,比如 labelNodeWithText:
.
你看看labelNodeWithText:
的文档就明白了:
Availability
Available in OS X v10.10 and later.
这与是否拥有XCode的最新版本无关。想象一下,如果每个下载应用程序的人都必须安装 XCode,但愿没有必要。