docs: APM 监控部分

This commit is contained in:
杭城小刘
2020-04-06 22:35:27 +08:00
parent fb73c0acf4
commit 32d90b27fc
34 changed files with 2702 additions and 126 deletions

View File

@@ -1,4 +1,4 @@
# Pod
# cocoapods 相关小技巧
## 1. 组件的地址
@@ -202,4 +202,69 @@ install! 'cocoapods', generate_multiple_pod_projects: true
```shell
sudo gem uninstall cocoapods-core cocoapods cocoapods-deintegrate cocoapods-downloader cocoapods-plugins cocoapods-search cocoapods-stats cocoapods-trunk cocoapods-try coderay colored2 concurrent-ruby cocoapods-clean
sudo gem install cocoapods
```
```
## 14. pod 拉取代码太慢
在平时开发的时候,使用 cocoapods 拉取代码经常会比较慢,偶尔一次两次也还可以忍受,但是某些哭每次都很慢,而且 install 的时候工程被修改,没办法编译开发。所以需要想个办法解决这种问题。
其实知道 cocoapods 的工作原理的话,我们可以投机取巧。做过 SDK 开发的同学一般都知道,代码开发、测试完毕后需要 lint将 podspec 文件提交到中心。项目中 Podfile 中添加依赖描述,依赖可以用 分支、tag、path 等形式指定。
方法一:
所以明白怎么工作的,我们可以在本地搭建一个静态服务,专门用来提供较大 SDK 的下载,拿 NodeJS、python、Java、php 都可以,很快写一个静态服务。然后从本地 `.cocoapods` 里找到对应的 SDK 文件夹,修改 podspec 文件,修改 **source** 为本地服务器地址资源地址。
由于本地静态服务里面的资源可能会停留在较早版本,所以可以使用定时服务拉取 github 项目最新代码。crontab + shell 做这个很容易。
方法二:
前端有 jsdeliver针对 js/css 加速访问。但是它也支持 github 上的仓库。
但是包大小限制jsdeliver 规定单个文件不能大于 20M仓库的某版本不能大于 50M。所以可以对大文件进行 **xz 压缩**。
Mac split 命令可以拆分包cat 可以合并包。
```shell
// 分割文件
split -b 10m xxxx.tar.xz xxxx.tar.xz .
// 查看效果
ll xxxx.xz*
// 合并
cat xxxx.tar.xz.* > xxxx.tar.xz
// 再次验证大小
ll xxxx.tar.xz
// 解压
mkdir unpackedDir
mv xxxx.tar.xz unpackedDir
cd unpackedDir
tar vxf xxxx.tar.xz
```
所以我们可以将较大的库拆分多个,部署到 jsdeliver然后使用的时候进行加速。
这一步可以是脚本自动完成,写脚本,将文件夹压缩,拆分,上传。
所以使用的时候类似
```shell
wget https://cdn.jsdelivr.net/mmm/xxxx.tar.xz.aa
wget https://cdn.jsdelivr.net/mmm/xxxx.tar.xz.ab
wget https://cdn.jsdelivr.net/mmm/xxxx.tar.xz.ac
cat xxxx.tar.xz.* > xxxx.tar.xz
tar xvf xxxx.tar.xz
rm xxxx.tar.xz.* xxxx.tar.xz
```
结合 cocoapods 的 **prepare_command** 使用。
比如
```ruby
Pod::Spec.new do |s|
s.name = 'xxxx'
s.prepare_command = <<-CMD
sh cat.sh
CMD
end
```
## 15.