使用podspec創建iOS插件

      網友投稿 980 2025-04-02

      概述


      在WWDC 2014全球開發者大會上,蘋果開放了動態庫、App Extension等全新的功能,這為iOS插件化開發帶來了可能。在iOS開發中,動態庫是iOS提供的一種資源打包方式,可以將代碼文件、頭文件、資源文件和說明文檔等集中在一起,并且可以在運行時進行動態加載。

      目前,很多應用越做越復雜,應用程序也顯得越來越臃腫。試想一下,如果將一些不常用的功能做成一個插件,然后根據用戶的需求從網絡中下載,這樣最大限度的利用了系統資源,這也是插件化開發的初衷。

      使用Cocoapods的優勢

      傳統使用第三方庫的劣勢 1、使用一個第三方SDK,需要在工程里面添加一堆配置,少添加一步配置就會報一大堆錯誤。這個時候為了排查少了哪一個步驟,只能從頭開始重做一遍,太浪費時間和精力。有些配置還不好配置,就更使人煩躁郁悶了。 2、如果使用的第三方SDK有比較重要的更新,想使用最新的SDK只能到官方下載最新的SDK,重新導入到自己的項目工程中。 3、如果公司有多個項目,每一個工程都這樣配置一遍,這是多么痛苦的領悟呀。

      使用Cocoapods管理第三方庫的優勢 1、我們可以避免上訴的問題,使用方便。 2、方便我們自己管理,只需要更新版本就行了,以前的庫還可以保留讓他人使用。

      創建插件庫

      1,注冊Trunk

      trunk需要CocoaPods 0.33以上版本,可以使用pod --version命令來查看本地的版本。如果版本太低,可以使用下面的指令升級:

      sudo?gen?install?cocoapods pod?setup

      接下來,需要查看自己是否注冊過Trunk。

      pod?trunk?me

      如果沒有注冊,可以使用下面的命令進行注冊:

      pod?trunk?register?zhangyqyx@163.com?"zhangyqyx"?--verbose

      其中,zhangyqyx表示名字,zhangyqyx@163.com表示注冊的郵箱。注冊時,系統會發送一個驗證鏈接到你的郵箱,驗證通過后即注冊成功。注冊成功后再次使用命令pod trunk me查看。

      ##2, 創建GitHub倉庫 要完成插件化開發的需求,首先需要在GitHub中創建一個遠端的托管倉庫。如下圖:

      將項目克隆下來到本地,并添加公開庫文件相關的信息,代碼上傳和下載建議使用SourceTree等圖形化工具進行操作。

      ##3, podspec 使用如下命令創建.podspec文件,創建的命令如下:

      pod?spec?create?pluginPods

      其中,CardBannerView為庫的名稱。然后,打開并編輯.podspec文件。

      Pod::Spec.new?do?|s| ????s.name?????????=?'pluginPods' ????s.version??????=?'0.0.3' ????s.summary??????=?'自定義輪播插件' ????s.homepage?????=?'https://github.com/xiangzhihong/pluginPods' ????s.license??????=?'MIT' ????s.authors??????=?{'xiangzhihong'?=>?'1044817967@qq.com'} ????s.platform?????=?:ios,?'8.0' ????s.source???????=?{:git?=>?'https://github.com/xiangzhihong/pluginPods.git',?:tag?=>?s.version} ????s.source_files?=?'pluginPods/*' end

      其中,上面配置的具體的含義為:

      s.name:名稱,pod search 搜索的關鍵詞,注意這里一定要和.podspec的名稱一樣,否則報錯。

      s.version:版本號。

      s.ios.deployment_target:支持的pod最低版本

      s.summary: 項目簡介

      使用podspec創建iOS插件

      s.homepage:項目主頁地址

      s.social_media_url:社交網址

      s.license:許可證

      s.source:項目的地址

      s.requires_arc: 是否支持ARC

      s.source_files:需要包含的源文件

      s.public_header_files:公開的頭文件

      s.resources: 資源文件

      s.dependency:依賴庫,不能依賴未發布的庫,可以寫多個依賴庫

      常見的寫法

      dependency寫法:

      s.dependency?=?'AFNetworking'?,?'SDWebImage'

      source_files寫法:

      'runtime/*' 'runtime/runtime/*.{h,m}' 'runtime/**/*.h'

      其中,

      '*'表示匹配所有文件;

      '*.{h,m}' 表示匹配所有以.h和.m結尾的文件;

      '**' 表示匹配所有子目錄

      4,添加源碼

      接下來,將你的源碼添加到剛才s.source_files配置的目錄。如果是OC編寫的還需要配置公開的頭文件。此處,我使用的是Swift編寫的,就不管那么多了,如果有任何語法上的警告請忽略相關的警告。

      5,上傳Git

      將包含配置好的 .podspec, LICENSE 的項目提交 Git。命令如下:

      git?tag?"v0.0.1"?????//?如果出現錯誤,試一下不加v的情況 git?push?--tags

      或者,直接使用sourcetree等圖形化工具進行操作。例如:

      如果我們的tag打錯了,沒有用的話,我們應該怎么刪除呢?可以參考下面的方法: 1、查看tags git tag 就會羅列出我們所有的tags

      2、刪除本地tags git tag -d + 分支名稱就會刪除本地的分支

      3、刪除遠程分支 git push origin :refs/tags/分支名稱 就刪除了遠程分支

      為了驗證是否上傳成功,可以驗證.podspec文件,命令如下:

      pod?spec?lint?WeexHMGesUnlock.podspec?--verbose

      如果出現這種警告性的問題,我們可以直接忽略。

      pod?lib?lint?--allow-warnings

      如果出現這種情況,可能是你的那個版本找不到這個文件。

      5,發布

      發布時會驗證 Pod 的有效性,如果你在手動驗證 Pod 時使用了 --use-libraries 或 --allow-warnings 等修飾符,那么發布的時候也應該使用相同的字段修飾,否則出現相同的報錯。

      pod?trunk?push?pluginPods.podspec

      如果出現 --use-libraries 或 --allow-warnings 等修飾符警告,可以使用如下的命令:

      pod?trunk?push?pluginPods.podspec?--allow-warnings

      6, 驗證倉庫

      使用下面的命令來驗證,是否上傳成功。

      pod?search?pluginPods

      如果碰到上面的情況,你可以刪除搜索的文件路徑,然后重新生成。命令如下:

      rm?~/Library/Caches/CocoaPods/search_index.json pod?setup

      如果還是不行,估計是在你的項目還在審核中,你可以通過其他輔助手段去驗證。例如,使用pod trunk me命令:當然,你也可以在CocoaPod官網中進行搜索。如果沒有任何的錯誤,你將看到如下的搜索結果:如果剛才是用 pod lib lint 驗證成功的,就執行以下命令發布。

      pod?trunk?push?pluginPods.podspec

      如果剛才是用 pod lib lint --allow-warnings 驗證成功的,就執行以下命令發布。

      pod?trunk?push?pluginPods.podspec?--allow-warnings

      TIP:集成時如搜索不到,可以試著執行pod setup或pod repo update指令來更新pod,pod search搜索不到時,可以刪除~/Library/Caches/CocoaPods下的search_index.json文件以更新索引(pod search搜索不到并不影響集成),因為國內使用的時鏡像,也可以稍等一段時間后再更新。

      創建私有庫

      創建私有庫和創建Git庫的流程大體相似:

      1、創建一個私有的項目?可以是公司自己的git管理工具、也可以是碼云上的,創建方法可以參考Git倉庫的創建過程。

      2、創建.podspec?使用pod spec create命令創建xxx.podspec文件。

      3、編輯.podspec文件?編輯podspec文件,主要是添加項目庫、托管地址、版本號、暴露的文件等。

      4、上傳到Git?將包含配置好的 .podspec, LICENSE 的項目提交 Git或私有云。

      5、打tag

      6、驗證.podspec文件?使用pod spec lint來驗證podspec文件是否配置正確,如果有任何的錯誤,請根據錯誤提示進行修改。如果是warning可以忽略,在指令后面添加--allow-warnings即可。例如:

      pod?lib?lint?--allow-warnings

      7、添加一個私有庫并和項目地址做綁定

      pod repo add xxx https://github.com/xiangzhihong/xxx.git

      8、向私有的庫里添加podspec文件

      9、新建一個項目進行驗證

      新建一個Xcode項目,在podfile中添加引用腳本,看是否能夠成功的依賴,添加時注意版本號。

      pod 'pluginPods', '~> 0.0.3'

      如果,沒有任何提示錯誤,則說明自定義插件創建成功。

      本文轉載自異步社區。

      原文鏈接:https://www.epubit.com/articleDetails?id=N274ee971-2871-4005-8cc2-9d18d6be50d5

      iOS開發

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:WPS文字自動生成目錄的方法(wps文檔如何自動生成目錄)
      下一篇:excel2010表格如何添加邊框和底紋(excel表格增加邊框和底紋)
      相關文章
      亚洲制服丝袜中文字幕| 亚洲精品免费在线视频| 亚洲色精品三区二区一区| 久久精品国产亚洲AV麻豆网站| 日韩亚洲一区二区三区| 亚洲一区无码中文字幕| 中文亚洲成a人片在线观看| 337p日本欧洲亚洲大胆裸体艺术| 亚洲日韩国产成网在线观看| 亚洲成A人片在线观看无码3D | 亚洲一卡2卡三卡4卡无卡下载| 亚洲av极品无码专区在线观看| 亚洲欧洲日产国码在线观看| 亚洲国产电影在线观看| 亚洲国产美女在线观看 | 亚洲国产综合久久天堂| 亚洲国产精品国产自在在线| 亚洲国产精品专区在线观看| 国产AV无码专区亚洲AV蜜芽 | 亚洲色成人四虎在线观看| 亚洲乱色伦图片区小说| 亚洲av日韩专区在线观看| 国产成人亚洲精品91专区高清| 一本色道久久88亚洲综合 | 亚洲精品不卡视频| 亚洲一级高清在线中文字幕| 亚洲 日韩经典 中文字幕 | 亚洲AV午夜成人片| 久久久国产精品亚洲一区| 亚洲精品国产第1页| 亚洲色精品VR一区区三区| 亚洲精品无码专区| 亚洲AⅤ无码一区二区三区在线| 亚洲精品专区在线观看| 国产亚洲精久久久久久无码| 亚洲今日精彩视频| wwwxxx亚洲| 日本中文一区二区三区亚洲| 亚洲中久无码不卡永久在线观看| 亚洲一区二区三区偷拍女厕| 久久久久亚洲精品影视|