/ios-build-action

Build iOS project (.xcodeproj, .xcworkspace), export .ipa, optional upload to BrowserStack App Live.

Primary LanguageRubyMIT LicenseMIT

扩展 Build iOS App

新增'蒲公英发布' 和 'provisioning-profile' 等字段

输入

参数 功能 默认值
appstore-upload false
pgy-upload 蒲公英配置 false
pgy-api-key
pgy-password
pgy-install-type
provisioning-profile 例如: match AdHoc com.identifier.my_app

输出

参数 功能 默认值
download_url 蒲公英下载页面链接

Build iOS App

This action builds your iOS project (.xcodeproj, .xcworkspace) and can export the resulting .ipa file as GitHub artifact, with optional automatic upload to BrowserStack AppLive, and optional signed production build with App Store upload.

Tested with Ionic, React Native and native ios projects.

WARNING v2 has breaking changes and it will break your Actions!

To keep the old behavior please use the v1 version.

v2.0.0 uses Match to simplify and strengthen the certificates management, and can optionally upload the build to the App Store.

Inputs

project-path

Required .xcodeproj path.

workspace-path

.xcworkspace path. Default "".

export-method

Choose app-store, "ad-hoc", "package" "enterprise", "development", or "developer-id". Default "app-store".

configuration

For example, "Debug", "Release". Default "Release".

scheme

For example, MyScheme.

output-path

Output path of ipa. Default "output.ipa".

team-id

Required Team id.

team-name

Required Team name.

build-pods

Run the pod install command during the build (boolean)

pods-path

The path to the Podfile. Default "Podfile"

upload-to-testflight

Upload the build to the App Store (boolean)

increment-build-number

Automatically increment the latest build number from TestFlight by one (boolean)

apple-key-id

The Apple Key ID. See https://docs.fastlane.tools/app-store-connect-api/ and https://docs.fastlane.tools/actions/app_store_connect_api_key/ for more examples.

apple-key-issuer-id

The Apple Key Issuer ID. See https://docs.fastlane.tools/app-store-connect-api/ and https://docs.fastlane.tools/actions/app_store_connect_api_key/ for more examples.

apple-key-content

The Apple Key content. See https://docs.fastlane.tools/app-store-connect-api/ and https://docs.fastlane.tools/actions/app_store_connect_api_key/ for more examples.

match-git-url

The GitHub repo URL for storing Match certificates. See https://docs.fastlane.tools/actions/match/

match-git-basic-authorization

base64 key to the repo. Generate it with echo -n your_github_username:your_personal_access_token | base64

match-password

The password to decrypt the certificates.

match-build-type

The Match build type (eg. "development")

browserstack-upload

Set this to true to upload the resulting .ipa file to Browserstack App Live right after the build (https://www.browserstack.com/docs/app-live/integrations/fastlane)

Defaut to false.

browserstack-username

Browserstack username (required if browserstack-upload == true)

browserstack-access-key

Browserstack access key (required if browserstack-upload == true)

fastlane-version

Fastlane version to be used. If not specified, the default value will be used.

fastlane-env

Name of the env file name to pass to fastlane --env

ios-app-id

The iOS application identifier; useful to sync a specific provisioning profile

Contributions Welcome!

If you have any other inputs you'd like to add, feel free to create PR.

NOTE: Remember to run yarn install and yarn bundle if you make changes to the index.js.

Example usage with a production build uploaded to App Store

- uses: hocgin/ios-build-action@master
  with:
    increment-build-number: true
    #    build-pods: true
    #    pods-path: "ios/Podfile"
    configuration: Release
    export-method: app-store
    workspace-path: ${{ secrets.WORKSPACE_PATH }}
    project-path: ${{ secrets.PROJECT_PATH }}
    scheme: MyScheme
    output-path: build-${{ github.sha }}.ipa
    apple-key-id: ${{ secrets.APPLE_KEY_ID }}
    apple-key-issuer-id: ${{ secrets.APPLE_KEY_ISSUER_ID }}
    # 需要使用 base64 编码后的值
    apple-key-content: ${{ secrets.APPLE_KEY_CONTENT }}
    team-id: ${{ secrets.TEAM_ID }}
    team-name: ${{ secrets.TEAM_NAME }}
    match-password: ${{ secrets.MATCH_PASSWORD }}
    match-git-url: ${{ secrets.MATCH_GIT_URL }}
    match-git-basic-authorization: ${{ secrets.MATCH_GIT_BASIC_AUTHORIZATION }}
    match-build-type: "appstore"
    #    browserstack-upload: true
    #    browserstack-username: ${{ secrets.BROWSERSTACK_USERNAME }}
    #    browserstack-access-key: ${{ secrets.BROWSERSTACK_ACCESS_KEY }}
    #    fastlane-env: stage
    ios-app-id: com.identifier.my_app

    provisioning-profile: match AppStore com.identifier.my_app
    pgy-upload: true
    pgy-api-key: your_api_key
    pgy-password: hocgin
    pgy-install-type: 2