2011-03-16 112 views
6

有沒有簡單的方法讓Three20 v1.1在xCode 4下工作? 我遵循http://three20.info/article/2011-03-10-Xcode4-Support的步驟,但似乎是爲主。我使用v1.1,因爲我使用TTLauncher。Three20 v1.1和Xcode 4

該項目使用正常版本生成良好,並在iPhone上運行完美。 但是,當我想創建檔案(爲分配IPA),然後我得到18個錯誤和8個警告。

第一個是:

../scripts/Protect.command: line 23: cd: /Users/XXX/Library/Developer/Xcode/DerivedData/iDoms-cmyivarwxpbvqdfnyclqdrikrtmw/ArchiveIntermediates/iDoms/BuildProductsPath/Release-iphoneos/../three20/Three20UICommon: No such file or directory 

大多數人都在如「沒有這樣的文件或目錄」: #import "Three20Core/TTGlobalCoreLocale.h

或‘未聲明(第一次使用的功能),’這是從「沒有這樣的文件或目錄的問題我相信」

在我的「頭搜索路徑」我有:

$(BUILT_PRODUCTS_DIR)/../three20 
$(BUILT_PRODUCTS_DIR)/../../three20 
../../three20/Build/Products/three20 
/usr/include/libxml2 

任何幫助將不勝感激!

回答

3

您應該檢查出this StackOverflow question

我抄錄如下接受的答案:

所以看起來變老的Xcode 3.2的項目在Xcode 4的工作 最簡單的方法 是做到以下幾點:

圍棋到Xcode 4的偏好(Cmd +,)中。 選擇「位置」選項卡。凡 說:「建位置」,選擇 下拉,並選擇「將打造 產品由 目標指定位置」我會寫一個three20.info 物品進入更多詳細的 這一點。

+0

我試過了,這看起來似乎可以減少100到18以上的錯誤數量。我將在明天引用的帖子中的其他答案中看到代碼更改,並查看是否進行了更改到v1.1代碼。 – 2011-03-17 18:29:53

+0

我最終重新創建了Xcode 4中的整個項目,就像我試圖讓它工作一樣每次打開項目時Xcode都崩潰了。我現在使用1.0.5版本並創建了我自己的TTLaunchViewController,它的工作原理非常完美! – 2011-03-28 15:16:28

+0

我寧願將所有構建的產品保留在派生位置(也是Apple推薦的方法)。到目前爲止,我沒有選擇這個選項。我嘗試使用SRCROOT而不是BUILD_PRODUCTS_DIR,但我懷疑這也不正確。 (仍然試圖找到它放置在所有組合的three20頭文件,似乎不在其中!) – 2011-06-17 18:01:29

1

這兩條路徑添加到您的標題搜索路徑爲目標構建設置:

「$(BUILD_DIR)/ three20」 「$(BUILD_DIR)/../ three20」

定期構建需要第一個條目,檔案需要第二個條目。

就是這麼簡單。


順便說一句,創造你的主目錄的文件與所有Xcode的爲你的目標的environement環境變量的列表,下面的運行腳本生成階段與內容添加到您的目標: ENV>〜/ xcode-environment.sh

請注意,在這種情況下,如果您的項目沒有通過構建過程的編譯階段完成,並且您的運行腳本隨後出現,那麼該腳本將無法執行,因此請先將它。

10

只需添加到科林的回答是:你可以使用Xcode的相關項目功能使用three20,即使three20網站上說,它不是「官方支持」:

  1. 在您的工作空間,右鍵點擊項目導航器中的空白空間。選擇「將文件添加到‘我的工作區’,然後選擇three20項目(three20/src/Three20/Three20.xcodeproj),這是你需要添加只有項目:沒有必要手動添加three20子項目

  2. 選擇項目。在導航,去構建階段,打開「鏈接二進制與圖書館」,在左下角點擊「+」,並添加Three20庫:libThree20.alibThree20Core.alibThree20Network.alibThree20Style.alibThree20UI.alibThree20UICommon.alibThree20Navigator.a這將導致Xcode在構建項目時生成Three20。

  3. 按照Colin的答案將${BUILD_DIR}/three20添加到您的包含路徑中:轉到構建設置,雙擊「標題搜索路徑」,並添加${BUILD_DIR}/three20(關閉對話框時它將顯示爲build/three20)。

  4. three20/src/Three20.bundle添加到您的資源。

  5. 如果您還沒有這樣做(相同的對話框,設置「其他鏈接器標誌」),添加鏈接器標誌-ObjC和-all_load可能也是一個好主意。

上述步驟足夠編譯代碼。爲了使「存檔」工作過,你將需要:

  1. 添加$(BUILT_PRODUCTS_DIR)/../three20$(BUILT_PRODUCTS_DIR)/../../three20的頭文件搜索路徑設置。如果你不這樣做,你會得到編譯錯誤,無法找到three20頭文件。

  2. 對於全部 Three20個項目(所以不只是頂級項目),進入生成設置並將「跳過安裝」設置爲YES。如果您不這樣做,該項目將建立,但您將無法創建IPA。

確保您的產品名稱(選擇你的目標,去構建設置,然後設置「產品名稱」),不包含空格,否則歸檔將無法正常工作。

最後,如果你得到錯誤,如ld: library not found for -lThree20和您使用的是自定義生成配置(如即席),確保同一構建配置添加到每個Three20項目太(只是複製發佈組態)。

+0

這對我有用,謝謝! – UltimateBrent 2011-08-04 00:53:50

+0

這也適用於我。謝謝! – livingtech 2011-08-29 21:21:55

+0

這對我沒有任何其他的工作。非常感謝! – 2012-06-01 15:29:53