
# 通过客户端上传/下载Cocoapods组件
CodeArts Artifact支持与本地客户端对接，用户A可以通过客户端的方式将本地客户端中的Cocoapods私有组件上传至CodeArts Artifact私有依赖库，其他用户再通过客户端的方式从CodeArts Artifact私有依赖库下载用户A上传的Cocoapods组件，实现Cocoapods组件的共享或传递。
#### Cocoapods组件介绍
CocoaPods是一个为iOS和macOS项目管理第三方库的依赖管理工具。它可以帮助开发者轻松地集成和管理项目中所需的库，极大地提高了开发效率和代码的可维护性。
#### 约束与限制
不同用户账号的私有依赖库仓库密码不同，当用户以不同账号访问私有依赖库时，如果需要使用仓库密码，则需要在各仓库"操作指导"中重新下载配置文件获取仓库密码。
#### 前提条件
- 已安装Ruby客户端与cocoapods-art插件。
- 已[创建Cocoapods仓库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0008.html)。
- 需要具备当前仓库的"下载/查看"权限，如需获取"下载/查看"的权限，请参考[配置私有依赖库权限](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0047.html)配置。
 
#### 通过客户端上传Cocoapods组件
**通过"下载配置文件替换"上传CocoaPods组件至私有依赖库**：
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在左侧边栏中单击对应的CocoaPods仓库。
3. 单击页面右侧"操作指导"。
4. 在"操作指导"对话框，选择"下载配置文件替换"，然后单击"下载配置文件"，下载配置文件"cocoapods.txt"。
5. 获取已下载的配置文件中的**{username}** 、**{password}**。
6. 在本地客户端执行以下命令，将本地CocoaPods软件包上传至对应的私有依赖库。 
   ```
   curl -k -u "<USERNAME>:<PASSWORD>" -XPUT "{url}/<TARGET_FILE_PATH>/" -T <PATH_TO_FILE>/<FILE_NAME>
   ```
   - USERNAME：[5]中获取的**{username}**。
   
   - PASSWORD：[5]中获取的**{password}**。
   
   - url：对应CocoaPods私有依赖库的仓库地址。
   
   - TARGET_FILE_PATH：需要存放的私有依赖库文件夹名称。
   
   - PATH_TO_FILE：需要上传组件的本地路径。
   
   - FILE_NAME：设置组件上传至私有依赖库的名称。
   
   
   
   
7. 在CocoaPods私有依赖库中查看已上传的组件。
**通过"按照命令行配置"** **上传CocoaPods组件至私有依赖库**：
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在左侧边栏中单击对应的CocoaPods仓库。
3. 单击页面右侧"操作指导"。
4. 在"操作指导"对话框，选择"按照命令行配置"。
5. 执行以下命令确认已安装Ruby客户端。 
   ```
   ruby -v
   ```
   
   
6. 执行以下安装命令安装cocoapods-art插件。 
   ```
   sudo gem install cocoapods-art
   ```
   
   
7. 执行以下命令将私有依赖库添加至您的CocoaPods客户端中。 
   ```
   pod repo-art add <repo_name> "{url}"
   ```
   - repo_name：设置本地客户端存放私有依赖库组件的文件夹名称。
   
   - url：CocoaPods私有依赖库的仓库地址。
   
   
   
   
8. 在选择用途中，单击"发布"。
9. 执行以下命令将本地客户端组件上传至对应的CocoaPods私有依赖库。 
   ```
   curl -k -u "<USERNAME>:<PASSWORD>" -XPUT "{url}/<TARGET_FILE_PATH>/" -T <PATH_TO_FILE>/<FILE_NAME>
   ```
   - USERNAME：[5]中获取的**{username}**。
   
   - PASSWORD：[5]中获取的**{password}**。
   
   - url：对应CocoaPods私有依赖库的仓库地址。
   
   - TARGET_FILE_PATH：需要存放的私有依赖库文件夹名称。
   
   - PATH_TO_FILE：需要上传组件的本地路径。
   
   - FILE_NAME：设置组件上传至私有依赖库的名称。
   
   
   
   
10. 在CocoaPods私有依赖库中查看已上传的组件。
#### 通过客户端下载Cocoapods组件
**通过"下载配置文件替换"，下载CocoaPods私有依赖库的组件**
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有库页面选择对应的CocoaPods仓库，单击"操作指导"。
3. 在"操作指导"对话框，选择"下载配置文件替换"。
4. 在选择用途中，单击"下载"。
5. 执行以下命令进行本地客户端下载等相关操作： 
   1. 执行如下命令下载远程私有依赖库中组件。
   
   
   ```
   pod repo-art add {package_name} {url}
   ```
   package_name：用户设置下载cocoapods依赖包名称。
   url：对应私有依赖库的仓库地址。
   执行修改命令（修改cocoapods私有依赖库地址）
   ```
   pod repo-art update {package_name} {url}
   ```
   package_name：cocoapods依赖包无法修改。
   url：输入目标私有依赖库的仓库地址。
   执行查询命令展示已下载的组件。
   ```
   pod repo-art list
   ```
   执行删除命令移除本地软件依赖包。
   ```
   pod repo-art remove <repo-name>//repo_name:cocoapods依赖包名称。
   ```
   
   
**通过"按照命令行配置"下载CocoaPods私有依赖库的组件**
1. 使用华为云账号[访问CodeArts Artifact的私有依赖库](https://support.huaweicloud.com/usermanual-cloudartifact/cloudartifact_01_0007.html#cloudartifact_01_0007__section1789618380209)。
2. 在私有库页面选择对应的CocoaPods仓库，单击"操作指导"。
3. 在"操作指导"对话框，选择"按照命令行配置"。
4. 执行以下命令来确认已安装Ruby客户端。 
   ```
   ruby -v
   ```
   
   
5. 执行以下安装命令来安装cocoapods-art插件。 
   ```
   sudo gem install cocoapods-art
   ```
   
   
6. 执行以下命令将私有依赖库添加至您的CocoaPods客户端中。 
   ```
   pod repo-art add <repo_name> "{url}"
   ```
   - repo_name：设置本地客户端存放私有依赖库组件的文件夹名称。
   
   - url：CocoaPods私有依赖库的仓库地址。
   
   
   
   
7. 在选择用途中，单击"下载"。
8. 执行以下命令进行本地客户端下载等相关操作： 
   执行刷新命令下载远程私有依赖库中组件。
   ```
   pod repo-art update {package_name}//package_name：组件名称。
   ```
   执行查询命令展示已下载的组件。
   ```
   pod repo-art list
   ```
   执行删除命令移除本地软件依赖包。
   ```
   pod repo-art remove <repo-name>//repo-name：cocoapods依赖包名称
   ```
   
   
 
