mirror of
https://github.com/NohamR/knowledge-kit.git
synced 2026-05-25 04:17:17 +00:00
docs: APM 监控部分
This commit is contained in:
@@ -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.
|
||||
|
||||
Reference in New Issue
Block a user