You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

GitHub CI工作流能否自动获取CocoaPods推送所需会话?

解决方案

首先明确:不需要每次推送都手动点击验证邮件,也不需要在CI工作流中重复执行pod trunk register命令。

核心原理

pod trunk register是仅需执行一次的操作:你在本地设备执行该命令并点击验证邮件完成授权后,本地会生成~/.netrc文件,其中存储了CocoaPods Trunk的长期有效会话凭证,只要你没有主动执行pod trunk logout操作,该凭证就可以一直用于推送操作。

具体操作步骤

  • 先在本地开发设备执行一次pod trunk register 你的注册邮箱 你的用户名,手动点击收到的验证邮件链接完成首次授权
  • 打开本地~/.netrc文件,复制trunk.cocoapods.org对应的完整配置段,内容格式如下:
    machine trunk.cocoapods.org
      login 你的CocoaPods注册邮箱
      password 你的会话秘钥
    
  • 将上述完整配置内容存入GitHub仓库的Secrets中,命名为COCOPODS_NETRC
  • 修改你的工作流脚本,删除原有的Get Sesssion步骤,替换为写入凭证的步骤即可

修改后的工作流示例

name: validate
on: [push]
jobs:
  unit-tests:
    runs-on: macos-latest
    strategy:
      matrix:
        destination:
          [
            'platform=iOS Simulator,name=iPhone 12 Pro',
          ]
    steps:
      - name: Checkout Repo
        uses: actions/checkout@v2
      - name: Run Tests
        run: |-
          cd Example
          xcodebuild test -scheme SwiftAudio-Example -destination "${destination}" -enableCodeCoverage YES
        env:
          destination: ${{ matrix.destination }}
          
      - name: 写入CocoaPods会话凭证
        run: echo "${{ secrets.COCOPODS_NETRC }}" > ~/.netrc
      - name: Push Repo to Cocoapods
        run: pod trunk push SwiftAudioEx.podspec --allow-warnings

注意事项

  • 凭证内容绝对不要硬编码到工作流代码中,必须存储在GitHub Secrets中避免泄露
  • 如果后续推送提示凭证失效,只需要在本地重新执行一次pod trunk register完成验证,更新Secrets里的COCOPODS_NETRC内容即可

内容的提问来源于stack exchange,提问作者Dolphin

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.25 20:15:03