/ProjectTemplate

iOS template project. Modified from Flatstacks' original.

Primary LanguageSwiftMIT LicenseMIT

ProjectTemplate

iOS Swift template application. Orignal by Flatstack. Modified by Vinh Nguyen.

Also, check out my NVExtension package.

Get started

To setup project follow a few simple steps:

  1. Download.
  2. Rename project.
  3. Configure CocoaPods.
  4. Configure Fabric/Crashlytics.
  5. Edit README.md.

Download

Download prject as zip file.

Initialzation

Open Terminal, run init.sh script to bootstrap new project:

$ ./init.sh

Configure CocoaPods

  • Find Podfile in project.
  • Uncomment, add or remove pods.
  • Then run in terminal:
pod install

Configure Fabric/Crashlytics

  • Download Fabric desktop application
  • Check Bundle ID in project build settings for all schemes.
  • Create new organization in Fabric/Crashlytics.
  • Add applications to this organization for all schemes.
  • [!] Do not forget change Run Script in settings of the project.

Configure TestFlight

Edit README.md

  • Edit README.md.

CI

Creating certificates and provisioning profiles

  • Go to Developer Center.
  • Choose Certificates -> All and create Developer and Distribution certificates.
  • Choose Identifiers -> App IDs and create new two bundles for Staging and Release.
  • Choose Devices -> All and add all devices for testing.
  • Choose Provisioning Profiles -> All and create 6 provisioning profiles for Staging Debug Staging, Release Staging, AppStore Staging and for Release Debug, Release, AppStore.
  • Download the 2 certificates and the 6 provisioning profiles.
  • Copy the files to /Certs path.
  • Encrypting the files via encrypt.sh

Setting fastlane scripts

  • We use bundler for third-party gems. Set it like here.
  • Find AppFile in the project and set team_id from developer program. (for private repos)
  • Find Deliverfile in the project and set username like apple id. (for private repos)
  • Open the Terminal, write fastlane fastlane-credentials add --username YOUR_APPLE_ID and save your password to CredentialManager. It need that you can send new builds locally without input of the password everytime.
  • Find Fastfile in the project and set:
  • fastlane_version, info_plist_path - required settings of the project.
  • CRASHLYTICS_GROUPS - testers aliases of Fabric/Crashlytics. Example: "group1, group2". (for private repos)
  • BUNDLE_ID_APPSTORE, BUNDLE_ID_APPSTORE_STAGING - for TestFlight.
  • Check SCHEME_STAGING, SCHEME_APPSTORE, SCHEME_APPSTORE_STAGING - shared schemes.

Setting Travis

Add on the CI environment variables:

  • APP_NAME - your the name of the app (can be open)
  • ENCRYPTION_SECRET - secret key of certificates and provisioning profiles (must be private)
  • DEVELOP_BRANCH and DEVELOP_LANE - setting developer branch and fastlane name (can be open)
  • RELEASE_BRANCH and RELEASE_LANE - setting release branch and fastlane name (can be open)
  • FASTLANE_TEAM_ID, FASTLANE_USER and FASTLANE_PASSWORD - teaapple id for deploying to testflight (must be private)
  • CRASHLYTICS_TOKEN, CRASHLYTICS_SECRET and CRASHLYTICS_GROUPS - API key and Build secret of Fabric for deploying to Fabric/Crashlytics (must be private)

License

ios-base-swift is released under the MIT license. See LICENSE for details.