2014-01-17 57 views
1

我正在爲10.6及更新版本的OS創建一個Cocoa應用程序。我在Xcode 5(10.9)中創建了一個全新的基於文檔的應用程序,並更改了兩個設置使其與10.6兼容:我將部署目標更改爲10.6,並在MainMenu.xib和xxDocument.xib上關閉了自動佈局默認筆尖包含在基於文檔的模板中。我歸檔了我的應用程序(無需代碼簽名),添加了其他代碼並在四個不同的操作系統上進行了測試。結果如下:
OS X 10.9:按預期啓動並顯示新文檔窗口(「您的文檔內容」)。
OS X 10.8:按預期啓動;與10.9相同。
OS X 10.7:無法啓動;控制檯應用程序產生「應用程序名稱:無法加載nib文件:MainMenu,退出」。
OSX 10.6:無法啓動;控制檯產量與10.7相同。Xcode 5可可應用程序無法在OS X上加載Nib 10.6

對於我的應用程序的行爲,我感到非常困惑。我絕對沒有將代碼添加到Xcode爲我創建的基於模板文檔的應用程序;我只是改變了所需的設置,使其兼容10.6及以上。我也嘗試在構建設置中關閉ARC,這根本沒有任何區別。我查了蘋果文檔,還搜索了關於我收到的控制檯錯誤的其他問題,但沒有一個與此問題有關。我很驚訝10.7展示了這種行爲,因爲10.7與ARC兼容。我將不勝感激關於如何解決這個問題的任何建議。我會懷疑對默認模板有一個簡單的修改,因爲Apple可能不會提供需要大量修改才能使其工作的模板。謝謝。

更新: 如上所述,我關閉了Xcode中的基本國際化。我運行該應用程序,它運行良好。我導出了應用程序(無代碼簽名)並在所有上述操作系統上進行了測試。這一次,我收到的錯誤發生在所有操作系統上。這甚至發生在我構建項目的SAME機器上,唯一的區別是我沒有從Xcode運行它。我的下一步是實際製作一個MainMenu.xib文件(因爲刪除基本國際化刪除了舊的),並將其設置爲主界面。現在,我不僅在所有操作系統上的導出應用程序中出現錯誤,而且在嘗試運行應用程序時,它在Xcode中顯示出來!還有什麼我失蹤的?

回答

1

新創建的Xcode 5項目打開了基本國際化。 OS X 10.8及更高版本支持基本國際化。您必須關閉基本國際化以支持10.7和10.6。請參閱下面的堆棧溢出問題的詳細資料:

Base.lproj/MainMenu.xib is not available when compiling for targets before Mac OS X 10.8

你可能需要做什麼來支持另一件事10.6是部署目標設定爲10.6項目和廈門國際銀行文件兩者。我知道你說你在你的問題中將部署目標設置爲10.6,但是如果你爲項目和xib文件設置它,目前還不清楚。正如你所發現的,蘋果的項目模板並沒有把重點放在與舊操作系統版本的兼容性上。

+0

這看起來很有希望。下週我會有機會嘗試一下。 – user2105505

+0

嗨,你可以看看我對我的問題所做的更新嗎?你的答案似乎應該起作用,但由於某種原因,它沒有。 – user2105505

+0

我可以考慮另外兩件事來檢查。首先,確保xib文件是應用程序目標的成員。選擇xib文件並打開文件檢查器以設置目標成員資格。其次,確保xib文件是應用程序目標的Copy Bundle Resources構建階段的一部分。 –

2

如前所述,您需要禁用國際化基地。

在Project Navigator點擊哪個是你的項目的第一項(由藍色頁面,在裏面一個白色的表示,這是所有其他項目的根)

您應該默認顯示的信息(如果沒有從頂部的選項卡中選擇它)

信息屬性表中的最後一項是本地化。在本地化下,您將能夠添加和刪除語言,並且默認情況下應該有兩個已有的基本語言和英語。

同時刪除,並取消選中複選框「使用基地國際化」

一旦你做到了這一點,刪除您從項目本身有任何*的.xib文件。請確保只刪除參考文獻!!!不要發送到垃圾箱!

刪除引用後,進入Finder,打開您的項目目錄,您會發現一個名爲Base.lproj的目錄,其中包含* .xib文件。將它們複製或移動到您的項目目錄一級,然後刪除Base.lproj目錄。

返回到xCode並添加回* .xib文件。 ++ K清理項目,然後++ R重建。

這應該將App Package中的* .xib文件從Base.lproj(其中10.6似乎無法找到它們)移動到Resources文件夾並解決問題。

相關問題