2012-05-30 63 views
3

我們正在嘗試發佈我們的庫的iOS版本,並計劃將其作爲已編譯的靜態框架提供。使用Xcode框架和測試應用程序,我們有成功編譯和運行良好。傳遞xcode框架與其他依賴關係

現在的問題是:什麼是最好的交付方式?

我們的庫依賴於其他一些開源框架,我們還希望發佈一個測試應用程序和框架,以展示如何正確使用該庫。

我們應該使用傘架嗎?蘋果公司建議「不要創建傘框架」(http://developer.apple.com/library/mac/#documentation/MacOSX/Conceptual/BPFrameworks/Concepts/CreationGuidelines.html)

我們是否應該提供一個zip有我們的框架以及我們所依賴的所有框架,只是告訴客戶他們必須將這些框架包含在他們的項目中?

包含測試應用程序的最佳方式是什麼?

在此先感謝!

回答

0

我會在您編譯的框架中包含所需的框架,但iOS SDK標準框架除外。大多數框架都將依賴Foundation和UIKit,那些框架很可能已經包含在內。其他任何他們無法訪問的內容,包括在您發送的框架中。

+0

你是什麼意思把他們包括在我們編譯的框架中?只需將所有框架壓縮在一起,或者實際上將它們作爲子框架以某種或另一種方式嵌入? – Liron

+0

我的經驗是,框架是包含所有標題的捆綁靜態庫。您可以將您的依賴關係鏈接到庫中。我認爲你不需要在你的壓縮包中包含Framework,UIKit,因爲它會讓事情變得混亂和混亂。那些已經包括在內,他們已經有了。在本地測試一個新項目的框架,確保一切正常,然後將您的框架壓縮併發布。 –

+0

我們依賴於其他第三方庫,如boost。已經包含的東西,我不會鏈接,但因爲一切都鏈接到ios的靜態,我們必須有一些方法與我們的框架一起運送boost框架。 – Liron

2

查看CocoaPods作爲管理依賴項的手段(尤其是如果這些依賴項是開源的)。

https://github.com/CocoaPods/CocoaPods

+0

我得看看這個更多。從我所知道的看來,它看起來好像在內部是有用的,但是如果我們試圖提供一個包含它所依賴的其他框架的獨立框架,則不是。 (雖然他們都是開源的,所以我一定會仔細看看。) – Liron

+0

我不知道你的框架在做什麼或者你有什麼樣的客戶,但是我不想使用一個框架/庫依賴於其他我無法獨立更新的東西。我很容易陷入這樣一種情況:我使用圖書館A,這取決於一些事物和依賴於這些事物的不兼容版本的庫B,然後我無法將所有內容鏈接在一起。 –

+0

對,所以在windows上我們可以發佈dll並且只是一起編譯所有東西,所以沒有依賴關係,但是在iOS上你不能使用動態庫,所以我們必須爲我們使用的所有東西提供靜態框架在封面之下,這樣它們都可以由最終用戶鏈接在一起。 – Liron