diff --git a/Gruntfile.js b/Gruntfile.js index 0a92a9b0f..4bd01513c 100644 --- a/Gruntfile.js +++ b/Gruntfile.js @@ -6,6 +6,7 @@ module.exports = function(grunt) { // Project Configuration grunt.initConfig({ + pkg: grunt.file.readJSON('package.json'), exec: { appConfig: { command: 'node ./util/buildAppConfig.js' @@ -19,8 +20,8 @@ module.exports = function(grunt) { cordovaclean: { command: 'make -C cordova clean' }, - osx: { - command: 'webkitbuilds/build-macos.sh sign' + macos: { + command: 'sh webkitbuilds/build-macos.sh sign' }, coveralls: { command: 'cat coverage/report-lcov/lcov.info |./node_modules/coveralls/bin/coveralls.js' @@ -60,10 +61,10 @@ module.exports = function(grunt) { stdin: true, }, desktopsign: { - cmd: 'gpg -u 1112CFA1 --output webkitbuilds/Copay-linux.zip.sig --detach-sig webkitbuilds/Copay-linux.zip && gpg -u 1112CFA1 --output webkitbuilds/Copay-win.exe.sig --detach-sig webkitbuilds/Copay-win.exe' + cmd: 'gpg -u 1112CFA1 --output webkitbuilds/<%= pkg.title %>-linux.zip.sig --detach-sig webkitbuilds/<%= pkg.title %>-linux.zip && gpg -u 1112CFA1 --output webkitbuilds/<%= pkg.title %>-win.exe.sig --detach-sig webkitbuilds/<%= pkg.title %>-win.exe' }, desktopverify: { - cmd: 'gpg --verify webkitbuilds/Copay-linux.zip.sig webkitbuilds/Copay-linux.zip && gpg --verify webkitbuilds/Copay-win.exe.sig webkitbuilds/Copay-win.exe' + cmd: 'gpg --verify webkitbuilds/<%= pkg.title %>-linux.zip.sig webkitbuilds/<%= pkg.title %>-linux.zip && gpg --verify webkitbuilds/<%= pkg.title %>-win.exe.sig webkitbuilds/<%= pkg.title %>-win.exe' }, }, watch: { @@ -209,8 +210,8 @@ module.exports = function(grunt) { files: [{ expand: true, cwd: 'webkitbuilds/', - src: ['.desktop', '../www/img/icons/favicon.ico', '../www/img/icons/512x512.png'], - dest: 'webkitbuilds/Copay/linux64/', + src: ['.desktop', '../www/img/app/favicon.ico', '../www/img/app/512x512.png'], + dest: 'webkitbuilds/<%= pkg.title %>/linux64/', flatten: true, filter: 'isFile' }], @@ -218,24 +219,24 @@ module.exports = function(grunt) { }, nwjs: { options: { - appName: 'Copay', + appName: '<%= pkg.title %>', platforms: ['win64', 'osx64', 'linux64'], buildDir: './webkitbuilds', version: '0.16.0', - macIcns: './www/img/icons/logo.icns', - exeIco: './www/img/icons/logo.ico' + macIcns: './www/img/app/logo.icns', + exeIco: './www/img/app/logo.ico' }, src: ['./package.json', './www/**/*'] }, compress: { linux: { options: { - archive: './webkitbuilds/Copay-linux.zip' + archive: './webkitbuilds/<%= pkg.title %>-linux.zip' }, expand: true, - cwd: './webkitbuilds/Copay/linux64/', + cwd: './webkitbuilds/<%= pkg.title %>/linux64/', src: ['**/*'], - dest: 'copay-linux/' + dest: '<%= pkg.title %>-linux/' } }, browserify: { @@ -252,7 +253,7 @@ module.exports = function(grunt) { grunt.registerTask('prod', ['default', 'uglify']); grunt.registerTask('translate', ['nggettext_extract']); grunt.registerTask('desktop', ['prod', 'nwjs', 'copy:linux', 'compress:linux']); - grunt.registerTask('osx', ['prod', 'nwjs', 'exec:osx']); + grunt.registerTask('macos', ['prod', 'nwjs', 'exec:macos']); grunt.registerTask('chrome', ['exec:chrome']); grunt.registerTask('wp', ['prod', 'exec:wp']); grunt.registerTask('wp-copy', ['default', 'exec:wpcopy']); diff --git a/app-template/bitpay/img/Background.png b/app-template/bitpay/img/Background.png index 8e7f9a152..7056c17cb 100644 Binary files a/app-template/bitpay/img/Background.png and b/app-template/bitpay/img/Background.png differ diff --git a/app-template/build-macos.sh b/app-template/build-macos.sh index 95631e0fc..2df04ef3a 100755 --- a/app-template/build-macos.sh +++ b/app-template/build-macos.sh @@ -17,7 +17,7 @@ fi # set up your app name, architecture, and background image file name APP_NAME="*USERVISIBLENAME*" -DMG_BACKGROUND_IMG="../www/img/Background.png" +DMG_BACKGROUND_IMG="Background.png" PATH_NAME="${APP_NAME}/osx64/" # you should not need to change these diff --git a/app-template/package.json b/app-template/package.json index e5906b11d..afd2928f4 100644 --- a/app-template/package.json +++ b/app-template/package.json @@ -12,6 +12,7 @@ "bitcore" ], "main": "www/index.html", + "title": "*USERVISIBLENAME*", "window": { "title": "*USERVISIBLENAME* - *PURPOSELINE*", "icon": "www/img/icons/logo.ico", @@ -80,7 +81,6 @@ "start": "npm run build:www && ionic serve --nolivereload --nogulp -s", "start:ios": "npm run build:www && npm run build:ios && npm run open:ios", "start:android": "npm run build:www && npm run build:android && npm run run:android", - "start:desktop": "grunt desktop", "watch": "grunt watch", "build:www": "grunt", "build:www-release": "grunt prod", @@ -88,12 +88,13 @@ "build:android": "cordova prepare android && cordova build android --debug", "build:ios-release": "cordova prepare ios && cordova build ios --release", "build:android-release": "cordova prepare android && cordova build android --release", + "build:desktop": "grunt desktop", + "build:macos": "grunt macos", "open:ios": "open platforms/ios/*.xcodeproj", "open:android": "open -a open -a /Applications/Android\\ Studio.app platforms/android", "final:www": "npm run build:www-release", "final:ios": "npm run final:www && npm run build:ios-release && npm run open:ios", "final:android": "npm run final:www && npm run build:android-release && npm run run:android", - "final:desktop": "grunt desktop", "run:android": "cordova run android --device", "log:android": "adb logcat | grep chromium", "apply:copay": "cd app-template && node apply.js copay && cordova prepare", diff --git a/src/js/routes.js b/src/js/routes.js index cb1683c54..2c45c13c6 100644 --- a/src/js/routes.js +++ b/src/js/routes.js @@ -893,7 +893,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr } }); }) - .run(function($rootScope, $state, $location, $log, $timeout, $ionicHistory, $ionicPlatform, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService) { + .run(function($rootScope, $state, $location, $log, $timeout, $ionicHistory, $ionicPlatform, $window, lodash, platformInfo, profileService, uxLanguage, gettextCatalog, openURLService, storageService, scannerService) { uxLanguage.init(); openURLService.init(); @@ -1005,7 +1005,7 @@ angular.module('copayApp').config(function(historicLogProvider, $provide, $logPr type: "menubar" }); try { - nativeMenuBar.createMacBuiltin("Copay"); + nativeMenuBar.createMacBuiltin($window.appConfig.nameCase); } catch (e) { $log.debug('This is not OSX'); } diff --git a/webkitbuilds/Background.png b/webkitbuilds/Background.png deleted file mode 100644 index 8e7f9a152..000000000 Binary files a/webkitbuilds/Background.png and /dev/null differ diff --git a/webkitbuilds/Background.png b/webkitbuilds/Background.png new file mode 120000 index 000000000..3c2950b39 --- /dev/null +++ b/webkitbuilds/Background.png @@ -0,0 +1 @@ +../www/img/app/Background.png \ No newline at end of file diff --git a/webkitbuilds/build-osx.sh b/webkitbuilds/build-osx.sh deleted file mode 100755 index 7e46354f5..000000000 --- a/webkitbuilds/build-osx.sh +++ /dev/null @@ -1,146 +0,0 @@ -#!/bin/bash - -SHOULD_SIGN=$1 -if [ "$SHOULD_SIGN" ] -then - echo "Will sign the APP" -fi - -# by Andy Maloney -# http://asmaloney.com/2013/07/howto/packaging-a-mac-os-x-application-using-a-dmg/ - -# make sure we are in the correct dir when we double-click a .command file -dir=${0%/*} -if [ -d "$dir" ]; then - cd "$dir" -fi - -# set up your app name, architecture, and background image file name -APP_NAME="Copay" -DMG_BACKGROUND_IMG="Background.png" - -PATH_NAME="Copay/osx64/" -# you should not need to change these -APP_EXE="${PATH_NAME}${APP_NAME}.app/Contents/MacOS/nwjs" - -VOL_NAME="${APP_NAME}-osx" -DMG_TMP="${VOL_NAME}-temp.dmg" -DMG_FINAL="${VOL_NAME}.dmg" -STAGING_DIR="tmp" - -# Check the background image DPI and convert it if it isn't 72x72 -_BACKGROUND_IMAGE_DPI_H=`sips -g dpiHeight ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` -_BACKGROUND_IMAGE_DPI_W=`sips -g dpiWidth ${DMG_BACKGROUND_IMG} | grep -Eo '[0-9]+\.[0-9]+'` - -if [ $(echo " $_BACKGROUND_IMAGE_DPI_H != 72.0 " | bc) -eq 1 -o $(echo " $_BACKGROUND_IMAGE_DPI_W != 72.0 " | bc) -eq 1 ]; then - echo "WARNING: The background image's DPI is not 72. This will result in distorted backgrounds on Mac OS X 10.7+." - echo " I will convert it to 72 DPI for you." - - _DMG_BACKGROUND_TMP="${DMG_BACKGROUND_IMG%.*}"_dpifix."${DMG_BACKGROUND_IMG##*.}" - - sips -s dpiWidth 72 -s dpiHeight 72 ${DMG_BACKGROUND_IMG} --out ${_DMG_BACKGROUND_TMP} - - DMG_BACKGROUND_IMG="${_DMG_BACKGROUND_TMP}" -fi - -# clear out any old data -rm -rf "${STAGING_DIR}" "${DMG_TMP}" "${DMG_FINAL}" - -# copy over the stuff we want in the final disk image to our staging dir -mkdir -p "${STAGING_DIR}" -cp -rpf "${PATH_NAME}${APP_NAME}.app" "${STAGING_DIR}" -# ... cp anything else you want in the DMG - documentation, etc. - -pushd "${STAGING_DIR}" - -popd - -# Fix size to 250MB -SIZE=250 - -if [ $? -ne 0 ]; then - echo "Error: Cannot compute size of staging dir" - exit - fi - -# Sign Code (MATIAS) -if [ $SHOULD_SIGN ] -then - echo "Signing Copay DMG" - - export IDENTITY="3rd Party Mac Developer Application: BitPay, Inc. (884JRH5R93)" - - # not need for 'out of app store' distribution (?) -# export PARENT_PLIST=parent.plist -# export CHILD_PLIST=child.plist - export APP_PATH=${STAGING_DIR}/${APP_NAME}.app - - codesign --deep -s "${IDENTITY}" $APP_PATH"/Contents/Versions/52.0.2743.82/nwjs Helper.app" && echo "Sign 1" - codesign --deep -s "${IDENTITY}" $APP_PATH"/Contents/Versions/52.0.2743.82/nwjs Framework.framework/Resources/app_mode_loader.app" && echo "Sign 2" - codesign --deep -s "${IDENTITY}" $APP_PATH && echo "Sign 3" - echo "Signing Done" - -fi - -# create the temp DMG file -hdiutil create -srcfolder "${STAGING_DIR}" -volname "${VOL_NAME}" -fs HFS+ \ - -fsargs "-c c=64,a=16,e=16" -format UDRW -megabytes ${SIZE} "${DMG_TMP}" - -echo "Created DMG: ${DMG_TMP}" - -# mount it and save the device -DEVICE=$(hdiutil attach -readwrite -noverify "${DMG_TMP}" | \ - egrep '^/dev/' | sed 1q | awk '{print $1}') - -sleep 2 - -# add a link to the Applications dir -echo "Add link to /Applications" -pushd /Volumes/"${VOL_NAME}" -ln -s /Applications -popd - -# add a background image -mkdir /Volumes/"${VOL_NAME}"/.background -cp "${DMG_BACKGROUND_IMG}" /Volumes/"${VOL_NAME}"/.background/ - -# tell the Finder to resize the window, set the background, -# change the icon size, place the icons in the right position, etc. -echo ' - tell application "Finder" - tell disk "'${VOL_NAME}'" - open - set current view of container window to icon view - set toolbar visible of container window to false - set statusbar visible of container window to false - set the bounds of container window to {400, 100, 920, 440} - set viewOptions to the icon view options of container window - set arrangement of viewOptions to not arranged - set icon size of viewOptions to 72 - set background picture of viewOptions to file ".background:'${DMG_BACKGROUND_IMG}'" - set position of item "'${APP_NAME}'.app" of container window to {160, 205} - set position of item "Applications" of container window to {360, 205} - close - open - update without registering applications - delay 2 - end tell - end tell -' | osascript - -sync - -# unmount it -hdiutil detach "${DEVICE}" - -# now make the final image a compressed disk image -echo "Creating compressed image" -hdiutil convert "${DMG_TMP}" -format UDZO -imagekey zlib-level=9 -o "${DMG_FINAL}" - -# clean up -rm -rf "${DMG_TMP}" -rm -rf "${STAGING_DIR}" - -echo 'Done.' - -exit