解決方案。
- 轉到項目或目標的構建設置。
- 查找公共標題文件夾路徑。 (定義名稱=
PUBLIC_HEADERS_FOLDER_PATH
)
- 將其設置爲
YourLibrary.framework/Headers
。我已使用${PRODUCT_NAME}.framework/Headers
與項目名稱自動同步。
- 轉到建立階段並找到複製標題一步。
- 將所有需要的標題移動到Public窗格。
現在所有的頭文件將形成像框架並與產品二進制複製。 IDE將把它們全部作爲一個單元複製到應用程序的構建文件夾等臨時文件夾中。因此,引用應用程序項目可以自動使用標題。
這是一個竅門。創建的目錄結構不是真正的框架。因爲它不包含任何二進制文件。但是,我們並不需要真正的框架來存檔這個功能。 IDE與沒有任何二進制文件的框架一起工作我不想在沒有關於內部結構的文檔的情況下攻破IDE。
這工作得很好,但是你會遇到一些問題,當你存檔。發生這種情況是因爲Xcode4在存檔時特別表現出來。這是解決方法。
- 對於每個嵌入式庫項目,
SKIP_INSTALL = YES
都在目標構建設置中。對於最終產品項目,FRAMEWORK_SEARCH_PATHS = "${OBJROOT}/UninstalledProducts"
。請注意,此設置僅適用於Release
構建模式。
現在它會被存檔。
在跨平臺庫的情況下,可以有很多平臺的項目。但有時Xcode會將某些產品顯示爲紅色,即使編譯成功。
這是Xcode的一個bug。 IDE顯示取決於的SDKROOT
項目構建設置。因此,如果您在目標上設置SDKROOT
,它將不起作用。在更改項目構建設置的SDKROOT
之後,您可以檢查該產品是否變爲黑色。有關詳細信息,請參閱此Open Radar條目。
http://openradar.appspot.com/9636211
如果要修復這個bug,請將此情況報告給Apple's Radar。重複的錯誤會引起Apple的注意。只是複製粘貼&我的報告:)
這是非常出色的偵查手段,也是我發現處理Xcode無法正確鏈接非對等目錄子模塊的唯一辦法。謝謝。 – tooluser