1

我的问题与之前的问题完全相反。我正在开发一个开源应用程序,它以两种形式发布,预编译的二进制文件和源代码。

我安装了预编译的二进制文件,它运行良好,在 Dock 中有一个漂亮的小图标。

我成功编译了源代码,但是在启动它时出现运行时错误。经过调查,我怀疑这个应用程序需要命令行选项才能正确运行。

所以我的问题是:如果我的假设是正确的并且工作版本实际上是定义命令行参数,我如何从打包的应用程序中检索 CL 参数

如果有什么不同,我正在谈论的应用程序是Cyber ​​duck,我正在运行 OS X 版本 10.8.2

4

1 回答 1

1

问题不在于命令行。从这里的代码

// Get an instance of the non-localized keys.
CFDictionaryRef bundleInfoDict = CFBundleGetInfoDictionary(mainBundleRef);  
if(NULL == bundleInfoDict) {
    fprintf(stderr, "[Launcher Error] No info dictionary.\n");
    exit(-1);
}

其中 mainBundleRef 指的是 .app 包。

问题是应用程序内的 Info.plist (/Applications/Cyber​​duck.app/Contents/Info.plist) 中没有正常的键。它已以某种方式损坏。代码存储库中的那个乍一看还可以。有关结构的信息,我会查看 Apple 开发文档

最简单的解决方法是重新下载并安装该应用程序。

于 2013-03-08T10:27:38.057 回答