讓自己的開源項目支持CocoaPods

来源:https://www.cnblogs.com/ljcgood66/archive/2018/01/12/8269589.html
-Advertisement-
Play Games

測試的時候找個自己封裝的方法或UI控制項就可以了 這裡用我剛封裝的Redirect重定向的請求體為例 1, 在github上創建一個Redirect,重要:記得選擇開源協議 (MIT)(如果木有GitHub那先百度一下) 2, 使用 Github Desktop Clone (克隆) Redirect ...


 測試的時候找個自己封裝的方法或UI控制項就可以了 這裡用我剛封裝的Redirect重定向的請求體為例

1, 在github上創建一個Redirect,重要:記得選擇開源協議 (MIT)(如果木有GitHub那先百度一下)

2, 使用 Github Desktop Clone (克隆) Redirect 到電腦桌面 

註: 修改Redirect文件里的東西記得及時更新,如何使用Github Desktop請百度

3, cd到當前目錄

$ cd Redirect

4, 創建一個podspec文件,命令:

$ pod spec create Redirect

5, 編輯 podspec文件,這裡是用vim打開的,命令:(當然使用文本編輯器打開也可以)

$ vim Redirect.podspec

6, 創建之後會自動生成一個模板,裡面會有詳細的註釋,我們只需要按需要修改這個文件即可,

下邊這個是測試的時候我編輯的 (如果需要更更多的配置 可以參考別的開源項目的podspec文件):

