betalane
v2.0.0
Published
`betalane` is super easy to use beta distribution tool for iOS
Downloads
20
Maintainers
Readme
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!
Features
Getting Started
Make sure you have the latest version of the Xcode command line tools installed:
xcode-select --install
Installation
[sudo] npm i betalane -g
Setup
- Create
betalane.json
on the root of your project.
.
├── Example
├── Example.xcodeproj
└── betalane.json
- Confgiure
lane
andjobs
inbetalane.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"
}
}
]
}
]
- Add
.betalane
to your.gitignore
file
# Betalane processing directory
.betalane
In action...
From the root of your project execute the following command
$ betalane [lane] [job]
Example 1 - excute all lanes
and all jobs
$ betalane
Example 2 - excute specific lane
and all it's jobs
$ betalane beta
Example 3 - excute specific lane
and specific job
$ betalane beta build
Documentation
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
}
Output Params
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
}
Output Params
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
IAM Policy Sample
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "StmtBetalaneS3Policy",
"Action": [
"s3:PutObject",
"s3:PutObjectAcl"
],
"Effect": "Allow",
"Resource": "arn:aws:s3:::example-beta-builds/*"
}
]
}
Steps to create S3 bucket
- Login to AWS Console
- Click on S3 service
- Create Bucket
- Enter "Bucket Name", Click "Next", "Next", "Next", "Cerate Bucket".
Steps to create IAM User
- Login to AWS Console
- Click on IAM service
- Select Policies from left side menu
- Select "Create Policy"
- Click on "JSON" tab
- Replace JSON with above sample and change bucket name in
Resource
key - Click "Review Policy"
- Name your policy, e.g. Example Beta Lane S3 Policy
- Click "Create Policy"
- Now select "Users" from left side menu
- Click "Add User"
- Give some "Username", and select "Programmatic access" from Access Type.
- Select "Attach Existing Policy"
- Look for the policy you just created and select it, Click "Next: Review"
- Review and Click "Create"
- Download CSV file containing your
AccessKeyID
andSecretAccessKey
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