cocoapods 使用例子: 集成社会化分享

2,136 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 6 月更文挑战」的第15天,点击查看活动详情

前言

在 Bundler 和 RubyGems 的启发下,CocoaPods 被设计成即能处理库之间的依赖关系,又能自动下载并且配置好所需要的库。

为了避免修改第三方库之后,使用pod install的时候 更新了库,采用参数--verbose --no-repo-update,只安装新添加的库

I cocoapods 用法

CocoaPods 可以方便地通过 RubyGems 安装,打开 Terminal,然后键入以下命令:

sudo gem install cocoapods

1.1 Podfile:申明项目代码相关性

Podfile这个文件是用来用来申明项目代码相关性的,正如Bundler的Gemfile,或者npm的package.json。

创建一个 Podfile:cd进入.xcodeproj文件所在的目录,通过命令pod init来创建一个 Podfile

pod 'X', '~> 1.1'

语义化版本: 用一组简单的规则及条件来约束版本号的配置和增长 版本格式:主版本号.次版本号.修订号,版本号递增规则如下:

  1. 主版本号:当你做了不兼容的 API 修改,
  2. 次版本号:当你做了向下兼容的功能性新增,
  3. 修订号:当你做了向下兼容的问题修正。

先行版本号及版本编译信息可以加到“主版本号.次版本号.修订号”的后面,作为延伸。

1.2 更新本地库

pod repo update --verbose

在这里插入图片描述

只更新公开的CocoaPods/Specs.git

 pod repo update master

1.3 只安装新添加的库,已更新的库忽略

#!/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 只更新指定的库,其它库忽略

  • 例子
pod update JPush --verbose  --repo-update  

II 例子(集成社会化分享)

blog.csdn.net/u011018979/…

2.1 U-Share SDK 集成步骤

  1. 创建应用,获取Appkey;

集成友盟+ U-Share SDK之前,您首先需要到 【友盟+】官网注册一个新应用,获得Appkey。

  1. 手动下载U-Share SDK 集成 / 自动集成(pods、maven)请看接入指南

  2. 接入SDK:

    pod 'UMCommon'    //必须集成,由原来的UMCCommon变为了UMCommon
    pod 'UMDevice'       //必须集成
# U-Share SDK UI模块(分享面板,建议添加)
    pod 'UMShare/UI'               //由原来的UMCShare/UI变为了UMShare/UI

#集成微信(完整版14.4M)
    pod 'UMShare/Social/WeChat'

#只更新指定的库,其它库忽略
pod update 库名 --verbose --no-repo-update 只更新指定的库,其它库忽略

pod update UMCommon --verbose --repo-update  

cocoapods 小技能:只安装新添加的库,已更新的库忽略 (pod install --verbose --no-repo-update) https://blog.csdn.net/z929118967/article/details/103830017

  1. 分享设置

2.2 配置Universal link

集成完整版的微信、QQ和微博必须要配置Universal link。

微信对Universal Links配置有以下要求:

  1. Universal Links必须支持https

  2. Universal Links配置的paths不能带query参数

微信使用Universal Links拉起第三方App时,会在Universal Links末尾拼接路径和参数,因此App配置的paths必须加上通配符/*

推荐使用友盟的U-Link,2021年6月3日起,U-Link后台上线了Universal link免费生成及重定向功能,免去开发者自行配置。

+       <key>com.apple.developer.associated-domains</key>
+       <array>
+               <string>xxx.umindex.com</string>
+       </array>

developer.apple.com/documentati…

检查Universal link是否能够唤起App:如不能请查看Universal link配置方法文档,检查能否在浏览器内直接访问apple-app-site-association文件。

Universal link配置并不是立即生效的,App第一次启动时,iOS系统去官网下载配置的associate文件(拉取这个时间是不可控的,最多会有两三天的延迟)。以后除非App更新或重新安装,否则不会在每次打开时请求apple-app-site-association

配置Universal link:https://developer.umeng.com/docs/191212/detail/191260#h1--universal-link6

2.3 使用友盟官方生成Universal link功能

developer.umeng.com/docs/191212… 在这里插入图片描述

  1. TeamID:苹果开发者的标识,需要去苹果开发者官网上查看,登录之后,打开Account,点击左侧菜单中的MemberShip,就能看到teamID了,
  2. BundleID:iOS应用的唯一标识

填写完这两个参数,再填写完此页面的其他必填参数,点击页面下方的保存按钮,友盟服务端就会自动生成一个Universal link链接,并且直接填充到了输入框中。

2.4 第三方平台配置

分享、登录操作时显示的应用icon、名称和对应开放平台设置有关,必须要创建应用的平台为:微信、QQ、新浪、钉钉、企业微信、支付宝、Facebook、Kakao、LinkeIn、Twitter。

developer.umeng.com/docs/128606…

登录微信开放平台,填写相关应用信息,审核通过后获取到微信AppID及AppSecret,如果需要微信登录功能,需要申请微信登录权限,注意微信登录有效期为一年,需要按时在微信平台认证

从2020年6月1日起该旧版本SDK会被微信限制使用正常分享功能(分享时会显示“未验证应用”)。因此U-Share已下线微信iOS精简版,且后续不再提供。

建议已使用微信iOS精简版的客户,后续使用微信iOS完整版,可以体验更多高级功能。

III 建立自己的 CocoaPod

花几分钟创建一个.podspec文件可以节省下其他开发者无数的时间。 blog.csdn.net/z929118967/…

.podspec文件作为 CocoaPods 的一个独立单元,包含了名称,版本,许可证,和源码文件等所有信息。

pod trunk register kunnan@iosre.cn "iosre "注册自己的电脑,使用 Trunk 服务发布 CocoaPod:$ pod trunk push NAME.podspec

IV 常见问题

问题: CDN: trunk URL couldn't be downloaded: raw.githubusercontent.com/CocoaPods/S…

错误信息:

CDN: trunk URL couldn't be downloaded: https://raw.githubusercontent.com/CocoaPods/Specs/master/Specs/b/b/f/PGDatePicker/2.2.0/PGDatePicker.podspec.json Response: Couldn't connect to server

解决方案:在pod 文件添加

source 'https://github.com/CocoaPods/Specs.git'