• Stars
    star
    876
  • Rank 52,107 (Top 2 %)
  • Language
    Ruby
  • License
    MIT License
  • Created over 9 years ago
  • Updated 8 months ago

Reviews

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

Repository Details

Instantly create a simple signup page for TestFlight beta testers


fastlane

deliversnapshotframeitpemsighproducecertspaceshippilotboardinggymscanmatchprecheck



Twitter: @FastlaneTools License

Get in contact with the developers on Twitter: @FastlaneTools


Why?Getting StartedTechnical DetailsCustomizeUpdate


boarding is part of fastlane: connect all deployment tools into one streamlined workflow.

What's boarding?

Instantly create a simple signup page for TestFlight beta testers.

Have you ever been to an airport, where you had to ask the manager of the airport if you can board now? Once the manager agrees, you'll be carried from your check-in to your gate into your plane.

Because that's what you do right now as an app developer when you want to add a new tester to your TestFlight app: Open Screenshots

Why don't you have a simple web site you can share with potential testers (e.g. email newsletter, Facebook, Twitter) on which people interested in trying out your new app can just board on their own?

BoardingScreenshot

Thanks to spaceship.airforce (oh well, I really talk a lot about flying 🚀) it is now possible to automate the boarding process for your TestFlight beta testers.

Example

Take a look at this live example page: boarding.herokuapp.com

Like this tool? Be the first to know about updates and new fastlane tools

Getting Started

Assuming you already have a Heroku account follow those steps:

  • Deploy
  • Enter your iTunes Connect credentials and the bundle identifier of your app. This will all be stored on your own Heroku instance as environment variables
  • Click on View once the setup is complete and start sharing the URL

Assuming you already have an Azure account follow those steps:

  • Deploy to Azure
  • Enter your iTunes Connect credentials and the bundle identifier of your app. This will all be stored on your own Heroku instance as environment variables
  • It can take up to 5 minutes until everything is loaded.

boarding does all kinds of magic for you, like fetching the app name and app icon.

Heroku is free to use for the standard machine. If you need a Heroku account, ask your back-end team if you already have a company account.


SetupGif


If your account is protected using 2-factor author, follow the 2 step verification guide.

Security

To secure your webpage, you only have to set the ITC_TOKEN environment variable to any password.

Available environment variables

Required:

  • ITC_USER iTunes Connect username
  • ITC_PASSWORD iTunes Connect password
  • ITC_APP_ID The Apple ID or Bundle Identifier of your app

Optional:

  • ITC_TOKEN Set a password to protect your website from random people signing up
  • ITC_CLOSED_TEXT Set this text to temporary disable enrollment of new beta testers
  • RESTRICTED_DOMAIN Set this domain (in the format domain.com) to restrict users with emails in another domain from signing up. This list supports multiple domains by setting it to a comma delimited list (domain1.com,domain2.com)
  • FASTLANE_ITC_TEAM_NAME If you're in multiple teams, enter the name of your iTC team here. Make sure it matches.
  • FASTLANE_SESSION You need to provide a pregenerated session via fastlane spaceauth if you have 2-factor authentication enabled and want to use any actions that communicates with App Store Connect.
  • IMPRINT_URL If you want a link to an imprint to be shown on the invite page.

Custom Domain

With Heroku you can easily use your own domain, follow this guide.

With Azure you can easily use your own domain, follow this guide.

Alternative Setup Options

How does this work?

boarding is part of fastlane, which helps you automate everything you usually do manually as an iOS developer.

Using spaceship.airforce it is possible to manage testers, builds, metadata, certificates and so much more.

This repository is a simple Rails application with most code in these files:

BoardingOverview

More information about this automation process can be found here.

Customize

If you want to change the design, layout or even add new features:

  • Install the Heroku toolbelt and heroku login
  • Clone your application using heroku git:clone --app [heroku_app_name] (it will be an empty repo)
    • You may see a message saying warning: You appear to have cloned an empty repository.. If so, just continue on with the instructions. This is a known Heroku issue
  • cd [heroku_app_name]
  • git pull https://github.com/fastlane/boarding
  • Modify the content, in particular the files that are described above.
  • Test it locally by running ITC_USER="email" ITC_... rails s and opening http://127.0.0.1:3000
  • Commit the changes
  • git push

It is recommended to also store your version in your git repo additionally to Heroku.

Update to a new version

From time to time there will be updates to boarding. There are 2 ways to update your Heroku application:

Recommended: Using the terminal

  • Install the Heroku toolbelt and heroku login
  • Clone your application using heroku git:clone --app [heroku_app_name] (it will be an empty repo)
  • cd [heroku_app_name]
  • git pull https://github.com/fastlane/boarding
  • git push

