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.
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.
Required .xcodeproj path.
.xcworkspace path. Default ""
.
Choose app-store, "ad-hoc"
, "package"
"enterprise"
, "development"
, or "developer-id"
. Default "app-store"
.
For example, "Debug"
, "Release"
. Default "Release"
.
For example, MyScheme
.
Output path of ipa. Default "output.ipa"
.
Required Team id.
Required Team name.
Run the pod install
command during the build (boolean)
The path to the Podfile. Default "Podfile"
Upload the build to the App Store (boolean)
Automatically increment the latest build number from TestFlight by one (boolean)
The Apple Key ID
The Apple Key Issuer ID
The Apple Key content
The GitHub repo URL for storing Match certificates. See https://docs.fastlane.tools/actions/match/
base64 key to the repo.
Generate it with echo -n your_github_username:your_personal_access_token | base64
The password to decrypt the certificates.
The Match build type (eg. "development")
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 (required if browserstack-upload == true)
Browserstack access key (required if browserstack-upload == true)
If you have any other inputs you'd like to add, feel free to create PR.
Remember to run yarn install
and yarn bundle
if you make changes to the index.js
.
- uses: sparkfabrik/ios-build-action@v2.0.0
with:
upload-to-testflight: true
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 }}
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 }}