天天看點

Mac/iOS 自動化打包

    對于app的發包,通常都是通過xcode進行Build-Archive-Export,生成最後的.ipa檔案。

    我們也可以通過在終端使用xcodebuild指令行來進行打包。以下是xcodebuild 可以使用的指令:

xcodebuild [-project <projectname>] [[-target <targetname>]...|-alltargets] [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [-showBuildSettings] [<buildsetting>=<value>]... [<buildaction>]...

       xcodebuild [-project <projectname>] -scheme <schemeName> [-destination <destinationspecifier>]... [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [-showBuildSettings] [<buildsetting>=<value>]... [<buildaction>]...

       xcodebuild -workspace <workspacename> -scheme <schemeName> [-destination <destinationspecifier>]... [-configuration <configurationname>] [-arch <architecture>]... [-sdk [<sdkname>|<sdkpath>]] [-showBuildSettings] [<buildsetting>=<value>]... [<buildaction>]...

       xcodebuild -version [-sdk [<sdkfullpath>|<sdkname>] [<infoitem>] ]

       xcodebuild -list [[-project <projectname>]|[-workspace <workspacename>]] [-json]

       xcodebuild -showsdks

       xcodebuild -exportArchive -archivePath <xcarchivepath> -exportPath <destinationpath> -exportOptionsPlist <plistpath>

       xcodebuild -exportLocalizations -localizationPath <path> -project <projectname> [-exportLanguage <targetlanguage>...]

       xcodebuild -importLocalizations -localizationPath <path> -project <projectname>

    -project NAME                       build the project NAME

    -target NAME                        build the target NAME

    -alltargets                         build all targets

    -workspace NAME                     build the workspace NAME

    -scheme NAME                        build the scheme NAME

    -configuration NAME                 use the build configuration NAME for building each target

    -xcconfig PATH                      apply the build settings defined in the file at PATH as overrides

    -arch ARCH                          build each target for the architecture ARCH; this will override architectures defined in the project

    -sdk SDK                            use SDK as the name or path of the base SDK when building the project

    -toolchain NAME                     use the toolchain with identifier or name NAME

    -destination DESTINATIONSPECIFIER   use the destination described by DESTINATIONSPECIFIER (a comma-separated set of key=value pairs describing the destination to use)

    -destination-timeout TIMEOUT        wait for TIMEOUT seconds while searching for the destination device

    -parallelizeTargets                 build independent targets in parallel

    -jobs NUMBER                        specify the maximum number of concurrent build operations

    -dry-run                            do everything except actually running the commands

    -quiet                              do not print any output except for warnings and errors

    -hideShellScriptEnvironment         don't show shell script environment variables in build log

    -showsdks                           display a compact list of the installed SDKs

    -showBuildSettings                  display a list of build settings and values

    -list                               lists the targets and configurations in a project, or the schemes in a workspace

    -find-executable NAME               display the full path to executable NAME in the provided SDK and toolchain

    -find-library NAME                  display the full path to library NAME in the provided SDK and toolchain

    -version                            display the version of Xcode; with -sdk will display info about one or all installed SDKs

    -enableAddressSanitizer YES|NO      turn the address sanitizer on or off

    -enableThreadSanitizer YES|NO       turn the thread sanitizer on or off

    -resultBundlePath PATH              specifies the directory where a result bundle describing what occurred will be placed

    -derivedDataPath PATH               specifies the directory where build products and other derived data will go

    -archivePath PATH                   specifies the directory where any created archives will be placed, or the archive that should be exported

    -exportArchive                      specifies that an archive should be exported

    -exportOptionsPlist PATH            specifies a path to a plist file that configures archive exporting

    -enableCodeCoverage YES|NO          turn code coverage on or off when testing

    -exportPath PATH                    specifies the destination for the product exported from an archive

    -skipUnavailableActions             specifies that scheme actions that cannot be performed should be skipped instead of causing a failure

    -exportLocalizations                exports completed and outstanding project localizations

    -importLocalizations                imports localizations for a project, assuming any necessary localized resources have been created in Xcode

    -localizationPath                   specifies a path to XLIFF localization files

    -exportLanguage                     specifies multiple optional ISO 639-1 languages included in a localization export

    -xctestrun                          specifies a path to a test run specification

    -only-testing:TEST-IDENTIFIER       constrains testing by specifying tests to include, and excluding other tests

    -skip-testing:TEST-IDENTIFIER       constrains testing by specifying tests to exclude, but including other tests

    -json                               output as JSON (note: -json implies -quiet)

最近閑來有空,對xcodebuild指令行進行了封裝,試着做了一個自動化打包的工具。項目代碼github位址:https://github.com/5566/QikPackage 供大家參考。