自行上传iOS ipa到App Store

如果你很闲而且不想借助在线平台,自行上传ipa到App Store,你需要准备以下工具:

1.打包好的ipa文件

2.github账号(需要耐心或者科学上网)

3.苹果开发者账号

本教程操作完成需耗时15分钟

一、创建github仓库

由于ipa上传需要借助mac系统,而你如果刚好没有mac,就需要创建github仓库,借助工作流程功能来实现(公共仓库免费,私有仓库每月2000分钟使用,上传一次大约2分钟)

github创建库

二、编写工作流程

需要自行编写工作流程,首先需要确定项目结构,创建好文件夹(需要把ipa文件也放进去)

只需要编写2个文件,upload.yml与Fastfile

upload.yml文件

name: Upload to App Store

on:
  push:
    branches:
      - master
  workflow_dispatch:  # 手动触发(防止自动运行)

jobs:
  upload:
    runs-on: macos-latest

    steps:
      - name: Checkout repository
        uses: actions/checkout@v4

      - name: Set up Ruby
        uses: ruby/setup-ruby@v1
        with:
          ruby-version: 3.1.2

      - name: Install Fastlane
        run: gem install fastlane

      - name: Upload IPA to App Store
        env:
          APP_STORE_CONNECT_API_KEY_ID: ${{ secrets.APP_STORE_CONNECT_API_KEY_ID }}
          APP_STORE_CONNECT_ISSUER_ID: ${{ secrets.APP_STORE_CONNECT_ISSUER_ID }}
          APP_STORE_CONNECT_API_PRIVATE_KEY: ${{ secrets.APP_STORE_CONNECT_API_PRIVATE_KEY }}
          APP_STORE_CONNECT_TEAM_ID: ${{ secrets.APP_STORE_CONNECT_TEAM_ID }}
        run: fastlane upload

注意事项:

1.其中的APP_STORE_CONNECT_开头的参数都需要后续再仓库添加加密值。

2.push那段是每次上传更新仓库时都执行一次本工作流程(如果想完全手动运行可以删除掉)。

3.如果你的苹果开发者账号类型是个人,则不必填写APP_STORE_CONNECT_TEAM_ID,可以删除掉。

Fastfile

default_platform(:ios)

platform :ios do
  desc "Upload IPA to App Store"
  lane :upload do
    deliver(
      ipa: "release/app.ipa",
      force: true, # 覆盖已存在的版本
      skip_metadata: true, # 跳过元数据上传
      skip_screenshots: true, # 跳过截图上传
      submit_for_review: false, # 不提交审核(仅上传 IPA)
      run_precheck_before_submit: false, # 禁用预检查
      team_id: ENV["APP_STORE_CONNECT_TEAM_ID"],
      api_key: app_store_connect_api_key(
        key_id: ENV["APP_STORE_CONNECT_API_KEY_ID"],
        issuer_id: ENV["APP_STORE_CONNECT_ISSUER_ID"],
        key_content: ENV["APP_STORE_CONNECT_API_PRIVATE_KEY"],
        in_house: false # 非企业账号设为 false
      )
    )
  end
end

注意事项:

1.确定ipa文件是否在仓库中,对应配置可以自行调整,企业账号指299美元那种,普通个人或组织就false。

2.如果你的苹果开发者账号类型是个人,则不必填写team_id,可以删除掉。

编写完后可以上传到github,初始化完成仓库后进行下一步

三、申请苹果开发者密钥

想上传ipa需要申请苹果的api密钥,本教程是按开启了双重认证的苹果账号为例子,访问以下链接:

苹果开发者后台用户管理

进入到指定页面创建密钥,获取我们提交所需要的信息

创建之后我们就能获取的Issuer ID、密钥ID、p8文件,如果你的开发者类型是组织而不是个人,还需要到个人资料获取团队ID

获取到我们需要的信息后,就可以进行下一步填写配置

四、准备上传配置

进入到github对应仓库的设置页面,添加3-4个加密值

APP_STORE_CONNECT_ISSUER_ID:对应App Store Connect生成的Issuer ID

APP_STORE_CONNECT_API_KEY_ID:对应App Store Connect创建的密钥ID

APP_STORE_CONNECT_API_PRIVATE_KEY:对应App Store Connect创建密钥后下载的p8文件内容(复制p8文件内容后直接粘贴)

APP_STORE_CONNECT_TEAM_ID:App Store Connect所在的团队ID(非组织类型账号可以不使用,对应文件需删除字段行)

添加后便可以准备开始上传ipa了

五、执行工作流程

还是在对应仓库,进入到动作页,找到刚刚上传后出现的动作(如果没有出现,则多提交几次yml),执行workflow

执行后会出现运行过程,点击可以进入查看

出现错误是正常的,因为提交的ipa无法直接审核,可能会出现预检查不过关的情况(不影响上传到App Store)

当出现Successfully uploaded package to App Store Connect. It might take a few minutes until it's visible online.时就代表已经上传到App Store了,只需要再去选中构建版本补充信息就能使用了

之后每次需要提交ipa,只需要更新ipa文件,推送到仓库就会执行一次

注意事项:

1.使用时出现无法覆盖之前已上传的ipa版本,目前只能更新ipa的版本号来实现重新上传。

2.app的版本无法被删除,而且必须先提交当前版本才能再创建新版本。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值