2017-06-22 29 views
0

私はMacOSアプリケーションバンドルを構築しており、Info.plistLSMinimumSystemVersionキーを使用して最小OSバージョン(10.10)を指定しました。 OS 10.12上で実行している限り、アプリケーション自体は正常に動作します。しかし、10.11で起動しようとすると、エラーが発生する:"このバージョンのOS Xでこのバージョンのアプリケーションを使用することはできません。OS X 10.11.6があります。アプリケーションにはOS X 10.12以降が必要です"異なるOSバージョンとInfo.plistを必要とするMacOS

私はOSのバージョンチェックに関連するすべてを調査しましたが、何が起こっているのか把握できません。 LSMinimumSystemVersionエントリを完全に除外しても同じ結果が得られます。私たちは10.11を実行している複数のMacでテストしましたが、一貫して失敗するので、マシン固有のバグではありません。実際のバイナリ(アプリケーションバンドルの中に埋め込まれた実行可能ファイル)は10.11でうまく動作しますが、それは失敗したアプリケーションバンドルだけです。

私はmakefileを使用してアプリケーションをビルドしていますが、Xcodeでは使用できません。おそらく追加する必要があるいくつかのステップがありますか?

<?xml version="1.0" encoding="UTF-8"?> 
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> 
<plist version="1.0"> 
<dict> 
    <key>CFBundleDevelopmentRegion</key> 
    <string>English</string> 
    <key>CFBundleExecutable</key> 
    <string>*********</string> 
    <key>CFBundleGetInfoString</key> 
    <string>***************************</string> 
    <key>CFBundleIconFile</key> 
    <string>*******.icns</string> 
    <key>CFBundleIdentifier</key> 
    <string>*********************</string> 
    <key>CFBundleName</key> 
    <string>***************************</string> 
    <key>CFBundlePackageType</key> 
    <string>APPL</string> 
    <key>CFBundleShortVersionString</key> 
    <string>**.**.**</string> 
    <key>CFBundleVersion</key> 
    <string>**.**.**.**</string> 
    <key>LSMinimumSystemVersion</key> 
    <string>10.10.0</string> 
    <key>NSHumanReadableCopyright</key> 
    <string>**********************</string> 
</dict> 
</plist> 
+1

私はあなたがそれを実行できるようにしたい下位バージョンに "展開ターゲット"を設定したいと思うでしょう... –

+0

私は言いませんでしたXcodeを使用しています。 –

+0

どのような違いがありますか?私はあなたに... ... –

答えて

2

あなたは-mmacosx-version-minとリンク/コンパイルしている:以下添付

は、Info.plistファイル(少し検閲)ですか?もしあなたがまだいないのであれば、-mmacosx-version-min=10.10をあなたのコンパイラ/リンカオプションに加えてください。

+0

ありがとう君は!それはそれを修正した。私はその選択肢について聞いたことがないし、どちらもGoogleを持っていない。それはどこにも書かれていないようです。どのようにあなたはそれについて知ったのですか? –

+0

ああ、私が検索したときにそれが見つからない理由を発見しました。 TIL Googleは、マイナス記号で始まる検索文字列を好きではありません。 –

+0

hmmなぜこれが助けられたのか分かりません。誰かが私にそれを説明できますか? OPは、「アプリケーションバンドル内に埋め込まれた実行可能ファイルは10.11でうまく動作しますが、失敗したアプリケーションバンドルだけです」と述べています。では、コンパイラのフラグ(アプリケーションバンドルの中に埋め込まれた実行ファイルを作成している可能性があります)を変更すると、アプリケーションバンドル自体の成功にどのように影響しますか? なぜ実行ファイルがフラグなしで失敗しないのですか?なぜバンドルは成功するのですか?ありがとう! – NHDaly

関連する問題