2017-06-22 96 views
0

我正在構建MacOS應用程序包,並使用Info.plist中的LSMinimumSystemVersion密鑰指定了最低操作系統版本(10.10)。應用程序本身工作正常,只要我們在OS 10.12上運行它。但是,如果我們試圖在10.11發佈它,我們會得到一個錯誤:「你不能在這個版本的OS X上使用這個版本的應用程序。你有OS X 10.11.6。應用程序需要OS X 10.12或更高版本「。需要不同操作系統版本的MacOS vs Info.plist

我已經調查了一切,我可以找到與操作系統版本檢查有關,我無法弄清楚發生了什麼事情。即使我完全忽略了LSMinimumSystemVersion條目,我們也會得到相同的結果。我們已經在運行10.11的多個Mac上進行了測試,並且一直失敗,所以它不是一些特定於計算機的錯誤。實際的二進制文件(埋在應用程序包中的可執行文件)在10.11上運行良好,這只是失敗的應用程序包。

我正在使用makefile而不是Xcode構建應用程序(原因很漫長,無法進入此處)。也許有一些額外的步驟我需要添加?

下面附上Info.plist中(略審查):

<?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

我說我wasn不使用Xcode。 –

+0

這有什麼不同?我並不是暗示你必須...... –

回答

2

你編譯/與-mmacosx-version-min鏈接?添加-mmacosx-version-min=10.10到你的編譯器/鏈接器選項,如果你還不是

+0

感謝您!這解決了它。我從來沒有聽說過這個選擇,也沒有Google;它似乎沒有記錄在任何地方。你究竟發現了什麼? –

+0

啊哈,我發現爲什麼我在搜索時找不到它。 TIL Google不喜歡以減號開頭的搜索字符串。 –

+0

嗯,我不明白爲什麼這有助於。有人可以向我解釋嗎? OP聲明:「應用程序捆綁包中的可執行文件在10.11上運行正常,它只是失敗的應用程序捆綁包」。那麼如何改變編譯器標誌(大概是將這個可執行文件嵌入到應用程序包中)會影響應用程序包本身的成功? 爲什麼執行失敗沒有標誌?爲什麼這個包會成功?謝謝! – NHDaly

相關問題