介绍

gym帮助你构建和打包iOS应用,帮你干繁琐的工作,并且超级容易上手。

gymshenzhen的替代品。

为什么使用它:

| | Gym Features |
| — | — |
| 1 | 比shenzhen快30% |
|2 | 构建应用时输出漂亮工整 |
|3 | 帮助你解决常见的构建错误,如 code signing 问题 |
|4 | 合理的缺省配置:自动检测schemes等 |
|5 | 和fastlane的其他工具完美配合 |
|6 | 自动生成一个ipa和一个压缩的dSYM文件 |
|7 | 简单,就一个gym命令 |
| 8 | 简单、动态地使用参数和环境变量进行配置 |
| 9 | 在Gymfile里存储常用的打包配置|
| 10 |所有的archives被存储了,可以用xcode访问 |
| 11 | 支持构建iOS和mac应用|

用法

fastlane gym
#fastlane gym --export_method ad-hoc
#fastlane gym --export_method enterprise
#fastlane gym --export_method app-store

只需要上面一句话就可以了。 如果想要更多的配置,可以用下边的参数:

fastlane gym --workspace "Example.xcworkspace" --scheme "AppName" --clean

选择Xcode:

DEVELOPER_DIR="/Applications/Xcode6.2.app" gym

列出可用参数列表:

fastlane gym --help

运行遇到错误,使用verbose模式获取更多信息:

fastlane gym --verbose

如果您没有上传到App Store或TestFlight,请设置正确的导出方法:

fastlane gym --export_method ad-hoc

要使用bool参数,确保这么使用gym:

fastlane gym --include_bitcode true --include_symbols false

获取xcodebuild输出,请到~/Library/Logs/gym查看。

Gymfile

因为如果每次构建可能都需要传参数,比较麻烦,我们可以将默认参数存到Gymfile中。

运行fastlane gym init创建一个新的配置文件,例如:

scheme "Example"
sdk "iphoneos9.0"
clean true
output_directory "./build"    # store the ipa in this folder
output_name "MyApp"           # the name of the ipa file

导出选项

从Xcode7以来,gym使用新的Xcode API,它允许我们使用plist文件指定导出选项。 默认情况下,gym为您创建此文件,您可以使用export_method,export_team_id,include_symbols或include_bitcode修改一些参数。 如果您想要更多选项,例如创建manifest fileapp thinning,可以提供自己的plist文件:

 export_options "./ExportOptions.plist"

或者您可以直接在Gymfile中提供值的哈希值:

export_options(
  method: "ad-hoc",
  manifest: {
    appURL: "https://example.com/My App.ipa",
  },
  thinning: "<thin-for-all-variants>"
)

For the list of available options run xcodebuild -help.

自动化整个流程

可以与fastlane很好的配合使用:

lane :beta do
  scan
  gym(scheme: "MyApp")
  crashlytics
end

参考

https://github.com/fastlane/fastlane/tree/master/gym