2010-06-24 80 views
2

如何設置支持iAd的通用項目(僅在iPhone應用程序中)?iAd框架的通用iPhone/iPad項目

使用iPhone SDK 4,假設我做以下步驟:

  1. 開放的XCode;
  2. 進入File> New Project;
  3. 選擇基於窗口的應用程序(或其他),選擇產品:通用(並選擇項目名稱後)。

它將像往常一樣創建一個帶有iPhone/iPad組的通用項目框架。 現在,我決定在iAd系統我的iPhone應用程序整合,所以我做到以下幾點:

  1. 在項目組名爲框架右鍵單擊>添加>現有框架...
  2. 選擇iAd.framework> Add

到目前爲止,這麼好。我可以簡單地使用Active Executable構建並運行爲Project Name - iPhone Simulator 4.0並且項目運行正常。假設我將Active Executable更改爲Project Name - iPad Simulator 3.2。儘管iAd.framework仍然在框架中被成功引用(未標記爲紅色),但該應用程序在iPad模擬器中崩潰,並且出現以下錯誤消息:

dyld:Library not loaded:/ System/Library/Frameworks/iAd.framework/iAd 引用來源:/ Users/nexia1/Library/Application Support/iPhone Simulator/3.2/Applications/8479EE14-28AA-4628-A668-CCF3FE770628/Untitled.app/Untitled 原因: image not found

我可以在這樣一個Universal項目中使用iAd嗎? (即使我只在我的iPhone應用程序中引用它)。

在此先感謝

回答

3

您需要薄弱環節的框架,並在代碼中詢問是否存在的類。

蘋果有這個類似的例子:http://developer.apple.com/iphone/library/samplecode/MailComposer/index.html

這是關於3.0在應用程序的郵件表,同時仍然在2.x的運行,但你會得到點。

+0

謝謝Eiko,解決了我的問題! 爲簡便起見,步驟如下:進入目標>選擇目標並單擊信息。在鏈接庫中選擇了iAd.framework並將Type從Required改爲Weak。 謝謝! – 2010-06-24 18:03:05

+0

在將消息發送到ADBannerView之前還會檢查UI_USER_INTERFACE_IDIOM()== UIUserInterfaceIdiomPhone,否則您可能會遇到一些崩潰 – valexa 2010-07-16 14:10:41