Using Heroku website

Using Azure website

  • Navigate to the Azure Portal
  • Login and navigate to your WebApp
  • On Overview hit the restart button

Managing Azure version

If you installed boarding using the deploy to Azure button, boarding will be deployed in an Azure WebApp for containers. This means that azure is running the docker-version of boarding.

Setting optional parameters in Azure

In order to set the optional parameters for boarding follow these steps:

  • Navigate to the Azure Portal
  • Login and navigate to your WebApp
  • Under Settings click Application settings
  • Click the link + Add new setting and add the the optional parameter i.e. ITC_CLOSED_TEXT = We are closed!
  • Hit Save and navigate to Overview
  • On Overview hit the restart button

Troubleshoot boarding on Azure

When you run boarding on Azure, it could happen that you run into an HttpStatus 503 showing Service Unavailable There can be multiple reasons for that:

  • boarding isn't yet fully loaded. Wait a few minutes hit refresh.
  • The provided parameters are wrong (ITC_USER, ITC_PASSWORD, ITC_APP_ID). Please go to the settings in Azure and check if they are right.

For further troubleshooting, please got to Azure App Service on Linux FAQ

Like this tool? Be the first to know about updates and new fastlane tools

Special thanks

Special thanks to @lee_moonan for designing the awesome logo.

Development Setup

  1. gem install bundler
  2. bundle install
  3. Create a .env.local file with the following contents:
    # Required
    ITC_APP_ID=<your_app_id>
    ITC_USER=<your_email>
    ITC_PASSWORD=<your_password>
    
    # Optional
    FASTLANE_ITC_TEAM_NAME=<your_team_name>
    ITC_APP_TESTER_GROUPS=<your_groups>
    ITC_TOKEN=<your_token>
    GA_PROPERTY_ID=<your_ga_property_id>
    IMPRINT_URL=<your_url>
    
  4. bundle exec rails s

Code of Conduct

Help us keep boarding open and inclusive. Please read and follow our Code of Conduct.

License

This project is licensed under the terms of the MIT license. See the LICENSE file.

This project and all fastlane tools are in no way affiliated with Apple Inc. This project is open source under the MIT license, which means you have full access to the source code and can modify it to fit your own needs. All fastlane tools run on your own computer or server, so your credentials or other sensitive information will never leave your own computer. You are responsible for how you use fastlane tools.

More Repositories

1

fastlane

🚀 The easiest way to automate building and releasing your iOS and Android apps
Ruby
39,578
star
2

ci

Open source, self hosted, mobile optimized CI powered by fastlane
Ruby
2,077
star
3

examples

📝 A collection of example fastlane setups
Ruby
1,420
star
4

itc-api-docs

The unofficial documentation of the iTunes Connect JSON API
Ruby
519
star
5

watchbuild

Get a notification once your iTunes Connect build is finished processing
Ruby
327
star
6

docs

All the fastlane docs
HTML
321
star
7

frameit-frames

Hosting the latest frameit frames via GitHub Pages
97
star
8

github-actions

TypeScript
75
star
9

brewed-jenkins

Autostart brew-installed Jenkins as a user when the Mac boots
58
star
10

issue-bot

This bot is responsible for commenting on GitHub issues that haven't had any activity
Ruby
51
star
11

monorepo

Scripts to migrate to a monorepo
Ruby
29
star
12

fastlane.tools

The website, powering fastlane.tools
HTML
18
star
13

docker

Docker image used by https://github.com/fastlane/fastlane and https://github.com/fastlane/docs
Dockerfile
14
star
14

spaceship.airforce

Launching fastlane into the next generation
CSS
14
star
15

TaskQueue

ruby implementation of a simple dispatch queue
Ruby
13
star
16

code-of-conduct

fastlane Contributor Code of Conduct
11
star
17

packaged-fastlane

Preparing a Ruby bundle
Shell
8
star
18

danger-device_grid

Danger plugin for the fastlane device grid.
Ruby
8
star
19

fastfile-parser

Convert the Fastfile to a JSON file
Ruby
7
star
20

nightly

Deploy nightly Ruby gem builds to RubyGems.org
Ruby
5
star
21

fastlane-plugin-ruby

Useful fastlane actions for Ruby projects
Ruby
5
star
22

managed_google_play-callback

Hosting the callback HTML file used by the get_managed_play_store_publishing_rights action
HTML
5
star
23

notes

A repository for non-code artifacts relating to fastlane
4
star
24

peril-settings

Configuration of peril
TypeScript
4
star
25

codesigning.guide

The source code for the fastlane code signing guide
HTML
2
star