GitHub Action
iOS Build Action with custom entitlements
This is a fork of yukiarrr/ios-build-action, since it does not support custom entitlements yet. There is PR open and we recommend that you use the official github action instead of ours once the PR is merged. Use it only if you need custom entitlements. We do not plan on supporting this action as of now!
This action build iOS project. (.xcodeproj, .xcworkspace)
And can export to ipa, so it can be continuously delivered to DeployGate and TestFlight.
self-hosted is also supported. If you use self-hosted, install Xcode.
You can add a single p12 key+cert file with p12-base64 (p12-path)
, or if you have key and cert in separate files you can add them with p12-key-base64 (p12-key-path)
and p12-cer-base64 (p12-cer-path)
. One of the two options is required.
Required if single file: Base64 encoded p12 file (key + cert).
Required if split key/cert: Base64 encoded p12 key file.
Required if split key/cert: Base64 encoded certificate for the p12 key.
Required if single file: p12 path (key + cert).
Required if split key/cert: p12 key path.
Required if split key/cert: Certificate path for the p12 key.
Required: Base64 encoded mobileprovision file. If you want to specify multiple files, you need to input in multiple lines and then use export-options
to specify the provisioning profile to use for each executable in your app.
- uses: nanogiants/[email protected]
with:
mobileprovision-base64: |
${{ secrets.MY_MOBILEPROVISION_BASE64 }}
${{ secrets.YOUR_MOBILEPROVISION_BASE64 }}
Also note, when creating base64 encoded inputs, make sure they don't contain newlines, e.g.
openssl base64 -in MyAppProvisioning.mobileprovision -A
Required: mobileprovision path. If you want to specify multiple files, you need to input in multiple lines and then use export-options
to specify the provisioning profile to use for each executable in your app.
- uses: nanogiants/[email protected]
with:
mobileprovision-path: |
ios-build-1.mobileprovision
ios-build-2.mobileprovision
Required: .xcodeproj path.
Required: For example, "iOS Distribution"
.
Required: Team id.
.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"
.
Certificate password. Default ""
.
Output path of ipa. Default "output.ipa"
.
Targets to be updated with mobileprovision, code signing identity, etc. Split on new lines. Default ""
. (default to all targets)
- uses: nanogiants/[email protected]
with:
update-targets: |
MyApp
YourApp
Deprecated, use update-targets
instead.
These targets will not use automatic code signing and instead use the identity specified in other inputs. Input targets separated by ","
. For example, "MyApp,YourApp"
. Default ""
. (default to all targets)
Path to an export options plist. Default ""
.
Path for Swift Package Manager dependencies. Default ""
.
Path to your entitlements file. Default ""
.
The SDK that should be used for building the application. Default ""
. For example, "iOS 11.1"
.
Use a custom destination for building the app. Default ""
. For example, "generic/platform=iOS"
.
If you have any other inputs you'd like to add, feel free to create PR.
Welcome your contributions!
- uses: nanogiants/[email protected]
with:
project-path: Unity-iPhone.xcodeproj
p12-base64: ${{ secrets.P12_BASE64 }}
mobileprovision-base64: ${{ secrets.MOBILEPROVISION_BASE64 }}
code-signing-identity: ${{ secrets.CODE_SIGNING_IDENTITY }}
team-id: ${{ secrets.TEAM_ID }}
workspace-path: Unity-iPhone.xcworkspace # optional
- uses: nanogiants/[email protected]
with:
project-path: Unity-iPhone.xcodeproj
p12-key-base64: ${{ secrets.P12_KEY_BASE64 }}
p12-cer-base64: ${{ secrets.P12_CER_BASE64 }}
mobileprovision-base64: ${{ secrets.MOBILEPROVISION_BASE64 }}
code-signing-identity: ${{ secrets.CODE_SIGNING_IDENTITY }}
team-id: ${{ secrets.TEAM_ID }}
workspace-path: Unity-iPhone.xcworkspace # optional