Betalane - A super easy to use beta distribution tool for iOS
Highly inspired by Fastlane.tools the greatest Automation tool ever for your beta deployments of iOS/Android Builds, but betalane
is purely made in Javascript and it’s super easy to use!
Make sure you have the latest version of the Xcode command line tools installed:
xcode-select --install
[sudo] npm i betalane -g
Create betalane.json
on the root of your project.
.
├── Example
├── Example.xcodeproj
└── betalane.json
Confgiure lane
and jobs
in betalane.json
file as shown in the following example
[
{
"laneName": "beta",
"jobs": [
{
"job": "cli",
"options": {
"cmd": "cd Example && carthage update --platform iOS"
}
},
{
"job": "build",
"options": {
"scheme": "Example-Dev",
"provisioningProfile": "e9890938-67cd-4e01-a197-7a43c2e355a4"
}
}
]
}
]
.betalane
to your .gitignore
file
# Betalane processing directory
.betalane
From the root of your project execute the following command
$ betalane [lane] [job]
lanes
and all jobs
$ betalane
lane
and all it’s jobs
$ betalane beta
lane
and specific job
$ betalane beta build
build
- Building your app
{
"job": "build",
"options": {
"scheme": "Example-Dev",
"target": "Example",
"buildConfiguration": "Debug",
"method": "development",
"signingCertificate": "iOS Developer",
"compileBitcode": "NO",
"provisioningProfile": "e9890938-67cd-4e01-a197-7a43c2e355a4"
}
}
options
: {property | Optional | Description | Default | Available Options |
---|---|---|---|---|
scheme |
(Optional) | Scheme | <Project Name> |
|
target |
(Optional) | Target | <Project Name> |
|
buildConfiguration |
(Optional) | Build Configuration | Debug |
|
compileBitcode |
(Optional) | Should complie BitCode? | NO |
YES , NO |
method |
(Optional) | Distribution Method | development |
app-store , ad-hoc , development |
signingCertificate |
(Optional) | Certificate | Auto Selected from Build Setting | |
provisioningProfile |
(Optional) | Provisioning Profile | Auto Selected from Build Settings | Profile ID , Profile Name |
Params | Description | Sample Value |
---|---|---|
BL_BUILD_ARCHIVE_PATH | Archive path | /Users/jay.mehta/Example/.betalane/Example.xcarchive |
BL_BUILD_IPA_PATH | IPA File path | /Users/jay.mehta/Example/.betalane/Example-Dev.ipa |
doa_s3
- Distribute on the Air using AWS S3
{
"job": "doa_s3",
"options": {
"AccessKeyID": "AKXXXXXXXXXEXAMPLE",
"SecretAccessKey": "wJXXXXXXXXXX/K7XXXXXX/XXXXXXXEXAMPLEKEY",
"s3Bucket": "example-beta-builds",
"region": "us-east-2",
"prefix": "builds/ios/",
"buildPath" : "env.BL_BUILD_IPA_PATH"
}
}
options
: {property | Optional | Description | Default | Available Options |
---|---|---|---|---|
AccessKeyID |
Required | AccessKeyID - Obtain from IAM | ||
SecretAccessKey |
Required | SecretAccessKey - Obtain from IAM | ||
s3Bucket |
Required | AWS S3 Bucket Name | ||
region |
Required | AWS S3 Bucket Region | ||
prefix |
(Optional) | S3 Key Prefix | betalane/ |
|
buildPath |
(Optional) | Build Path to upload on S3 | env.BL_BUILD_IPA_PATH - Env variable exposed by build job |
Params | Description | Sample Value |
---|---|---|
BL_DOA_S3_BUILD_URL | Build Url | https://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/package.ipa |
BL_DOA_S3_MANIFEST_URL | Menifest Url | https://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/manifest.plist |
BL_DOA_S3_INSTALL_URL | Installable Url | https://example-beta-builds.s3.amazonaws.com/doa-beta-20-Aug-2018-14-40-58/download.html |
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StmtBetalaneS3Policy",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::example-beta-builds/*"
}
]
}
Resource
keyAccessKeyID
and SecretAccessKey
cli
- Execute any cli command
{
"job": "cli",
"options": {
"cmd": "cd Example && carthage update --platform iOS"
}
}
options
: {property | Optional | Description | Default | Available Options |
---|---|---|---|---|
cmd |
Required | Command to be performed |