diff --git a/Gruntfile.js b/Gruntfile.js
index 3dfa69460..2e9321922 100644
--- a/Gruntfile.js
+++ b/Gruntfile.js
@@ -3,6 +3,26 @@ module.exports = function(grunt) {
// Project Configuration
grunt.initConfig({
pkg: grunt.file.readJSON('package.json'),
+ 'string-replace': {
+ dist: {
+ files: {
+ 'cordova/config.xml': ['config-templates/config.xml'],
+ 'cordova/wp/Package.appxmanifest': ['config-templates/Package.appxmanifest'],
+ 'cordova/wp/Properties/WMAppManifest.xml': ['config-templates/WMAppManifest.xml'],
+ 'webkitbuilds/.desktop': ['config-templates/.desktop'],
+ 'webkitbuilds/setup-win.iss': ['config-templates/setup-win.iss']
+ },
+ options: {
+ replacements: [{
+ pattern: /%APP-VERSION%/g,
+ replacement: '<%= pkg.version %>'
+ }, {
+ pattern: /%ANDROID-VERSION-CODE%/g,
+ replacement: '<%= pkg.androidVersionCode %>'
+ }]
+ }
+ }
+ },
exec: {
version: {
command: 'node ./util/version.js'
@@ -212,6 +232,7 @@ module.exports = function(grunt) {
grunt.loadNpmTasks('grunt-karma-coveralls');
grunt.loadNpmTasks('grunt-node-webkit-builder');
grunt.loadNpmTasks('grunt-contrib-compress');
+ grunt.loadNpmTasks('grunt-string-replace');
grunt.registerTask('default', ['nggettext_compile', 'exec:version', 'exec:coinbase', 'browserify', 'concat', 'copy:icons']);
grunt.registerTask('prod', ['default', 'uglify']);
@@ -220,4 +241,5 @@ module.exports = function(grunt) {
grunt.registerTask('test-coveralls', ['karma:prod', 'coveralls']);
grunt.registerTask('desktop', ['prod', 'nodewebkit', 'copy:linux', 'compress:linux']);
grunt.registerTask('osx', ['prod', 'nodewebkit', 'exec:osx']);
+ grunt.registerTask('release', ['string-replace:dist']);
};
diff --git a/config-templates/.desktop b/config-templates/.desktop
new file mode 100644
index 000000000..37eb84045
--- /dev/null
+++ b/config-templates/.desktop
@@ -0,0 +1,12 @@
+[Desktop Entry]
+Type=Application
+Version=%APP-VERSION%
+Name=Copay
+Comment=A multisignature wallet
+Exec=copay
+Icon=icon-256.png
+Terminal=false
+Categories=Finance
+X-Ubuntu-Touch=true
+X-Ubuntu-StageHint=SideStage
+
diff --git a/config-templates/Package.appxmanifest b/config-templates/Package.appxmanifest
new file mode 100644
index 000000000..73c99e641
--- /dev/null
+++ b/config-templates/Package.appxmanifest
@@ -0,0 +1,41 @@
+
+
+
+
+
+ Copay Bitcoin Wallet
+ BitPay Inc.
+ Assets\StoreLogo.png
+
+
+ 6.3.1
+ 6.3.1
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ AgHostSvcs.dll
+
+
+
+
+
diff --git a/config-templates/WMAppManifest.xml b/config-templates/WMAppManifest.xml
new file mode 100644
index 000000000..f24c3c106
--- /dev/null
+++ b/config-templates/WMAppManifest.xml
@@ -0,0 +1,49 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ Assets\icon@2.png
+
+
+
+
+
+
+
+
+
+
+
+
+ Assets\200x200@1.png
+ 0
+ Assets\200x200@2.png
+ Copay Bitcoin Wallet
+
+
+
+
+
+
+
+ false
+
+
+
+
+
+
+
+
+
+
diff --git a/config-templates/config.xml b/config-templates/config.xml
new file mode 100644
index 000000000..d778216d8
--- /dev/null
+++ b/config-templates/config.xml
@@ -0,0 +1,73 @@
+
+
+ Copay
+
+ A secure bitcoin wallet for friends and companies.
+
+
+ BitPay Inc.
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/config-templates/setup-win.iss b/config-templates/setup-win.iss
new file mode 100755
index 000000000..fa123be28
--- /dev/null
+++ b/config-templates/setup-win.iss
@@ -0,0 +1,47 @@
+; Script generated by the Inno Setup Script Wizard.
+; SEE THE DOCUMENTATION FOR DETAILS ON CREATING INNO SETUP SCRIPT FILES!
+
+#define MyAppName "Copay"
+#define MyAppVersion "%APP-VERSION%"
+#define MyAppPublisher "BitPay"
+#define MyAppURL "https://copay.io"
+#define MyAppExeName "Copay.exe"
+
+[Setup]
+AppId={{804636ee-b017-4cad-8719-e58ac97ffa5c}
+AppName={#MyAppName}
+AppVersion={#MyAppVersion}
+;AppVerName={#MyAppName} {#MyAppVersion}
+AppPublisher={#MyAppPublisher}
+AppPublisherURL={#MyAppURL}
+AppSupportURL={#MyAppURL}
+AppUpdatesURL={#MyAppURL}
+DefaultDirName={pf}\{#MyAppName}
+DefaultGroupName={#MyAppName}
+OutputBaseFilename=Copay-win
+OutputDir=./
+Compression=lzma
+SolidCompression=yes
+
+[Languages]
+Name: "english"; MessagesFile: "compiler:Default.isl"
+Name: "french"; MessagesFile: "compiler:Languages\French.isl"
+Name: "japanese"; MessagesFile: "compiler:Languages\Japanese.isl"
+Name: "spanish"; MessagesFile: "compiler:Languages\Spanish.isl"
+
+[Tasks]
+Name: "desktopicon"; Description: "{cm:CreateDesktopIcon}"; GroupDescription: "{cm:AdditionalIcons}"; Flags: unchecked
+
+[Files]
+Source: "Copay\win64\copay.exe"; DestDir: "{app}"; Flags: ignoreversion
+Source: "Copay\win64\*"; DestDir: "{app}"; Flags: ignoreversion recursesubdirs createallsubdirs
+Source: "../public/img/icons/favicon.ico"; DestDir: "{app}"; DestName: "icon.ico"; Flags: ignoreversion
+; NOTE: Don't use "Flags: ignoreversion" on any shared system files
+
+[Icons]
+Name: "{group}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; WorkingDir: "{app}"; IconFilename: "{app}/icon.ico"
+Name: "{commondesktop}\{#MyAppName}"; Filename: "{app}\{#MyAppExeName}"; IconFilename: "{app}/icon.ico"; Tasks: desktopicon
+
+[Run]
+Filename: "{app}\{#MyAppExeName}"; Description: "{cm:LaunchProgram,{#StringChange(MyAppName, '&', '&&')}}"; Flags: nowait postinstall skipifsilent
+
diff --git a/package.json b/package.json
index 3bed81299..3100e0b67 100644
--- a/package.json
+++ b/package.json
@@ -3,6 +3,7 @@
"description": "A multisignature wallet",
"author": "BitPay",
"version": "1.11.0",
+ "androidVersionCode": "81",
"keywords": [
"wallet",
"copay",
@@ -69,6 +70,7 @@
"grunt-karma": "^0.10.1",
"grunt-karma-coveralls": "^2.5.3",
"grunt-node-webkit-builder": "^1.0.2",
+ "grunt-string-replace": "^1.2.1",
"karma": "^0.12.31",
"karma-cli": "0.0.4",
"karma-coverage": "^0.2.7",