譯文:Cocoapods 1.11來了

原文:https://blog.cocoapods.org/CocoaPods-1.11.0-beta/

CocoaPods 1.11 在支持Ruby 3.0的同時, 將Ruby的最低支持版本提升到了2.6. 它也新增了'On Demand Resources'的支持和一大堆bug修復和改進提升。

Ruby 2.6 and Ruby 3.0

隨着1.11的發佈,運行Cocoapod的Ruby最低版本來到了2.6. 因爲這個改動,我們也能夠擠掉一些其他依賴(如ActiveSupport和Addressable),它們經常與其他設置發生衝突. 我們希望這能讓開發者們放鬆下來,讓CocoaPods更加靈活。

Ruby 3.0現在也得到了支持,並將成爲CocoaPods CI的一部分! 這將確保新的更改和修復在合併之前總是在Ruby 3.0上進行測試和驗證。

On Demand Resources按需加載資源

簡而言之,On Demand Resources 允許開發者通過按需下載資源(而不是預先發行)來發行更小的應用包。

在CocoaPods 1.11中,pod的作者現在可以指定一組資源作爲給定應用程序的隨需集成資源。

下面是一個podspec的例子,它使用了新的on_demand_resources DSL:

Pod::Spec.new do |spec| spec.name = 'MyGameAssets' spec.version = '1.0' # ... rest of root spec entries go here spec.on_demand_resources = { 'level1_assets' => ['level1/**/*.png'], 'level2_assets' => ['level2/**/*.png'] } end

每個鍵指定一個標籤,每個值是一個glob,用於包含路徑。

注意:on_demand_resources中指定的按需資源路徑不需要同時在resources DSL或resource_bundle DSL中指定。

所有指定的按需資源將自動集成到用戶的目標項目中,CocoaPods 1.11將負責更新用戶項目中所有已知的資產標籤。

例如,如下Podfile

target 'MyGameApp' do pod 'MyGameAssets' end

MyGameAssets.podspec中指定的on_demand_resources。podspec將被集成並添加到MyGameApp的Target中!

其他值得注意的改進

以下DSL選項已被添加或擴展以服務於不同的用例:

  • project_header_files DSL: Pod作者現在可以指定一組project_header_files,它們是Pod的一部分。這有助於指定僅供pod本身使用的特定標題。當構建庫時,這些頭文件將不會出現在構建目錄中。
  • 新的script_phase執行位置: script_phase DSL被擴展爲接受execution_positionbefore_headersafter_headers選項。當腳本階段必須在"Copy Headers" 階段之前或之後執行時,這是很有用的。

  • pre_integrate_hook DSL: 類似於1.10版本中添加的post_integrate_hook DSL,這個新的鉤子將在用戶的項目與生成的Pods項目集成之前執行。

Xcode 13 Support

Xcodeproj gem的新版本已經發布,增加了對Xcode 13項目的初始支持。需要更新,運行gem update xcodeproj,或者如果你使用的是Bundler,那麼運行bundle update xcodeproj代替。

CocoaPods 1.11默認包含了Xcodeproj gem的最新版本,允許它在開箱即用的情況下與Xcode 13一起工作。

That's it!

What's Next

和其他任何開源項目一樣,CocoaPods是由少數人在業餘時間維護和改進的。目前還沒有官方的路線圖,新功能將取決於社區的意願。我們歡迎任何想要改進CocoaPods的人提供新的貢獻者和幫助!

我們相信CocoaPods將繼續在iOS開發中扮演重要角色。它尤其在React NativeFlutter 和 Kotlin Multiplatform等移動框架中站穩了腳,我們希望這次發佈能爲pod作者和iOS開發者提供更強大的工具和功能。

像往常一樣,我們要感謝所有幫助我們實現這個發佈的貢獻者!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章