1

私の質問は、この以前の質問とは正反対です。私はオープンソースアプリケーションに取り組んでいます。これは、プリコンパイルされたバイナリとソースコードの2つの形式で公開されています。

コンパイル済みのバイナリをインストールしましたが、ドックに小さなアイコンが表示され、完全に機能します。

ソースコードを正常にコンパイルしましたが、起動するとランタイムエラーが発生します。調査の結果、このアプリを正しく実行するにはコマンドラインオプションが必要だと思います。

だから私の質問は:私の仮定が正しく、作業バージョンが実際にコマンドライン引数を定義している場合、パッケージ化されたアプリからCL引数を取得するにはどうすればよいですか?

違いがあれば、私が話しているアプリはCyber​​duckで、OSXバージョン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 に答える