日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

使用podspec创建iOS插件

發布時間:2025/7/25 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 使用podspec创建iOS插件 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

概述

在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: 項目簡介
  • s.homepage:項目主頁地址
  • s.social_media_url:社交網址
  • s.license:許可證
  • s.author:作者
  • 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/xiangzhiho...

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

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

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

pod 'pluginPods', '~> 0.0.3'

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

總結

以上是生活随笔為你收集整理的使用podspec创建iOS插件的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 伊人五月综合 | 6080电视影片在线观看 | 不卡中文 | 久久久久亚洲av成人毛片韩 | 性生活视频网站 | 91精品久久久久久久久久久 | 黑人又大又粗又长 | 少妇被按摩师摸高潮了 | 把高贵美妇调教成玩物 | 日韩日b视频 | 91精品国产高清 | 欧美日韩a | 九九热精品在线视频 | 日韩精品中文字幕在线观看 | 成人精品国产免费网站 | 伊人青青草原 | 亚洲熟妇av日韩熟妇在线 | 中文在线字幕av | 影音先锋在线视频 | 免费在线毛片 | 国产精品成人aaaaa网站 | 欧美三级黄色 | 国产福利片在线观看 | 涩涩视频在线观看 | 永久免费在线 | 国产美女久久久久久 | 五月天婷婷色综合 | 69xxxx国产| 999热视频 | 成人激情自拍 | 亚洲欧洲免费 | 日本欧美色图 | 亚洲伦理影院 | 无码精品国产一区二区三区 | 中文字幕一级片 | 亚洲私人影院 | 免费av在线网址 | 毛片资源 | 精品午夜一区二区三区在线观看 | 成人h视频| 高清视频在线免费观看 | 色哟哟av| av狠狠操| 777久久久精品一区二区三区 | 涩涩网站视频 | 欧美被狂躁喷白浆精品 | 午夜蜜桃视频 | 91亚洲国产成人久久精品网站 | 国产sss | 91黄色免费网站 | 69精品久久久久久久 | 韩国激情呻吟揉捏胸视频 | 日韩在线免费观看视频 | 欧美888| 免费的黄色网址 | 中文综合网 | 成人欧美性 | 精品中文视频 | 18深夜在线观看免费视频 | 精品欧美日韩 | 好色婷婷 | 中文字幕色哟哟 | 在线无码va中文字幕无码 | 吻胸摸激情床激烈视频大胸 | 黄色三级视频在线观看 | 日韩av一区二区三区在线观看 | 色香影视 | 好吊一区二区三区视频 | 国产日韩欧美高清 | 91免费国产在线观看 | 爱操在线 | 欧美一级片在线看 | 国产精品精品国产 | 亚洲在线视频一区 | 伊人网影院 | 免费精品视频 | 蜜臀aⅴ国产精品久久久国产老师 | 中文天堂在线视频 | 国产特黄一级片 | 精品无码一区二区三区的天堂 | 成人理论视频 | 精品国产传媒 | 日韩av一卡二卡 | 操干网 | aaa亚洲精品| 久久国产精品电影 | 日韩一区二区三区免费在线观看 | 五十路在线 | 亚洲国产视频一区 | 寡妇一级片 | 永久久久久久久 | 色吧久久| 欧美日韩在线免费观看视频 | 国产精品19乱码一区二区三区 | 动漫av一区二区三区 | 毛片88| 99色亚洲| 天堂色网| 日本黄色免费在线观看 |