summaryrefslogtreecommitdiff
path: root/docs/docgen/html/_sources/guides/source.rst.txt
diff options
context:
space:
mode:
Diffstat (limited to 'docs/docgen/html/_sources/guides/source.rst.txt')
-rw-r--r--docs/docgen/html/_sources/guides/source.rst.txt236
1 files changed, 236 insertions, 0 deletions
diff --git a/docs/docgen/html/_sources/guides/source.rst.txt b/docs/docgen/html/_sources/guides/source.rst.txt
new file mode 100644
index 00000000..c1956657
--- /dev/null
+++ b/docs/docgen/html/_sources/guides/source.rst.txt
@@ -0,0 +1,236 @@
+Building from Source
+`````````````````````
+
+**NOTE** If you want to run it on your desktop, you can directly
+download desktop binaries
+`here <https://github.com/pliablepixels/releases>`__
+and if you want it for Android/iOS you can get from the play/appstore.
+This is only for those who *want* to run from source.
+
+ Note: If you are building from source, you are mostly on your own. I
+ have very limited time to debug environment differences/package
+ differences between what I have and what you may have. I'm not a
+ nodejs/grunt etc expert and stuff seems to change all the time.
+
+Version note: The code is compiled using the following versions of
+tools. **If you are using newer versions of ionic the code may not
+compile - I don't have the time to upgrade yet. Finally, if you choose
+to go the source route, I expect you to spend a lot of time yourself
+debugging first before you create an issue. Even if you do create an
+issue, I have very limited bandwidth to debug source compilation issues
+for you.** Thanks.
+
+Output of ``ionic info``
+
+::
+
+ Ionic:
+
+ ionic (Ionic CLI) : 4.5.0 (/usr/local/lib/node_modules/ionic)
+ Ionic Framework : ionic1 1.3.5
+ @ionic/v1-toolkit : 1.0.19
+
+ Cordova:
+
+ cordova (Cordova CLI) : 8.1.2 (cordova-lib@8.1.1)
+ Cordova Platforms : android 7.1.4, ios 5.0.0
+ Cordova Plugins : cordova-plugin-ionic-keyboard 2.1.3, cordova-plugin-ionic-webview 2.2.0,
+ (and 30 other plugins)
+
+ System:
+
+ Android SDK Tools : 26.1.1 (/Users/pp/Library/Android/sdk/)
+ ios-deploy : 2.0.0
+ ios-sim : 7.0.0
+ NodeJS : v8.11.2 (/usr/local/bin/node)
+ npm : 5.6.0
+ OS : macOS Mojave
+ Xcode : Xcode 10.1 Build version 10B61
+
+Install Dependencies - needed for all platforms
+-----------------------------------------------
+
+Install NodeJS
+~~~~~~~~~~~~~~
+
+Install NodeJS from `here <https://nodejs.org/en/download/>`__. As of
+Dec 2018, I'm using Node ``v8.11.2``. I use
+`n <https://github.com/tj/n>`__ to manage node versions and switch
+between them.
+
+Install cordova, ionic, and bower
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+.. code:: bash
+
+ npm install -g cordova ionic bower
+ npm install @ionic/v1-toolkit --save-dev
+
+And some more:
+
+.. code:: bash
+
+ npm install -g gulp
+ npm install node-sass
+ npm install async
+ npm install jshint
+
+(Note you may need to do ``sudo`` depending on how your system is set
+up. It's `better you
+don't <https://johnpapa.net/how-to-use-npm-global-without-sudo-on-osx/>`__,
+but if you must, well, you must)
+
+If you get a newer version, you should adjust your cordova version to
+the mentioned version above in order to be able to successfully compile
+zmNinja. To change the version you can follow these instructions:
+`change cordova
+version <https://iphonedevlog.wordpress.com/2014/06/25/updating-and-reverting-to-different-cordova-phonegap-versions>`__
+
+Download zmNinja
+----------------
+
+.. code:: bash
+
+ git clone --depth 1 https://github.com/pliablepixels/zmNinja.git
+
+Configure build configure zmNinja and get all required plugins
+--------------------------------------------------------------
+
+.. code:: bash
+
+
+ cd zmNinja
+ npm install
+ bower install
+ ionic cordova platform add android (or ios)
+ cordova prepare
+
+Making an iOS build
+-------------------
+
+Note: You need to be doing this on a mac, with Xcode and the SDK
+installed. You also need to have your developer certificates/etc. (I am
+not going to detail this out - there are many internet resources on
+this)
+
+(Harder) If you need picture notification support in push
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+As of Mar 2019, cordova-ios does not support multiple targets, nor does
+it support automatic building of notification extensions. So there is manual work to be done:
+
+- Open up ``platforms/ios/zmNinja.xcworkspace`` in XCode
+- Go to ``File->New->Target->Notification Service Extension``, select Objective C
+- In the "Product Name" put in ``zmNinjaNotification`` (your BundleID should now read ``com.pliablepixels.zmninja-pro.zmNinjaNotification``)
+- Say "Yes" to "Activate zmNinjaNotification scheme?" popup
+- Now go to zmNinjaNotification target and make version and build same as zmNinja
+- Now in XCode Targets, select ``zmNinjaNotification``, and make sure you select a Team and make sure Deployment Target is 10 or above
+- Change Deployment target to 10.1 (same as zmNinja target)
+- ```cp www/external/NotificationService.m platforms/ios/zmNinjaNotication/``
+- ``cd platforms/ios/``
+- ``pod install``
+
+You can now do `build_ios.sh`. However, after you build, you will have to go back to XCode
+after the build to make the following changes:
+
+1. Sync notification version with app version
+2. Change notification bundle ID back to com.pliablepixels.zmninja-pro.zmNinjaNotification (cordova removes the last word)
+
+
+(Easier) If you don't need picture notification support in push
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+There are a few steps you need to take to get the iOS build working for
+the first time. If you don't do this, you may get a compilation error
+that says ``ld: library not found for -lGoogleToolboxForMac``
+
+::
+
+ cd platforms/ios
+ pod install
+
+This does not produce an iOS ready ipa. What you need to do then is to
+open ``platforms/ios/zmNinja.xcworkspace`` in Xcode, and run.
+
+To compile a debug build for iOS from command line, from zmNinja project
+root: First edit ``./build-auto.json`` and change the
+``developmentTeam`` id to yours. Then:
+
+.. code:: bash
+
+ ./build_ios.sh
+
+To compile using XCode, open ``platforms/ios/zmNinja.xcworkspace`` - You
+need to use "Legacy Build" system if you are on XCode 10+. You can
+change this in XCode ``File->Workspace Settings`` and then build usual.
+Also switch to the Capabilities tab and make sure "Remote Notifications"
+is on in Background Modes and in iCloud section, Key-Value storage is
+enabled. If you see a "Fix issue" there, clicking on that button
+resolves everything.
+
+Making an Android build
+-----------------------
+
+Note that you need the `Android
+SDK <http://developer.android.com/sdk/index.html>`__ installed and
+configured properly for this to work.
+
+From the zmNinja project root:
+
+.. code:: bash
+
+ ./build_android.sh --debug (or --release)
+
+If this complains of missing SDKs, you need to install the SDK version
+it requests This should produce an APK file. To install it on your phone
+over adb, you'd do something like
+
+.. code:: bash
+
+ adb install -r debug_files/android-debug.apk #if you did --debug
+ or,
+ adb install -r release_files/zmNinja.apk #if you did --release
+
+Making a desktop build
+----------------------
+
+I use `electron <https://electron.atom.io>`__ to build the desktop app.
+
+For versions 1.3.018 and beyond
+~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
+
+I've migrated to using
+`electron-builder <https://github.com/electron-userland/electron-builder>`__
+to automate the build process better.
+
+Make sure you have all the dependencies
+^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
+
+Typically, just running
+
+::
+
+ npm install
+ bower install
+
+Should have installed everything. Validate by checking you have
+``electron`` installed by invoking it on the command line
+
+You now have the following options:
+
+::
+
+ npm run dist-all # builds linux, mac and windows packages
+ npm run dist-mac # only builds mac packages
+ npm run dist-lin # only builds linux packages (32bit, 64bit, arm)
+ npm run dist-win # only builds win packages (32bit, 64bit)
+
+Your packages will be created in the ``dist`` folder
+
+
+Troubleshooting
+---------------
+
+Lots of things can go wrong.
+
+* Please make sure you don't post issues about why your own build is not working - please figure it out
+* Look carefully at error messages