(註: 以#開頭的是可以刪掉滴)

Pod::Spec.new do |s|



  s.name         = "Redirect"
  s.version      = "0.0.1"
  s.summary      = "Redirecting Requests."
  s.description  = <<-DESC 
                          This is a Redirecting Requests.
                   DESC
  s.homepage     = "http://www.cnblogs.com/ljcgood66/"
  s.license      = "MIT"
  s.author       = { "LiJunCheng" => "[email protected]" }
  s.platform     = :ios
  s.source       = { :git => "https://github.com/ganlinmeng/Redirect.git", :tag =>"0.0.1" }
  s.source_files  = "Redirect", "Redirect/**/*.{h,m}"
  s.exclude_files = "Classes/Exclude"
  s.framework  = "UIKit"
  # s.frameworks = "SomeFramework", "AnotherFramework"
  # s.library   = "iconv"
  # s.libraries = "iconv", "xml2"


  # ――― Project Settings ――――――――――――――――――――――――――――――――――――――――――――――――――――――――― #
  #
  #  If your library depends on compiler flags you can set them in the xcconfig hash
  #  where they will only apply to your library. If you depend on other Podspecs
  #  you can include multiple dependencies to ensure it works.

  # s.requires_arc = true

  # s.xcconfig = { "HEADER_SEARCH_PATHS" => "$(SDKROOT)/usr/include/libxml2" }
  # s.dependency "JSONKit", "~> 1.4"

end

s.name:名稱,pod search 搜索的關鍵詞,註意這裡一定要和.podspec的名稱一樣,否則報錯
s.version:版本號
s.ios.deployment_target:支持的pod最低版本
s.summary: 簡介
s.homepage:項目主頁地址
s.license:許可證
s.author:作者
s.social_media_url:社交網址
s.source:項目的地址
s.source_files:需要包含的源文件
s.resources: 資源文件
s.requires_arc: 是否支持ARC
s.dependency:依賴庫,不能依賴未發佈的庫
s.dependency:依賴庫,如有多個可以這樣寫

(註: 也有這樣寫: s.license= { :type => "MIT", :file => "LICENSE" }


7, 創建tag,並推送到github,依次執行以下命令:

$ git add .
$ git commit -m "0.0.1"
$ git tag 0.0.1
$ git push --tags
$ git push origin master

(註: 當執行完 git push --tags  後終端會讓你輸入GitHub的賬號和密碼)

Username for 'https://github.com':
Password for 'https://[email protected]': 

8, 驗證podspec文件

$ pod spec lint Redirect.podspec

如果終端提示 (but you can use `--allow-warnings` to ignore them).

你可以

$ pod spec lint Redirect.podspec --allow-warnings
  • 如果驗證不通過,會有詳細的ERROR和WARING提示,根據提示依次解決,然後回到第7步重新來一遍。
    註意:在重新開始之前,我們要刪除遠程庫的tag和本地的tag,命令如下:
$ git tag -d 1.2                   //刪除本地tag
$ git push origin :refs/tags/1.2  // 刪除遠程庫tag

如果驗證通過會這樣顯示

9, 如果是第一次提交,需要先執行這個命令:

$ pod trunk register 這裡寫郵箱 '這裡起個名字' --description=' 這裡寫描述'

執行完成之後,會給你的郵箱里發一封郵件,去郵箱點擊鏈接!

然後提交到CocoaPods

(註意:由於我驗證podspec文件時使用了--allow-warnings 所以這裡後面也加上--allow-warnings)

pod trunk push Redirect.podspec --allow-warnings

10, 提交完成後,就可以通過cocopods查找Redirect了

(註意:)剛提交後項目用pod search命令會搜不到,因為本地的索引沒有更新,使用下麵命令刪除索引文件

rm ~/Library/Caches/CocoaPods/search_index.json

最後pod search 命令搜到自己的項目,大功告成

 如果還是不行就再執行

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

再進行pod search,

-完美

這樣就可以進行使用了.

最後感謝各位大佬

參考:

https://www.jianshu.com/p/0e1d796b2a42

https://www.jianshu.com/p/a1339d45a324

http://www.cocoachina.com/ios/20160301/15459.html

https://www.cnblogs.com/richard-youth/p/4704413.html

https://www.jianshu.com/p/283584683b0b

https://www.cnblogs.com/xzjxylophone/p/4956469.html

 https://www.jianshu.com/p/b5e5cd053464


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

-Advertisement-
Play Games
更多相關文章
  • Spirng Boot構建 1、輸入命令 mvn archetype:generate -Dinteractivemodel=false -DgroupId=com.immoc -DartifactId=first-app-by-maven -Dversion=1.0.0-SNAPSHOT。 2、通 ...
  • 本文簡要介紹了Android設備上Unity應用遠程profiling的方法。 ...
  • 在目錄上面右擊,有 Reformat Code Ctrl + Alt + L 參考 "如何在IntelliJ IDEA或Android Studio中一次性格式化所有代碼?" ...
  • 這篇博客要講的是自定義switchButton,不過沒有設置動畫效果。 我用GradientDrawable來繪製switchButton,我們先看看最終的效果: 點擊前: 點擊後 接下來我們看看如何實現 首先:該類繼承RelativeLayout 該類需要用到的成員: 構造方法: 設置點擊事件 以 ...
  • iOS 10 以後記得在plist裡面添加獲取拍照和相冊許可權,iOS 10 以後記得在plist裡面添加獲取拍照和相冊許可權,iOS 10 以後記得在plist裡面添加獲取拍照和相冊許可權,iOS 10 以後記得在plist裡面添加獲取拍照和相冊許可權,iOS 10 以後記得在plist裡面添加獲取拍照和 ...
  • 使用android studio開發程式時,有時會出現 waiting for debugger 卡住界面,軟體無法正常debug運行的情況,很多網友分享了一些解決辦法,比如: 1 打開cmd進入命令行,進入adb所在目錄先後執行adb kill-server,adb start-server。 2 ...
  • 由於業務需要,需要將開發的App從一個賬號(A賬號)轉移到另一個賬號(B賬號),這裡簡單介紹一下轉讓流程 ...
  • 1.先構建WrapRecyclerAdapter 2.構建WrapRecyclerView 我們最好還是模仿ListView的結構搞就搞到西,自定義一個WrapRecyclerView,可以添加刪除頭部和底部View,這個就比較簡單 3.使用: ...
一周排行
    -Advertisement-
    Play Games
  • 移動開發(一):使用.NET MAUI開發第一個安卓APP 對於工作多年的C#程式員來說,近來想嘗試開發一款安卓APP,考慮了很久最終選擇使用.NET MAUI這個微軟官方的框架來嘗試體驗開發安卓APP,畢竟是使用Visual Studio開發工具,使用起來也比較的順手,結合微軟官方的教程進行了安卓 ...
  • 前言 QuestPDF 是一個開源 .NET 庫,用於生成 PDF 文檔。使用了C# Fluent API方式可簡化開發、減少錯誤並提高工作效率。利用它可以輕鬆生成 PDF 報告、發票、導出文件等。 項目介紹 QuestPDF 是一個革命性的開源 .NET 庫,它徹底改變了我們生成 PDF 文檔的方 ...
  • 項目地址 項目後端地址: https://github.com/ZyPLJ/ZYTteeHole 項目前端頁面地址: ZyPLJ/TreeHoleVue (github.com) https://github.com/ZyPLJ/TreeHoleVue 目前項目測試訪問地址: http://tree ...
  • 話不多說,直接開乾 一.下載 1.官方鏈接下載: https://www.microsoft.com/zh-cn/sql-server/sql-server-downloads 2.在下載目錄中找到下麵這個小的安裝包 SQL2022-SSEI-Dev.exe,運行開始下載SQL server; 二. ...
  • 前言 隨著物聯網(IoT)技術的迅猛發展,MQTT(消息隊列遙測傳輸)協議憑藉其輕量級和高效性,已成為眾多物聯網應用的首選通信標準。 MQTTnet 作為一個高性能的 .NET 開源庫,為 .NET 平臺上的 MQTT 客戶端與伺服器開發提供了強大的支持。 本文將全面介紹 MQTTnet 的核心功能 ...
  • Serilog支持多種接收器用於日誌存儲,增強器用於添加屬性,LogContext管理動態屬性,支持多種輸出格式包括純文本、JSON及ExpressionTemplate。還提供了自定義格式化選項,適用於不同需求。 ...
  • 目錄簡介獲取 HTML 文檔解析 HTML 文檔測試參考文章 簡介 動態內容網站使用 JavaScript 腳本動態檢索和渲染數據,爬取信息時需要模擬瀏覽器行為,否則獲取到的源碼基本是空的。 本文使用的爬取步驟如下: 使用 Selenium 獲取渲染後的 HTML 文檔 使用 HtmlAgility ...
  • 1.前言 什麼是熱更新 游戲或者軟體更新時,無需重新下載客戶端進行安裝,而是在應用程式啟動的情況下,在內部進行資源或者代碼更新 Unity目前常用熱更新解決方案 HybridCLR,Xlua,ILRuntime等 Unity目前常用資源管理解決方案 AssetBundles,Addressable, ...
  • 本文章主要是在C# ASP.NET Core Web API框架實現向手機發送驗證碼簡訊功能。這裡我選擇是一個互億無線簡訊驗證碼平臺,其實像阿裡雲,騰訊雲上面也可以。 首先我們先去 互億無線 https://www.ihuyi.com/api/sms.html 去註冊一個賬號 註冊完成賬號後,它會送 ...
  • 通過以下方式可以高效,並保證數據同步的可靠性 1.API設計 使用RESTful設計,確保API端點明確,並使用適當的HTTP方法(如POST用於創建,PUT用於更新)。 設計清晰的請求和響應模型,以確保客戶端能夠理解預期格式。 2.數據驗證 在伺服器端進行嚴格的數據驗證,確保接收到的數據符合預期格 ...