Skip to content

GitLab

  • Projects
  • Groups
  • Snippets
  • Help
    • Loading...
  • Help
    • Help
    • Support
    • Community forum
    • Submit feedback
    • Contribute to GitLab
  • Sign in / Register
T treasure
  • Project overview
    • Project overview
    • Details
    • Activity
    • Releases
  • Repository
    • Repository
    • Files
    • Commits
    • Branches
    • Tags
    • Contributors
    • Graph
    • Compare
  • Issues 12
    • Issues 12
    • List
    • Boards
    • Labels
    • Service Desk
    • Milestones
  • Merge requests 0
    • Merge requests 0
  • CI/CD
    • CI/CD
    • Pipelines
    • Jobs
    • Schedules
  • Operations
    • Operations
    • Incidents
    • Environments
  • Packages & Registries
    • Packages & Registries
    • Container Registry
  • Analytics
    • Analytics
    • CI/CD
    • Repository
    • Value Stream
  • Wiki
    • Wiki
  • External wiki
    • External wiki
  • Snippets
    • Snippets
  • Members
    • Members
  • Activity
  • Graph
  • Create a new issue
  • Jobs
  • Commits
  • Issue Boards
Collapse sidebar
  • FE
  • treasure
  • Issues
  • #77

Closed
Open
Created Mar 22, 2022 by zhoudanjie@zhoudanjieDeveloper

使用shell脚本打包并发布iOSApp

问题背景

iOS开发中打包和上传的常规方式是,使用XCode打包+Transporter上传App store。

除此以外,还可以使用shell脚本来处理打包上传工作。

脚本方式开始执行后就无须操作,自动完成"编译-打包-上传"的过程,省去了中途等待和操作的时间。

这里以App Store和蒲公英为上传平台展开说明。在配置脚本之前,需要先获取对应平台的认证信息。

一、App Store用认证信息

1.App Store Connect中-【用户和访问】

截屏2022-03-22_16.08.43

2 【用户和访问】页,

选择【密钥】Tab, 选择密钥类型【App Store Connect API】, 点击【+】开始添加API密钥

截屏2022-03-22_16.10.01

3 在生成密钥弹框中,输入名称、并选择访问。

其中访问选择【管理】。否有可能因为权限不够,导致App完成打包后,因权限不足无法通过认证,导致上传失败。

截屏2022-03-22_19.19.16

4.生成密钥后,点击列表右侧按钮,下载密钥到PC,密钥为.p8文件。

之后将文件放置到用户目录下的private_keys文件夹中

~/private_keys

截屏2022-03-22_17.37.49

5 拷贝Issuer ID 和 密钥ID。至此App Store用认证信息已获取。

截屏2022-03-22_17.37.49的副本

二、蒲公英认证用信息

蒲公英apikey的获取链接为

https://www.pgyer.com/doc/view/api

按页面提示点击获取即可

截屏2022-03-22_17.57.03

三、Shell脚本作成

将以下例子脚本放置到iOS项目跟目录下,即与项目的.xcworkspace文件同一级文件夹下。

依次替换脚本中的以下定义:

-App Store Connect Apikey

-App Store Connect IssuerId

-蒲公英userKey

-蒲公英ApiKey

-蒲公英更新说明

-Xcode项目的project名

-Xcode项目的scheme名

-导出包的ipa名(命名随意,用英文)

具体脚本代码见附件

archive.sh

四、使用脚本打包

运行脚本,会出现提示

Place enter the number you want to export ? [ 1:app-store 2:store打包 3:蒲公英(dev) 4:dev打包] \n Please Enter Number:

-打生产包并上传App store,按1

-打开发包并上传蒲公英,按3

之后看到提示,是否在编译之前执行Clean,

是否先执行Clean ? [ 1:执行 2:不执行 ] \n Please Enter Number:

-Clean后重新编译按1

-不Clean使用增量编译按2

之后会自动执行:编译-打包-上传。

打包结束,会在桌面生成文件夹,生成app包文件。

上传完成,脚本执行结束。

Edited Mar 22, 2022 by zhoudanjie
Assignee
Assign to
None
Milestone
None
Assign milestone
Time tracking