Home Assistant for iOS
Run the following two commands to install Xcode's command line tools and bundler, if you don't have that yet.
[sudo] gem install bundler xcode-select --install
The following commands will clone the repo and install all the required dependencies.
git clone https://github.com/home-assistant/home-assistant-iOS.git cd home-assistant-iOS bundle install pod install --repo-update bundle exec pod install
Now you can open
HomeAssistant.xcworkspace and run the
HomeAssistant target onto your simulator or iOS device.
This project will follow the GitHub Swift Styleguide in every way possible.
In order to enforce this, the project will also have a Swiftlint build phase to run the linter everytime the app is built.
To keep the Xcode layout mirrored with on-disk layout we're using Synx.
- ObjectMapper: Simple JSON Object mapping written in Swift
- Alamofire: Elegant HTTP Networking in Swift
- AlamofireImage: AlamofireImage is an image component library for Alamofire
- AlamofireNetworkActivityIndicator: Controls the visibility of the network activity indicator on iOS using Alamofire.
- AlamofireObjectMapper: An Alamofire extension which converts JSON response data into swift objects using ObjectMapper
- IKEventSource: A simple Swift client library for Server Sent Events (SSE)
- CPDAcknowledgements: Show your CocoaPods dependencies in-app.
- Eureka: Elegant iOS form builder in Swift
- FontAwesomeKit: Icon font library for iOS.
- MBProgressHUD: MBProgressHUD + Customizations
- Whisper: Whisper is a component that will make the task of display messages and in-app notifications simple. It has three different views inside
- DeviceKit: DeviceKit is a value-type replacement of UIDevice.
- KeychainAccess: Simple Swift wrapper for Keychain that works on iOS and OS X
- PromiseKit: Promises for Swift & ObjC
- SwiftLocation: Easy Location Manager and Beacon Monitoring in Swift sauce
- SwiftLint: A tool to enforce Swift style and conventions.
- SwiftGen: A collection of Swift tools to generate Swift code (enums for your assets, storyboards, Localizable.strings, …)
- Fabric: Fabric is a mobile platform with modular kits you can mix and match to build the best apps
- Crashlytics: The most powerful, yet lightest weight crash reporting solution
- Synx: A command-line tool that reorganizes your Xcode project folder to match your Xcode groups
- Fastlane: The easiest way to automate building and releasing your iOS and Android apps
To make sure Fabric and iTunes can deploy, make sure you have them set to something similar to the following environment variables. The values are only examples!.
Note: For ENV variables to work in Xcode you to set
$ defaults write com.apple.dt.Xcode UseSanitizedBuildSystemEnvironment -bool NO and launch Xcode from the terminal. Apple Developer Forums
HOMEASSISTANT_CERTIFICATE_KEY: The Certificate key used in Match
HOMEASSISTANT_CERTIFICATE_USER: The username for the git being where Match is saving the Certificates.
HOMEASSISTANT_CERTIFICATE_TOKEN: The access token for the git being where Match is saving the Certificates.
HOMEASSISTANT_CERTIFICATE_GIT: The address or the git being where Match is saving the Certificates. (e.g. https://gitlab.com/username/Certificates)
HOMEASSISTANT_FABRIC_CLIENT_ID: API Key from Fabric Organization
HOMEASSISTANT_FABRIC_SECRET: Build Secret from Fabric Organization
HOMEASSISTANT_TEAM_ID: Team ID from iTunes Membership
HOMEASSISTANT_ITUNES_TEAM_ID: Team ID from iTunes Connect. (
$ pilot listto check the number)
HOMEASSISTANT_APPLE_ID: Your Apple ID (e.g. firstname.lastname@example.org)
Although all the deployment is done through Travis, you can do it manually through Fastlane:
Deployment to Fabric
bundle exec fastlane fabric
Deployment to iTunes Connect
bundle exec fastlane itc
The format and some content of this README.md comes from the SwipeIt project.