• Stars
    star
    146
  • Rank 252,769 (Top 5 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 8 years ago
  • Updated 12 months ago

Reviews

There are no reviews yet. Be the first to send feedback to the community and the maintainers!

Repository Details

fastlane plugin to upload IPA or APK to AWS S3 by @joshdholtz

aws_s3 fastlane Plugin

fastlane Plugin Badge

Getting Started

This project is a fastlane plugin. To get started with fastlane-plugin-s3, add it to your project by running:

fastlane add_plugin aws_s3

About aws_s3

Upload a new build to Amazon S3 to distribute the build to beta testers. Works for both Ad Hoc and Enterprise signed applications. This step will generate the necessary HTML, plist, and version files for you.

The aws_s3 action can upload both iOS apps (IPAs) and Android apps (APKs). If you would like to upload both iOS and Android apps to the same bucket, you can set the app_directory parameter so each app goes into their own S3 bucket directory.

Below is what the default generated page looks like that gets hosted on S3.

Generated page

Example

Add the aws_s3 action after the gym step:

aws_s3

You can also customize a lot of options:

aws_s3(
  # All of these are used to make Shenzhen's `ipa distribute:s3` command
  access_key: ENV['S3_ACCESS_KEY'],               # Optional - defaults to AWS Instance Profile Creds.
  secret_access_key: ENV['S3_SECRET_ACCESS_KEY'], # Optional - defaults to AWS Instance Profile Creds.
  aws_profile: ENV['AWS_PROFILE'],                # Optional - defaults to AWS Instance Profile Creds. (overrides if access_key and secret_access_key specified)
  bucket: ENV['S3_BUCKET'],                       # Required from user.
  region: ENV['S3_REGION'],                       # Required from user.
  acl: ENV['S3_ACL'],                             # Optional - defaults to 'public-read'
  server_side_encryption: ENV['S3_SERVER_SIDE_ENCRYPTION'], # Optional

  endpoint: 'https://s3-us-west-1.amazonaws.com', # Optional, for buckets that require a specific endpoint
  ipa: 'AppName.ipa',                             # Required (if not uploading an APK).
  dsym: 'AppName.app.dSYM.zip',                   # Optional if you use `ipa` to build.

  apk: 'AppName.apk',                             # Required (if not uploading an IPA).

  app_directory: 'ios_or_android',                # Optional but nice if you want to put multiple apps in same bucket

  path: 'v{CFBundleShortVersionString}_b{CFBundleVersion}/', # This is actually the default.
  upload_metadata: true,                          # Upload version.json, plist and HTML. Set to false to skip uploading of these files.
  version_file_name: 'app_version.json',          # Name of the file to upload to S3. Defaults to 'version.json'
  version_template_path: 'path/to/erb'            # Path to an ERB to configure the structure of the version JSON file
)

It is recommended to not store the AWS access keys in the Fastfile. You can use AWS Instance Profiles by attaching IAM roles to your EC2 configurations.

The uploaded version.json file provides an easy way for apps to poll if a new update is available. The JSON looks like:

{
    "latestVersion": "<%= full_version %>",
    "updateUrl": "itms-services://?action=download-manifest&url=<%= url %>"
}

Issues and Feedback

For any other issues and feedback about this plugin, please submit it to this repository.

Troubleshooting

For some more detailed help with plugins problems, check out the Plugins Troubleshooting doc in the main fastlane repo.

Using fastlane Plugins

For more information about how the fastlane plugin system works, check out the Plugins documentation in the main fastlane repo.

About fastlane

fastlane automates building, testing, and releasing your app for beta and app store distributions. To learn more about fastlane, check out fastlane.tools.

Author

Josh Holtz, [email protected], @joshdholtz

More Repositories

1

xcov

Nice code coverage reporting without hassle
Ruby
558
star
2

fastlane-plugin-appicon

Generate required icon sizes and iconset from a master application icon.
Ruby
338
star
3

trainer

Convert xcodebuild plist and xcresult files to JUnit reports
Ruby
248
star
4

danger-xcov

Danger plugin to validate the code coverage of the files changed in a pull request
Ruby
106
star
5

fastlane-plugin-ionic

Integrate your Ionic build into your Fastlane setup
Ruby
87
star
6

fastlane-plugin-clean_testflight_testers

Automatically remove TestFlight testers that are not actually testing your app
Ruby
66
star
7

security

A Ruby library for interacting with the macOS Keychain
Ruby
54
star
8

fastlane-ftp-plugin

Ftp plugin for Fastlane
Ruby
36
star
9

fastlane-plugin-slack_train

Show a nice train for the build progress in fastlane
Ruby
36
star
10

xcresult

Ruby interface for inspecting data and exporting data from Xcode 11 .xcresult files
Ruby
34
star
11

fastlane-plugin-validate_app

Validate your app with altool before uploading to iTunes Connect
Ruby
16
star
12

xcov-core

Command line tool to parse xccoverage files
Objective-C
14
star
13

fastlane-plugin-applivery

fastlane plugin to upload IPA or APK to Applivery.com
Ruby
12
star
14

fastlane-plugin-aws_sns

fastlane plugin for creating AWS SNS platform applications for iOS and Android apps by @joshdholtz
Ruby
12
star
15

fastlane-plugin-carthage_cache

A fastlane plugin that allows to cache Carthage/Build folder in Amazon S3.
Ruby
11
star
16

README

The collaboration and plugin inclusion guidelines for the fastlane Community organization
3
star
17

fastlane-plugin-get_current_swift_version

Get current Xcode toolchain's Swift version
Ruby
1
star