簡體   English   中英

帶有嵌入庫的 Cocoa Touch Framework Swift

[英]Cocoa Touch Framework Swift with embed libraries

我正在開發一套包含通用模塊的應用程序。 我想將通用模塊存儲在 Cocoa Touch Framework 中。 這個框架也可能包含庫和 Alamofire 和 SwiftyJSON,因為它們在模塊中被廣泛使用。 目前,盡管在互聯網上閱讀了許多教程、文章等,但我無法得到穩定的解決方案。

  • 是否可以將 Alamofire 和 SwiftyJSON 框架集成到框架自定義中,還是將它們集成到使用該框架的不同項目中更好(它們也將單獨需要)?
  • 是否可以生成在模擬器和手機上運行的框架(無論是哪種方法:子項目與否,動態或靜態庫,胖庫)?

你絕對可以做到這一點。 您目前有三個選項用於設置開發和兩個部署選項。


發展

Git 子模塊

Git 子模塊是將其他庫引入項目存儲庫以嵌入項目的好方法。 您需要做的就是添加子模塊,然后將該庫的 Xcode 項目拖到您的 Xcode 項目中,使其嵌套在您的項目中。 然后您需要將框架作為鏈接目標添加到您的庫中。

迦太基

Carthage還通過--use-submodules標志支持 git 子--use-submodules 所有你需要做的是安裝通過自制迦太基,然后創建一個Cartfile ,增加了Alamofire和SwiftyJSON使用下面的命令。

carthage update --use-submodules

可可豆

CocoaPods是一個依賴管理系統,它允許您輕松地引入和部署給定庫的不同版本。 由於AlamofireSwiftyJSON 都支持 CocoaPods,您可以創建一個Podfile ,然后運行pod install將 Pod 拉入您的庫中。 我不會推薦這個,因為這是一個非常重的方法。 相反,我建議使用Git SubmodulesCarthage進行開發。


部署

部署是一個非常不同的情況。 目前,在 OSS 社區(包括 Alamofire 和 Carthage)中廣泛使用的 iOS 和 OSX 有兩種相當健壯的部署機制。

迦太基

如果您使用 Carthage 導入了 git 子模塊,那么您可能已經完全支持 Carthage 部署。 這取決於您是否使用Cartfile.private文件來拉入您的依賴項。 鑒於您正在嘗試做的事情,我懷疑您是否會使用私有 Cartfile 而會使用公共 Cartfile。 這意味着您應該開箱即用。 驚人的!

可可豆

CocoaPods 與 Carthage 有很大不同,並且比 Carthage 有一些很大的優勢,但要付出代價。 您需要創建一個 podspec 文件並將其推送到公共或私有規范存儲庫中。 然后任何人都可以使用 Podfile 將您的 pod 拉入他們的項目。


概括

如您所見,這里有很多選擇。 我強烈建議使用 Carthage 來拉入你的 git 子模塊,然后支持 Carthage 和 CocoaPods 進行部署。 我知道這需要付出很多努力,因此您可能希望專注於其中一個。 抱歉提供了大量的鏈接和信息,但您的問題讓我相信您將從所有這些不同的來源中受益匪淺。

希望這有助於您成為依賴開發和部署忍者。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM