You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
echo ---Making Obfuscated Chrome App release in ./release folder---
2
+
echo ---Making Chrome App release in ./release folder---
3
3
echo
4
-
echo STEP 1 of 3: Clearing ./release folder
4
+
echo STEP 1 of 2: Clearing ./release folder
5
5
echo
6
6
# Clear release folder
7
7
rm -R release/*
8
8
9
-
echo STEP 2 of 3: Generating obfuscated source - automatically creating ./release folder if needed
10
-
#
11
-
# Options Notes:
12
-
# disable-console-output - causes the Chrome App to fail to launch (on background.js) or refuse to evaluate statements (parser.js and presumably others). It must be set 'false' to prevent this.
13
-
# rotate-string-array - set to false on small files, true on large files. This makes it harder to determine the order of strings, but on small files the inserted helper function can attact attention.
14
-
# string-array-encoding - further obscures strings by base-64 (or rc4) encoding them, but slows down execution by up to 50%. It also breaks the Chrome App when true; set to false.
Copy file name to clipboardExpand all lines: README.md
+4-30Lines changed: 4 additions & 30 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -26,43 +26,17 @@ No build process is required- simply press the play button in Chrome Dev Editor
26
26
27
27
## Releasing
28
28
29
-
Though there is no need for a "build" process during development, the release process requires extra effort because this project is currently closed-source and since Chrome Applications are executing from source, the released application needs to have it's Parallax-created code obfuscated prior to publication. _Obfuscation is not really source code protection, but good obfuscation techniques can at least slow down reverse-engineering efforts._
29
+
Though there is no need for a "build" process during development, the release process requires extra effort because certain files need be excluded from the release and the release set must be zipped up for packaging for the Chrome Web Store.
30
30
31
-
- Releases of this Chrome App are source-code obfuscated with _javascript-obfuscator_ using the command-line (CLI) tools; currently tested with _javascript-obfuscator v0.18.1_.
32
-
- Requires (and can be installed with) Node.js.
33
-
- Source repository and instructions: [https://github.com/javascript-obfuscator/javascript-obfuscator](https://github.com/javascript-obfuscator/javascript-obfuscator)
34
-
- Live online version: [https://javascriptobfuscator.herokuapp.com/](https://javascriptobfuscator.herokuapp.com/)
35
-
- Anyone can use the _Beautify_ option of the [UglifyJS Demo](http://lisperator.net/uglifyjs/) or the _Nicify Javascript_ option of [http://jsnice.org](http://jsnice.org) to test the effectiveness of (or circumvent) obfuscated code.
36
-
- The only files needing obfuscation are: _background.js_, _index.js_, _parser.js_, and _serial.js_. All others should be unobscured.
31
+
The following needs to be performed every time a release to the Chrome Web Store is needed.
37
32
38
-
39
-
After performing _Set-Up for Code Obfuscation_ on the development system (usually just once), the release process itself consists of just the _Obfuscate & Release_ process.
40
-
41
-
42
-
### Set-Up for Code Obfuscation
43
-
44
-
This is a system and workspace configuration step - usually performed only once per development system.
45
-
46
-
1. Install Node.js:
47
-
- Tested with _Node.js v6.10.3 LTS_, installed via: [https://nodejs.org/dist/v6.10.3/node-v6.10.3-x64.msi](https://nodejs.org/dist/v6.10.3/node-v6.10.3-x64.msi)
48
-
2. Switch to the repository's workspace:
49
-
-```$ cd path_to_BlocklyProp_Launcher/```
50
-
3. Install _javascript-obfuscator_ using Node's package manager (npm):
51
-
-```$ npm install javascript-obfuscator```
52
-
- This will create a subfolder in your workspace called _node_modules_ which contains many Node resources including _javascript-obfuscator_. This folder _should not_ be archived in repository commits, thus the repo's ```.gitignore``` file excludes the entire _node_modules_ folder.
53
-
54
-
55
-
### Obfuscate & Release
56
-
57
-
This is a frequent operation to be performed every time a release to the Chrome Web Store is needed.
58
-
59
-
1. Create the _release_ fileset (with obfuscated Parallax JavaScript source code and unobscured public libraries):
33
+
1. Create the _release_ fileset:
60
34
1. Switch to the repository's workspace:
61
35
-_IMPORTANT: On Windows platforms, open a Git Bash command window_
62
36
-```$ cd path_to_BlocklyProp_Launcher/```
63
37
2. Run the _MakeRelease_ script
64
38
-```$ ./MakeRelease```
65
-
- This will clean out (or create) the _release_ subfolder and will generate the obfuscated files plus the other unobscured resources necessary for a Chrome App package.
39
+
- This will clean out (or create) the _release_ subfolder and will copy files into it for a Chrome App package.
66
40
- This folder _should not_ be archived in repository commits, thus the repo's ```.gitignore``` file excludes the entire _release_ folder.
67
41
2. Test the app by installing the _release_ subfolder contents (Load Unpackaged App from Chrome or the Chrome Apps & Extensions Developer Tool).
68
42
3. Distribute the app by archiving (ZIP'ing) the _release_ subfolder contents (_not_ the folder; just its contents) and updating its Chrome Web Store publication.
0 commit comments