@monstermakes/larry-hybrid-app-builder
v3.1.6
Published
Dynamically builds a cordova hybrid application for IOS and android based previously produced set of web assets.
Downloads
9
Readme
#larry-hybrid-app-builder
##Description This project is designed to make a repeatable cordova build based on an existing built web app. Under the covers this uses fastlane (https://docs.fastlane.tools) to do all the heavy lifting. This is designed to run on a MAC ONLY!!!
##SETUP
- Install cordova
- npm install -g cordova
- Install fastlane
- brew install ruby
- brew cask install fastlane
- gem install bundler
###Android
Make sure you are running on a MAC and that you have the proper environment for building cordova apps setup.
The setup for android has been automated please run resources/AndroidCleanInstall.sh
or use it as a reference to properly setup your environment.
###IOS
Heavily depends on xcode so make sure xcode is installed and up to date, this may require starting xcode and clicking on the install/update steps.
Depending on what mutations you add (like push notifications) you may also need cocoapods installed.
sudo gem install cocoapods
pod setup
###Environment Variables These environment variables are used for the signing process
"ANDROID_KEYSTORE": Path to the java keystore file
"ANDROID_KEYSTORE_ALIAS": alias of the certificate in the java keystore file
"ANDROID_KEY_PASS": The password used to protect the private key of the java keystore file,If not specified ANDROID_KEYSTORE_PASS will be used.
"ANDROID_KEYSTORE_PASS": The password of the java keystore file
"IOS_TEAM_ID": The id of your ios developer team
"IOS_TEAM_NAME": The name of your ios developer team
"IOS_EMAIL": The email associated with your ios devloper account
"FASTLANE_MATCH_GIT_URL": The url to the match git repo to be used for credentials, see https://docs.fastlane.tools/actions/match/ for more details.
"IOS_DEVELOPMENT_PROVISIONING_PROFILE": The signing identity to use during the build process, will default to whats found in match if not specified.
- This provisioning profile will be installed on the local machine during the BUILD process
"IOS_ADHOC_PROVISIONING_PROFILE": The signing identity to use during the release process, will default to whats found in match if not specified.
- This provisioning profile will be installed on the local machine during the release process
"IOS_APPSTORE_PROVISIONING_PROFILE": The signing identity to use during the release process, will default to whats found in match if not specified.
- This provisioning profile will be installed on the local machine during the release process
Here is the bashrc exports for convenience:
export ANDROID_KEYSTORE="REPLACE_ME"
export ANDROID_KEYSTORE_ALIAS="REPLACE_ME"
export ANDROID_KEY_PASS="REPLACE_ME"
export ANDROID_KEYSTORE_PASS="REPLACE_ME"
export IOS_TEAM_ID="REPLACE_ME"
export IOS_TEAM_NAME="REPLACE_ME"
export IOS_EMAIL="REPLACE_ME"
export FASTLANE_MATCH_GIT_URL="REPLACE_ME"
export IOS_DEVELOPMENT_PROVISIONING_PROFILE="REPLACE_ME"
export IOS_ADHOC_PROVISIONING_PROFILE="REPLACE_ME"
export IOS_APPSTORE_PROVISIONING_PROFILE="REPLACE_ME"
###Mocha Tests Some tests will actually use xcodebuild to produce the ipa, or sign the build so make sure you have the appropriate ENV variables setup:
hint: if you use vscode this needs to be in your launch.json
{
"type": "node",
"request": "launch",
"name": "HybridAppBuilder.build.spec",
"program": "${workspaceFolder}/node_modules/mocha/bin/_mocha",
"cwd":"${workspaceFolder}/test/build",
"args": [
"-u",
"tdd",
"--timeout",
"999999",
"--colors",
"${workspaceFolder}/test/build/HybridAppBuilder.build.spec.js"
],
"internalConsoleOptions": "openOnSessionStart",
"env":{
"IOS_TEAM_ID": "<ios developer team id>",
"IOS_TEAM_NAME": "<ios developer team name>",
"IOS_EMAIL": "<ios developer email>",
"FASTLANE_MATCH_GIT_URL": "<url to the match git repo>",
"IOS_PROVISIONING_PROFILE": "<provisioning profile to use instead of Fastlane match>",
"ANDROID_KEYSTORE": "<Path to the java keystore file>",
"ANDROID_KEYSTORE_ALIAS": "<alias of the certificate in the java keystore file>",
"ANDROID_KEY_PASS": "<The password used to protect the private key of the java keystore file>",
"ANDROID_KEYSTORE_PASS": "<The password of the java keystore file>"
}
},
##RELEASE NOTES Initial support including:
- setup
- Validate that a directory is a proper cordova app if not setup/prepare the folder for producing cordova apps.
- build
- from a previously setup cordova directory kick off a build for a specific target (android/ios) in a specific mode (release/debug)
##TODO
- Console output / logging
- Image manipulations
- generate the splashscreens and cut icons
- Add named mutations
- larry core injectables???
- Build out other Mutators...
- Currently we have Cordova config.xml mutator
- Would like to Expose a list of generic mutators
- File mutators
- XML mutators
- json mutators
- jsdom 11.11.0 was not backwards compatible to 11.10.0
- not sure what changed... should check in the future for fixes