cocoapods 使用例子: 整合社會化分享
持續創作,加速成長!這是我參與「掘金日新計劃 · 6 月更文挑戰」的第15天,點選檢視活動詳情
前言
在 Bundler 和 RubyGems 的啟發下,CocoaPods 被設計成即能處理庫之間的依賴關係,又能自動下載並且配置好所需要的庫。
為了避免修改第三方庫之後,使用pod install的時候 更新了庫,採用引數--verbose --no-repo-update
,只安裝新新增的庫
I cocoapods 用法
CocoaPods 可以方便地通過 RubyGems 安裝,開啟 Terminal,然後鍵入以下命令:
```bash sudo gem install cocoapods
```
1.1 Podfile:申明專案程式碼相關性
Podfile這個檔案是用來用來申明專案程式碼相關性的,正如Bundler的Gemfile,或者npm的package.json。
建立一個 Podfile:cd進入.xcodeproj檔案所在的目錄,通過命令pod init
來建立一個 Podfile
```bash pod 'X', '~> 1.1'
``
[語義化版本](http://semver.org/lang/zh-CN/): 用一組簡單的規則及條件來約束版本號的配置和增長
版本格式:
主版本號.次版本號.修訂號`,版本號遞增規則如下:
- 主版本號:當你做了不相容的 API 修改,
- 次版本號:當你做了向下相容的功能性新增,
- 修訂號:當你做了向下相容的問題修正。
先行版本號及版本編譯資訊可以加到“主版本號.次版本號.修訂號”的後面,作為延伸。
1.2 更新本地庫
```bash pod repo update --verbose
```
只更新公開的CocoaPods/Specs.git
```powershell pod repo update master
```
1.3 只安裝新新增的庫,已更新的庫忽略
```powershell
!/bin/sh
該命令只安裝新新增的庫,已更新的庫忽略
pod install --verbose --no-repo-update
該命令只更新指定的庫,其它庫忽略
pod update 庫名 --verbose --no-repo-update
exit 0%
```
pod install
安裝過程中,CocoPods 會使用遞迴來分析所有的需求,並且建立一個程式碼相關性的圖,最後將 Podfile 序列化為Podfile.lock。
CocoaPods 會建立一個新的包含之前安裝好的靜態庫 Xcode 專案,然後將它們連結成一個新的 libPods target。原有的專案將會依賴這個新的靜態庫。一個 xcworkspace 檔案會被建立,從此之後,只需要開啟這個 xcworkspace 檔案來進行專案管理開發。
反覆使用 pod install 命令,只會讓 CocoaPods 重複以上步驟,重新安裝這些庫。所以,當你需要升級它們時,請使用以下命令:pod update
。
1.4 只更新指定的庫,其它庫忽略
pod update 庫名 --verbose --no-repo-update 只更新指定的庫,其它庫忽略
- 例子 ```ruby pod update JPush --verbose --repo-update
```
II 例子(整合社會化分享)
http://blog.csdn.net/u011018979/article/details/124340777
2.1 U-Share SDK 整合步驟
-
建立應用,獲取Appkey;
整合友盟+ U-Share SDK之前,您首先需要到 【友盟+】官網註冊一個新應用,獲得Appkey。
-
手動下載U-Share SDK 整合 / 自動整合(pods、maven)請看接入指南
-
接入SDK:
```bash pod 'UMCommon' //必須整合,由原來的UMCCommon變為了UMCommon pod 'UMDevice' //必須整合
U-Share SDK UI模組(分享面板,建議新增)
pod 'UMShare/UI' //由原來的UMCShare/UI變為了UMShare/UI
整合微信(完整版14.4M)
pod 'UMShare/Social/WeChat'
```
```bash
只更新指定的庫,其它庫忽略
pod update 庫名 --verbose --no-repo-update 只更新指定的庫,其它庫忽略
pod update UMCommon --verbose --repo-update
```
- 分享設定
2.2 配置Universal link
整合完整版的微信、QQ和微博必須要配置Universal link。
微信對Universal Links配置有以下要求:
-
Universal Links必須支援https
-
Universal Links配置的paths不能帶query引數
微信使用Universal Links拉起第三方App時,會在Universal Links末尾拼接路徑和引數,因此App配置的paths必須加上萬用字元/*
推薦使用友盟的U-Link,2021年6月3日起,U-Link後臺上線了Universal link免費生成及重定向功能,免去開發者自行配置。
```xml
+
```
檢查Universal link是否能夠喚起App:如不能請檢視Universal link配置方法文件,檢查能否在瀏覽器內直接訪問apple-app-site-association檔案。
Universal link配置並不是立即生效的,App第一次啟動時,iOS系統去官網下載配置的associate檔案(拉取這個時間是不可控的,最多會有兩三天的延遲)。以後除非App更新或重新安裝,否則不會在每次開啟時請求apple-app-site-association
配置Universal link:http://developer.umeng.com/docs/191212/detail/191260#h1--universal-link6
2.3 使用友盟官方生成Universal link功能
http://developer.umeng.com/docs/191212/detail/250232
- TeamID:蘋果開發者的標識,需要去蘋果開發者官網上檢視,登入之後,開啟Account,點選左側選單中的MemberShip,就能看到teamID了,
- BundleID:iOS應用的唯一標識
填寫完這兩個引數,再填寫完此頁面的其他必填引數,點選頁面下方的儲存按鈕,友盟服務端就會自動生成一個Universal link連結,並且直接填充到了輸入框中。
2.4 第三方平臺配置
分享、登入操作時顯示的應用icon、名稱和對應開放平臺設定有關,必須要建立應用的平臺為:微信、QQ、新浪、釘釘、企業微信、支付寶、Facebook、Kakao、LinkeIn、Twitter。
登入微信開放平臺,填寫相關應用資訊,稽核通過後獲取到微信AppID及AppSecret,如果需要微信登入功能,需要申請微信登入許可權,注意微信登入有效期為一年,需要按時在微信平臺認證
從2020年6月1日起該舊版本SDK會被微信限制使用正常分享功能(分享時會顯示“未驗證應用”)。因此U-Share已下線微信iOS精簡版,且後續不再提供。
建議已使用微信iOS精簡版的客戶,後續使用微信iOS完整版,可以體驗更多高階功能。
III 建立自己的 CocoaPod
花幾分鐘建立一個.podspec檔案可以節省下其他開發者無數的時間。 http://blog.csdn.net/z929118967/article/details/103830544
.podspec
檔案作為 CocoaPods 的一個獨立單元,包含了名稱,版本,許可證,和原始碼檔案等所有資訊。
pod trunk register [email protected] "iosre "
註冊自己的電腦,使用 Trunk 服務釋出 CocoaPod:$ pod trunk push NAME.podspec
。
IV 常見問題
問題: CDN: trunk URL couldn't be downloaded: http://raw.githubusercontent.com/CocoaPods/Specs/master/Spec
錯誤資訊: ```objectivec CDN: trunk URL couldn't be downloaded: http://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/b/b/f/PGDatePicker/2.2.0/PGDatePicker.podspec.json Response: Couldn't connect to server
```
解決方案:在pod 檔案新增
```objectivec source 'http://github.com/CocoaPods/Specs.git'
```
- iOS小技能:UITableView的適配 (iOS10/iOS14/iOS16.0)
- iOS小技能:和uni-app、unity的融合方案
- iOS小技能:iOS15崩潰排查技巧(symbolicatecrash符號化分析問題、匯出和隱藏符號)
- iOS小技能:【intercept the HTTP/HTTPS requests 】利用NSURLProtocol 攔截請求
- iOS小技能: tweak 整合CocoaAsyncSocket(建連、斷開、重連、心跳、通用請求)
- iOS小技能:iOS13 證件掃描 & 文字識別API
- iOS小技能:整合下拉重新整理控制元件 & 實現無感知上拉載入更多
- iOS小技能:程式碼觸發button的點選事件、快速找到按鈕action方法
- iOS小技能:撥號、發郵件、簡訊、應用間跳轉
- iOS小技能:鏈式程式設計在iOS開發中的應用
- iOS小技能:iOS14 讀取使用者剪下板資料彈出提示的相容方案
- iOS小技能:因境外IP無法訪問導致 App 被拒的解決方案
- iOS小技能:RSA簽名、驗籤、加密、解密的原理
- iOS小技能:Xcode14新特性(適配)
- iOS小技能:Socket基礎知識
- iOS小技能:SKU檢視搭建
- iOS小技能: 日曆的使用(案例:兩個時間的比較、獲取最近30天的資料)
- iOS小技能:1. iOS 實現json資料提交 2. 對同一個URL的多次請求進行資料快取 3. 檢查網路狀態
- iOS小技能:使用正則表示式對聊天記錄的關鍵詞進行監控
- iOS小技能:去掉/新增導航欄黑邊(iOS13適配)