npm package discovery and stats viewer.

Discover Tips

  • General search

    [free text search, go nuts!]

  • Package details

    pkg:[package-name]

  • User packages

    @[username]

Sponsor

Optimize Toolset

I’ve always been into building performant and accessible sites, but lately I’ve been taking it extremely seriously. So much so that I’ve been building a tool to help me optimize and monitor the sites that I build to make sure that I’m making an attempt to offer the best experience to those who visit them. If you’re into performant, accessible and SEO friendly sites, you might like it too! You can check it out at Optimize Toolset.

About

Hi, 👋, I’m Ryan Hefner  and I built this site for me, and you! The goal of this site was to provide an easy way for me to check the stats on my npm packages, both for prioritizing issues and updates, and to give me a little kick in the pants to keep up on stuff.

As I was building it, I realized that I was actually using the tool to build the tool, and figured I might as well put this out there and hopefully others will find it to be a fast and useful way to search and browse npm packages as I have.

If you’re interested in other things I’m working on, follow me on Twitter or check out the open source projects I’ve been publishing on GitHub.

I am also working on a Twitter bot for this site to tweet the most popular, newest, random packages from npm. Please follow that account now and it will start sending out packages soon–ish.

Open Software & Tools

This site wouldn’t be possible without the immense generosity and tireless efforts from the people who make contributions to the world and share their work via open source initiatives. Thank you 🙏

© 2024 – Pkg Stats / Ryan Hefner

@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

  1. Install cordova
    • npm install -g cordova
  2. 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

  1. 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.

  2. 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

  1. Console output / logging
  2. Image manipulations
    • generate the splashscreens and cut icons
  3. Add named mutations
    • larry core injectables???
  4. 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
  5. jsdom 11.11.0 was not backwards compatible to 11.10.0
    • not sure what changed... should check in the future for fixes