如何快速讓你的代碼支持Cocoapods!

来源:https://www.cnblogs.com/chengxyyh/archive/2020/06/23/13181967.html
-Advertisement-
Play Games

Show me the code ! 此次分享的是如何讓你的代碼框架上傳到cocoapods,方便使用!對了,在第一句之前應該介紹cocoapods的背景,但作為iOS developer,不用介紹都知道其重要性,OK,Talk is cheap! 只需幾步: 1.整理目錄,代碼提交到GitHub( ...


Show me the code !

此次分享的是如何讓你的代碼框架上傳到cocoapods,方便使用!對了,在第一句之前應該介紹cocoapods的背景,但作為iOS developer,不用介紹都知道其重要性,OK,Talk is cheap!

只需幾步:

1.整理目錄,代碼提交到GitHub(任何開源及私有的托管平臺都OK)

2.創建、配置.podspec

3.將你的工程瘋狂打tag

4.本地驗證

5.註冊、發佈、驗證

Step 1

整理目錄:整理需要上傳的文件.

提交代碼到GitHub,項目在本地需要上傳到GitHub.

切換到你項目的根目錄路徑:

git init 在當前的項目目錄中生成本地的git管理

git add . 你要提交到github上的文件,如果你要將所有文件都添加上去的話,使用git add . “.”表示添加當前目錄中的所有文件。

git commit -m "first commit" ,表示你對這次提交的註釋。

git remote add origin https://github.com/brues/xxxxxx 就是項目地址。

git push -u origin master 將本地分支的更新,推送到遠程主機

在創建遠程項目的時候務必創建LICENSE(許可證/授權)文件,此文件必須要有

Step 2 創建、配置.podspec

在項目的根目錄路徑下,執行創建.podspec

$ pod spec create <項目工程名稱>

創建好後打開(文本編輯器),刪除註釋,配置.podspec

@version = "1.0.0"

Pod::Spec.new do |s|

s.name        = "AYLabMoneyAnimateCategory"  # 名稱,pod search 搜索的關鍵詞,註意這裡一定要和.podspec的名稱一樣

s.version      = @version

s.summary      = "項目簡介 "

s.description  = " 項目描述"

s.homepage    = "https://github.com/brues/AYLabMoneyAnimateCategory" # 項目主頁地址

s.license      = { :type => "MIT", :file => "LICENSE" }  # 許可證

s.author            = { "hongyin" => "[email protected]" }  # 作者,郵箱

s.ios.deployment_target = "8.0"

s.source      = { :git => "https://github.com/brues/AYLabMoneyAnimateCategory.git", :tag => "v#{s.version}" } # 項目的地址

s.source_files  =  "Code/*.{h,m}" #此處很重要,需要包含的源文件

s.requires_arc = true # 是否支持ARC

s.framework = "UIKit"

end

這是我的iOS開發交流群:519832104不管你是小白還是大牛歡迎入駐,可以一起分享經驗,討論技術,共同學習成長!
另附上一份各好友收集的大廠面試題,需要iOS開發學習資料、面試真題,可以進群可自行下載!

點擊此處,立即與iOS大牛交流學習

Step 3  瘋狂打tag

因為cocoapods是依賴tag版本的,所以必須打tag

以後再次更新只需要把你的項目打一個tag,然後修改.podspec文件中的版本接著提交到cocoapods

//註意前面加一個v

git tag"v1.0.0"

//將tag推送到遠程倉庫

git push --tags

Step 4 本地驗證

先檢查工程文件.podspec文件, LICENSE文件必須要有

驗證會先測試本地 .podspec 文件是否存在語法錯誤.

// --verbose 如果驗證失敗會報錯誤信息

pod spec lint <名稱>.podspec --verbose

驗證成功,如圖

Step 5 註冊、發佈、驗證

註冊Trunk

檢查是否有註冊過

pod trunk me

註冊過如下

未註冊

// 加上--verbose可以輸出詳細debug信息,方便出錯時查看。

pod trunk register <郵箱> "用戶名" --verbose

( 郵箱必須是你註冊github的郵箱,用戶名最好是你github的用戶名。 這一步會給你郵箱發一條驗證郵件,點擊裡面的鏈接)

發佈

// --use-libraries --allow-warnings

pod trunk push <名稱>.podspec

發佈成功如圖

驗證

pod search 名稱

到此你的代碼已上傳到cocopods,快告訴你的小伙伴們吧!
點擊此處,立即與iOS大牛交流學習


您的分享是我們最大的動力!

-Advertisement-
Play Games
更多相關文章
  • 插件 sup A Flutter widget which displays an image, a title, and a subtitle for errors, empty states, or just fancy custom messages. pub-rules simple yet ...
  • SwiftUI是一種新穎的構建UI方式和全新的編碼風格,本文以通俗易懂的語言,從Swift 5.1語法新特性和SwiftUI的優勢方面進行分享,希望對熱愛移動端的同學有一定的幫助,讓大家儘可能快速、全面和透徹地理解SwiftUI。 一、背景 蘋果於2019年度WWDC全球開發者大會上,發佈了基於Sw ...
  • 參數說明 (必填) 源碼文件夾絕對路徑(如:/Users/kelei/Documents/work/git/projectName/source) -modifyProjectName [原名稱]>[新名稱] 修改工程名。程式會修改原名稱-Swift.h、Podfile、原名稱-Bridging-H ...
  • ##layout_weight屬性 layout_weight屬性我們常常用到,但有時候會發現它還有一些奇怪的屬性,比如大多數使用時會把寬度設置成0,但要是寬度不設置成0會有什麼效果? layout_weight的屬性意義為權重大於零的控制項會分配剩餘控制項 意義為如控制項屬性設置為wrap_conten ...
  • 萬眾期待的蘋果年度開發者大會這一次雖然只能以線上方式進行,但依舊吸引了大量用戶的關註,當然更多的是開發者和第三方廠商的關註。因為蘋果各個系統的升級和變化,對於未來的開發又有了新的需求。目前,蘋果全球應用開發者已經有2300萬了。 作為軟體開發領域的盛事,蘋果全球開發者大會(WWDC)一直吸引著全世界 ...
  • Flutter中的自定義控制項其實和Android中的很類似,都有組合控制項、自繪控制項。 組合控制項就是將通用的控制項封裝起來,其內部由多個小控制項組合起來實現的,比如說公用的title欄,其實和我們平時寫頁面的時候沒什麼區別。 自繪控制項就是繼承RenderObjectWidget,然後通過提供給我們的Pai... ...
  • 第一次寫博客,有點小激動嗷~ 寫博客的原因主要是在練手之餘,總結歸納以及供大家參考,見笑了嗷~ 接下來分四個大部分:經典藍牙(BT,BlueTooth)、低功耗藍牙(BLE,Bluetooth Low Energy)、Wifi直連(WiFiDirect)、WiFi熱點(WiFiHot)展開討論。 每 ...
  • 摘要:在漫長的從Native向Flutter過渡的混合工程時期,要想平滑地過渡,在Flutter中使用Native中較為完善的控制項會是一個很好的選擇。本文希望向大家介紹AndroidView的使用方式以及在此基礎之上拓展的雙端嵌入Native組件的解決方案。 引言 在漫長的從Native向Flutt ...
一周排行
    -Advertisement-
    Play Games
  • Timer是什麼 Timer 是一種用於創建定期粒度行為的機制。 與標準的 .NET System.Threading.Timer 類相似,Orleans 的 Timer 允許在一段時間後執行特定的操作,或者在特定的時間間隔內重覆執行操作。 它在分散式系統中具有重要作用,特別是在處理需要周期性執行的 ...
  • 前言 相信很多做WPF開發的小伙伴都遇到過表格類的需求,雖然現有的Grid控制項也能實現,但是使用起來的體驗感並不好,比如要實現一個Excel中的表格效果,估計你能想到的第一個方法就是套Border控制項,用這種方法你需要控制每個Border的邊框,並且在一堆Bordr中找到Grid.Row,Grid. ...
  • .NET C#程式啟動閃退,目錄導致的問題 這是第2次踩這個坑了,很小的編程細節,容易忽略,所以寫個博客,分享給大家。 1.第一次坑:是windows 系統把程式運行成服務,找不到配置文件,原因是以服務運行它的工作目錄是在C:\Windows\System32 2.本次坑:WPF桌面程式通過註冊表設 ...
  • 在分散式系統中,數據的持久化是至關重要的一環。 Orleans 7 引入了強大的持久化功能,使得在分散式環境下管理數據變得更加輕鬆和可靠。 本文將介紹什麼是 Orleans 7 的持久化,如何設置它以及相應的代碼示例。 什麼是 Orleans 7 的持久化? Orleans 7 的持久化是指將 Or ...
  • 前言 .NET Feature Management 是一個用於管理應用程式功能的庫,它可以幫助開發人員在應用程式中輕鬆地添加、移除和管理功能。使用 Feature Management,開發人員可以根據不同用戶、環境或其他條件來動態地控制應用程式中的功能。這使得開發人員可以更靈活地管理應用程式的功 ...
  • 在 WPF 應用程式中,拖放操作是實現用戶交互的重要組成部分。通過拖放操作,用戶可以輕鬆地將數據從一個位置移動到另一個位置,或者將控制項從一個容器移動到另一個容器。然而,WPF 中預設的拖放操作可能並不是那麼好用。為瞭解決這個問題,我們可以自定義一個 Panel 來實現更簡單的拖拽操作。 自定義 Pa ...
  • 在實際使用中,由於涉及到不同編程語言之間互相調用,導致C++ 中的OpenCV與C#中的OpenCvSharp 圖像數據在不同編程語言之間難以有效傳遞。在本文中我們將結合OpenCvSharp源碼實現原理,探究兩種數據之間的通信方式。 ...
  • 一、前言 這是一篇搭建許可權管理系統的系列文章。 隨著網路的發展,信息安全對應任何企業來說都越發的重要,而本系列文章將和大家一起一步一步搭建一個全新的許可權管理系統。 說明:由於搭建一個全新的項目過於繁瑣,所有作者將挑選核心代碼和核心思路進行分享。 二、技術選擇 三、開始設計 1、自主搭建vue前端和. ...
  • Csharper中的表達式樹 這節課來瞭解一下表示式樹是什麼? 在C#中,表達式樹是一種數據結構,它可以表示一些代碼塊,如Lambda表達式或查詢表達式。表達式樹使你能夠查看和操作數據,就像你可以查看和操作代碼一樣。它們通常用於創建動態查詢和解析表達式。 一、認識表達式樹 為什麼要這樣說?它和委托有 ...
  • 在使用Django等框架來操作MySQL時,實際上底層還是通過Python來操作的,首先需要安裝一個驅動程式,在Python3中,驅動程式有多種選擇,比如有pymysql以及mysqlclient等。使用pip命令安裝mysqlclient失敗應如何解決? 安裝的python版本說明 機器同時安裝了 ...