一台电脑管理多个cocoapods账号

发布于:2025-06-20 ⋅ 阅读:(20) ⋅ 点赞:(0)

需求:

**我的需求是:**我需要在一个电脑上管理两个cocoapods账号,一个用于公司SDK的发布,一个用于自己平时测试用。

**我的问题是:**当我创建第二个账号成功后(第二个账号的邮箱必须和第一个不同),第一个账号的信息就查不到了。

问题分析:

CocoaPods 默认只支持一个活跃 session,CocoaPods默认是使用**~/.netrc文件来存储认证token。当我创建新的账号时,新的token就会被写入到~/.netrc**文件中,但是会覆盖第一个账号的token,如何需要同时在一台电脑上存在两个及以上的CocoaPods账号就需要备份每一个token,我们需要使用不同的方式来管理多个账号的凭证。

解决方案:

由于CocoaPods本身并不支持多账号切换,我们需要手动管理多个账号的token。

以下是几种方法:

方法1:使用环境变量

CocoaPods可以通过环境变量**COCOAPODS_TRUNK_TOKEN**来指定当前会话使用的token。这样我们可以为不同的账号设置不同的token,并在使用前设置相应的环境变量。

1. 注册CocoaPods账号,并保存注册时得到的token(注册时会发送邮件,邮件中有验证链接,点击验证后,token才有效)

注意:每个账号的token是唯一的,并且长期有效(除非在网页上重置)

# 注册第一个账号
pod trunk register your-first-email@example.com "First Name" --description='MacBook Pro'

# 验证第一个账号邮箱:去邮箱点击邮件中的验证链接。未验证的 token 无法执行 pod trunk 命令

# 查看当前登录状态
# 如果报错 [!] Authentication token is invalid or unverified
# 表示当前 token 无效或未验证
pod trunk me

# 验证成功后备份当前账号凭证
cp ~/.netrc ~/.netrc_account1

# 注册第二个账号
pod trunk register your-second-email@example.com "Second Name" --description='MacBook Pro'

# 验证第二个账号邮箱
# 备份第二个账号凭证
cp ~/.netrc ~/.netrc_account2

到此根目录就存在三个token文件了:.netrc .netrc_account1 .netrc_account2

2. 使用环境变量管理会话

# 创建账号1的环境变量
echo "export COCOAPODS_TRUNK_TOKEN_ACCOUNT1='your-token-here'" >> ~/.bash_profile

# 创建账号2的环境变量
echo "export COCOAPODS_TRUNK_TOKEN_ACCOUNT2='your-other-token-here'" >> ~/.bash_profile

# 刷新环境
source ~/.bash_profile

# 使用特定账号
function pod-account1() {
    export COCOAPODS_TRUNK_TOKEN=$COCOAPODS_TRUNK_TOKEN_ACCOUNT1
    pod "$@"
}

function pod-account2() {
    export COCOAPODS_TRUNK_TOKEN=$COCOAPODS_TRUNK_TOKEN_ACCOUNT2
    pod "$@"
}

3. 创建切换脚本( cocoapods-switch.sh),移动脚本到PATH

脚本内容:

if [ "$1" = "account1" ]; then
    # 切换到账号1
    cp ~/.netrc_account1 ~/.netrc
    echo "Switched to CocoaPods account: account1"
elif [ "$1" = "account2" ]; then
    # 切换到账号2
    cp ~/.netrc_account2 ~/.netrc
    echo "Switched to CocoaPods account: account2"
else
    echo "Usage: cocoapods-switch [account1|account2]"
fi

在终端运行:

# 创建切换脚本
nano cocoapods-switch.sh

# 粘贴上面的脚本内容

# 设置权限
chmod +x cocoapods-switch.sh

# 移动脚本到 PATH
sudo mv cocoapods-switch.sh /usr/local/bin/

4. 多账号操作流程

# 切换到账号1
cocoapods-switch account1

# 验证账号1状态,可以看到账号1的信息
pod trunk me

# 发布到账号1的仓库
pod trunk push MyPod.podspec

# 切换到账号2
cocoapods-switch account2

# 验证账号2状态,可以看到账号2的信息
pod trunk me

# 发布到账号2的仓库
pod trunk push OtherPod.podspec

方法2:使用脚本文件

前面的账号创建和备份Token是相同的就不重复了。

创建和使用 pod-switch 脚本

终端运行:

# 使用 nano 编辑器创建文件
nano pod-switch

复制并粘贴以下内容:

# 检查参数数量
if [ $# -ne 1 ]; then
    echo "Usage: pod-switch [account1 | account2]"
    echo "Current account:"
    pod trunk me | grep "Email" || echo "No active account"
    exit 1
fi

# 根据参数切换账号
if [ "$1" = "account1" ]; then
    cp ~/.netrc_ account1 ~/.netrc 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "✅ Switched to Account1 CocoaPods account"
        pod trunk me | grep "Email"
    else
        echo "❌ Error: Account1 credentials not found"
        echo "Run 'cp ~/.netrc ~/.netrc_ account1' to backup your account1"
    fi
elif [ "$1" = "account2" ]; then
    cp ~/.netrc_ account2 ~/.netrc 2>/dev/null
    if [ $? -eq 0 ]; then
        echo "✅ Switched to account2 CocoaPods account"
        pod trunk me | grep "Email"
    else
        echo "❌ Error: account2 credentials not found"
        echo "Run 'cp ~/.netrc ~/.netrc_ account2' to backup your account2"
    fi
else
    echo "❌ Invalid account name. Use 'account1' or 'account2'"
    exit 1
fi

保存并退出编辑器

  1. 按 Ctrl + O 保存文件

  2. 按 Enter 确认文件名

  3. 按 Ctrl + X 退出 nano

设置执行权限:chmod +x pod-switch

移动到可执行路径

sudo mv pod-switch /usr/local/bin/

验证脚本安装

which pod-switch

应该输出: /usr/local/bin/pod-switch

使用 pod-switch 脚本

# 切换到主账号
pod-switch account1

# 验证账号
pod trunk me

# 切换到第二个账号
pod-switch account2

# 验证账号
pod trunk me

测试验证:

操作流程


网站公告

今日签到

点亮在社区的每一天
去签到