2009-12-16 47 views
1

我使用的Xcode 3.2.1項目,其中基地SDK爲iPhone設備3.0iPhone OS部署目標是iPhone OS 2.0,換句話說向後兼容的應用程序。框架MapKit

問題是MapKit框架。它被添加爲弱鏈接庫,但該應用只是不鏈接「設備 - 2.2.1」的目標。我已經用完了想法......我還能做什麼,但將圖書館標記爲「弱」鏈接?它曾經是最初的工作,但沒有更多。

下面的命令行,看起來蠻好我的一部分:

-framework Foundation -framework UIKit -framework CoreGraphics 
-weak_framework CoreLocation -weak_framework MapKit 

錯誤注:

ld: framework not found MapKit 
collect2: ld returned 1 exit status 
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/g++-4.0 failed with exit code 1 

回答

1

要在2.2.1運行你的應用程序,你不需要選擇2.2.1在該菜單中,將「Active SDK」設置爲3.0或更高。

+0

這是鏈接器失敗。不能運行任何東西,它鏈接第一:) – JOM 2009-12-17 05:54:54

+0

等待 - 你有2.2.1單獨的目標?你不想編譯一個操作系統特定的二進制文件......如果你把它設置爲Device-3.0,它會鏈接嗎?如果是這樣,那就是你應該做的,並且它應該仍然運行在2.2.1上,因爲你的鏈接很弱。 – 2009-12-17 05:59:48

+0

是的,只有一個目標。想要在2.x和3.x設備中按原樣運行相同的應用程序。設備-3.0模擬器的鏈接和運行情況良好。我的iPhone仍在使用iPod Touch進行測試。找不到任何第二個地方爲MapKit覆蓋默認弱鏈接,但它必須在某處... – JOM 2009-12-17 06:10:33

1

嘗試使用Apple的MailComposer示例項目,該項目與MessageUI框架做了類似的事情。你可能需要做的是將基礎SDK設置爲2.2.1而不是2.0。

+0

閱讀MailComposer,做到了弱連接。找不到可能覆蓋該設置的任何內容:( – JOM 2009-12-17 06:11:41

1

只是爲了澄清問題和解決方案:我想創造一個向後兼容的應用程序,這兩個iPhone OS 2.x和3.x設備上運行:

問題。它可以使用3.x特定功能,例如MapKit。

解決方案:設置你的「基地SDK爲iPhone設備3.0」「iPhone操作系統部署目標爲iPhone OS 2.0」。連接你的iPhone OS 2.x設備(我的iPod Touch,我拒絕升級到最新的iPod軟件版本),並在左上角選擇目標爲「設備-3.0」 - 即使你的連接設備不是3.0兼容!

相當混亂,起初看起來完全不合邏輯,但這就是它的工作方式!