Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/sparkfabrik/ios-build-action
Build iOS project (.xcodeproj, .xcworkspace), export .ipa, optional upload to BrowserStack App Live.
https://github.com/sparkfabrik/ios-build-action
build ionic ios mobile react-native
Last synced: 5 days ago
JSON representation
Build iOS project (.xcodeproj, .xcworkspace), export .ipa, optional upload to BrowserStack App Live.
- Host: GitHub
- URL: https://github.com/sparkfabrik/ios-build-action
- Owner: sparkfabrik
- License: mit
- Created: 2020-11-20T08:55:10.000Z (almost 4 years ago)
- Default Branch: master
- Last Pushed: 2024-07-17T14:13:55.000Z (4 months ago)
- Last Synced: 2024-10-31T10:42:17.690Z (13 days ago)
- Topics: build, ionic, ios, mobile, react-native
- Language: Ruby
- Homepage:
- Size: 812 KB
- Stars: 132
- Watchers: 14
- Forks: 27
- Open Issues: 2
-
Metadata Files:
- Readme: README.md
- Changelog: CHANGELOG.md
- License: LICENSE
Awesome Lists containing this project
README
# 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
```yaml
- uses: sparkfabrik/[email protected]
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 }}
fastlane-env: stage
ios-app-id: com.identifier.my_app
```