Difference to original project
- Add QR Code in index.html
- Removed ripple effect on download button to solve issue that you have to double tap on mobile safari
About gota
![Total downloads](https://img.shields.io/github/downloads/bzon/gota/total.svg)
Automate the beta testing distribution of your Android and iOS application files.
gota is a just command line tool that you can easily integrate in your current continuous integration workflow with tools such as Fastlane.
![](https://github.com/philipp-serfling/gota/raw/e82a5f845218/docs/gota_workflow.png)
gota automatically detects the build information of your ipa or apk files and creates an OTA (over the air) installation site that is uploaded to your desired hosting server.
Android |
iOS |
![](https://github.com/philipp-serfling/gota/raw/e82a5f845218/docs/samplesite_android.png) |
![](https://github.com/philipp-serfling/gota/raw/e82a5f845218/docs/samplesite_ios.png) |
Supported Static Hosting Service
- Amazon S3 Bucket
- Nexus 3 Site Repository
- DigitalOcean Spaces
- Standalone Gota Server
- Nexus 2 Site Repository
Getting Started
Manual Installation
Get the executable binary for your platform from the Release Page.
Linux
# downloading via wget
wget https://github.com/philipp-serfling/gota/releases/download/0.1.8/gota-linux-amd64
# rename the executable
mv gota-linux-amd64 gota
# test gota
./gota --version
# command output
gota version v0.1.8 linux/amd64
Windows
# downloading via wget
wget https://github.com/philipp-serfling/gota/releases/download/0.1.8/gota-windows-amd64.exe
# rename the executable
mv gota-windows-amd64.exe gota.exe
# test gota
gota.exe --version
# command output
gota version v0.1.8 windows/amd64
OSX
# downloading via wget
wget https://github.com/philipp-serfling/gota/releases/download/0.1.8/gota-darwin-amd64
# rename the executable
mv gota-darwin-amd64 gota
# test gota
./gota --version
# command output
gota version v0.1.8 darwin/amd64
Go Installation
go get github.com/philipp-serfling/gota
Help Flags
To see the required flags, use the --help flag.
gota --help
gota nexus --help
gota s3 --help
Uploading to S3 Bucket
Set the AWS API key securely.
export AWS_ACCESS_KEY=xxxxx
export AWS_SECRET_ACCESS_KEY=xxxxx
Command input:
gota s3 --bucket example-s3-bucket --srcFile sample.ipa --destDir ios_bucket
Command output:
2018/04/30 01:12:37 file uploaded: https://example-s3-bucket.s3.amazonaws.com/ios_bucket/1.0.0/4/appicon.png
2018/04/30 01:12:37 file uploaded: https://example-s3-bucket.s3.amazonaws.com/ios_bucket/1.0.0/version.json
2018/04/30 01:12:37 file uploaded: https://example-s3-bucket.s3.amazonaws.com/ios_bucket/1.0.0/4/index.html
2018/04/30 01:12:37 file uploaded: https://example-s3-bucket.s3.amazonaws.com/ios_bucket/1.0.0/4/sample.ipa
2018/04/30 01:12:37 file uploaded: https://example-s3-bucket.s3.amazonaws.com/ios_bucket/1.0.0/4/app.plist
NOTE:
Currently, gota assigns an AES256 encryption and a public-read ACL to all files that are uploaded. This may change to be configurable in the future.
Uploading to Nexus
The repository must be a Raw Site Repository.
Set the Nexus credentials securely.
# set the nexus credentials
# this can also be set via command flags
export NEXUS_USER=admin
export NEXUS_PASSWORD=admin123
Command input:
gota nexus --nexusHost http://localhost:8081 \
--nexusRepo site \
--destDir nexus_android_repo \
--srcFile build/outpus/apk/sample.apk
Command output:
file uploaded: http://localhost:8081/repository/site/nexus_android_repo/1.0.0/10222333/appicon.png
file uploaded: http://localhost:8081/repository/site/nexus_android_repo/1.0.0/version.json
file uploaded: http://localhost:8081/repository/site/nexus_android_repo/1.0.0/10222333/index.html
file uploaded: http://localhost:8081/repository/site/nexus_android_repo/1.0.0/10222333/sample.apk
NOTE:
Currently supports only Nexus 3.
gota creates a gotalink.txt
and ipalink.txt
(if uploading an ipa) that contains the url or direct download link. If you are using a CI server, you can have it read these files for quickly getting the url that you can send to your team.
Site Directory Layout
destDir
\__(ipa CFBundleShortVersion or apk versionName)
\__version.json
\__(ipa CFBundleVersion or apk versionCode)
\__appicon.png
\__(ipa or apk file)
\__app.plist (if ipa file)
\__index.html
Developers
If you are on Windows, ensure to go get spf13/cobra's dependency for it.
GOOS=windows go get -v -u github.com/spf13/cobra
go get -v ./...
go test -v ./...
Testing S3 Feature
Set these environment variables before running go test
in s3 package.
AWS_ACCESS_KEY=xxxxx
AWS_SECRET_ACCESS_KEY=xxxxx
GOTEST_AWS_BUCKET=example-bucket
Testing Nexus Feature
You must have a Nexus 3 server running in your machine.
Get it easily via docker command: docker run -d -p 8081:8081 --name nexus3
.
Then, create a Raw Repository with a repository id site
.
Motivation