2013-03-07 36 views
1

我的问题与this earlier one完全相反。我正在开发一个开源应用程序,该应用程序以2种形式发布,预编译的二进制文件和源代码。如何从码头中的程序快捷方式检索命令行参数?

我安装了预编译的二进制文件,它的工作原理非常完美,在dock中有一个漂亮的小图标。

我编译成功的源代码,但我启动它时遇到运行时错误。经过调查,我怀疑这个程序需要命令行选项才能正常运行。

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

如果这有什么差别,我谈论的应用程序是Cyberduck,和我运行OS X 10.8.2版本

+0

我假设你来自Windows - Dock图标OSK不是快捷方式,没有额外的命令行参数,它们就像运行在finder中的应用程序一样运行,或者从命令行使用'open'运行 – Mark 2013-03-07 10:58:58

+0

你得到什么运行时错误? – molbdnilo 2013-03-07 19:47:20

+0

“[Launcher Error]字典中没有运行键”。如果你在代码中查找这个错误,你可以清楚地看到它来自'main'函数的错误参数。 – rahmu 2013-03-08 09:04:15

回答

1

的问题不是命令行。从代码here

// 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)中没有正常的键。它以某种方式被破坏。代码存储库中的一个看起来一目了然。有关结构的信息,我会看看苹果开发document

最简单的修复方法是重新下载并安装应用程序。

+0

感谢您花时间查看代码,尽管这不是我的问题的意图。我正在寻找的答案实际上是查看Info.plist文件。我找到了我需要的东西;这与所问的问题无关,所以如果有人在此页面发生绊倒,我只需[在此标记](http://trac.cyberduck.ch/ticket/6768)。 – rahmu 2013-03-08 16:43:56

相关问题