diff --git a/.github/workflows/build-macos.yml b/.github/workflows/build-macos.yml
index 3513cfc..117a50e 100644
--- a/.github/workflows/build-macos.yml
+++ b/.github/workflows/build-macos.yml
@@ -26,6 +26,9 @@ on:
required: true
type: string
+env:
+ app_name: ${{ inputs.env == 'production' && 'MoonshineSDKInstaller' || 'MoonshineSDKInstallerDevelopment' }}
+
jobs:
build:
runs-on: "macos-latest"
@@ -47,6 +50,91 @@ jobs:
flex-version: "4.16.1"
air-version: "33.1"
accept-air-license: true
-
- - name: Build with Ant
- run: ant -noinput -buildfile 'MoonshineSDKInstaller/build/build.xml'
+ air-license-base64: ${{ secrets.AIR_LICENSE_BASE64 }}
+
+ # Prepare signing
+
+ - name: Check for Keychain
+ id: check_keychain
+ shell: bash
+ run: |
+ if security list-keychains | grep -q "build.keychain"; then
+ echo "keychain_exists=true" >> $GITHUB_OUTPUT
+ else
+ echo "keychain_exists=false" >> $GITHUB_OUTPUT
+ fi
+
+ - name: Create keychain
+ if: steps.check_keychain.outputs.keychain_exists == 'false'
+ shell: bash
+ run: |
+ security create-keychain -p "${{ secrets.MAC_KEYCHAIN_PASS }}" build.keychain
+ echo "Keychain created"
+ security set-keychain-settings -lut 21600 build.keychain
+ echo "Keychain settings set"
+ security default-keychain -s build.keychain
+ echo "Keychain made default"
+ security unlock-keychain -p "${{ secrets.MAC_KEYCHAIN_PASS }}" build.keychain
+ echo "Keychain unlocked"
+
+ - name: Import certificates
+ shell: bash
+ run: |
+ echo "${{ secrets.MAC_APPLICATION_CERTKEY }}" | base64 --decode > application_certkey.p12
+ echo "${{ secrets.MAC_INSTALLER_CERTKEY }}" | base64 --decode > installer_certkey.p12
+
+ security import ./application_certkey.p12 \
+ -k build.keychain \
+ -f pkcs12 \
+ -P "${{ secrets.MAC_CERTKEY_PASS }}" \
+ -T /usr/bin/codesign \
+ -T /usr/bin/productsign \
+ -T /usr/bin/productbuild
+
+ security import ./installer_certkey.p12 \
+ -k build.keychain \
+ -f pkcs12 \
+ -P "${{ secrets.MAC_CERTKEY_PASS }}" \
+ -T /usr/bin/codesign \
+ -T /usr/bin/productsign
+
+ - name: Allow codesign and productsign to use keychain
+ shell: bash
+ run: |
+ security set-key-partition-list \
+ -S apple-tool:,apple:,codesign:,productsign: \
+ -s \
+ -k "${{ secrets.MAC_KEYCHAIN_PASS }}" \
+ build.keychain
+
+ - name: Unlock keychain
+ shell: bash
+ run: |
+ security unlock-keychain -p "${{ secrets.MAC_KEYCHAIN_PASS }}" build.keychain
+
+ - name: Create notarization profile
+ shell: bash
+ run: |
+ xcrun notarytool \
+ store-credentials "notarytool-profile" \
+ --apple-id ${{ secrets.MAC_NOTARIZATION_APPLE_ID }} \
+ --team-id ${{ secrets.MAC_NOTARIZATION_TEAM_ID }} \
+ --password ${{ secrets.MAC_NOTARIZATION_PASS }}
+
+ - name: Build with Ant
+ run: >
+ ant
+ -buildfile MoonshineSDKInstaller/build/build.xml
+ build pack-and-sign
+ -Dapp.version=${{ inputs.version }}
+ -Dbuild.is.development=${{ inputs.env != 'production' }}
+ -Dbuild.number=${{ github.run_number }}
+ -Dkeychain.name=build.keychain
+ -Dnotarytool.profile="notarytool-profile"
+
+ - name: Upload Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: msdki-macos-setup
+ path: MoonshineSDKInstaller/build/bin/deploy/${{ env.app_name }}-${{ inputs.version }}.pkg
+ if-no-files-found: error
\ No newline at end of file
diff --git a/.github/workflows/build-windows.yml b/.github/workflows/build-windows.yml
index cdc6ea3..d43f824 100644
--- a/.github/workflows/build-windows.yml
+++ b/.github/workflows/build-windows.yml
@@ -14,11 +14,6 @@ on:
description: "A Version"
required: true
type: string
- caching:
- description: "Use caching"
- required: true
- type: boolean
- default: false
workflow_call:
inputs:
@@ -30,12 +25,10 @@ on:
description: "A Version"
required: true
type: string
- caching:
- description: "Use caching"
- required: true
- type: boolean
- default: false
+env:
+ app_name: ${{ inputs.env == 'production' && 'MoonshineSDKInstaller' || 'MoonshineSDKInstallerDevelopment' }}
+
jobs:
build:
runs-on: "windows-latest"
@@ -57,6 +50,72 @@ jobs:
flex-version: "4.16.1"
air-version: "33.1"
accept-air-license: true
-
- - name: Build with Ant
- run: ant -noinput -buildfile 'MoonshineSDKInstaller/build/build.xml'
+ air-license-base64: ${{ secrets.AIR_LICENSE_BASE64 }}
+
+ - name: Install NSIS plugin nsProcess
+ working-directory: MoonshineSDKInstaller/build
+ run: |
+ Invoke-RestMethod -Uri "https://nsis.sourceforge.io/mediawiki/images/2/2f/ExecCmd.zip" -OutFile ExecCmd.zip
+ 7z x ExecCmd.zip -o'ExecCmd' -y
+ mv ExecCmd\ExecCmd.dll "C:\Program Files (x86)\NSIS\Plugins\x86-unicode\ExecCmd.dll"
+
+ - name: Setup signing certificate
+ run: |
+ echo "${{ secrets.SM_CLIENT_CERT_FILE_B64 }}" | base64 --decode > /d/Certificate_pkcs12.p12
+ shell: bash
+
+ - name: Set signing variables
+ id: variables
+ run: |
+ echo "SM_HOST=${{ secrets.SM_HOST }}" >> "$GITHUB_ENV"
+ echo "SM_API_KEY=${{ secrets.SM_API_KEY }}" >> "$GITHUB_ENV"
+ echo "SM_CLIENT_CERT_FILE=D:\\Certificate_pkcs12.p12" >> "$GITHUB_ENV"
+ echo "SM_CLIENT_CERT_PASSWORD=${{ secrets.SM_CLIENT_CERT_PASSWORD }}" >> "$GITHUB_ENV"
+ echo "SM_THUMBPRINT=${{ secrets.SM_THUMBPRINT }}" >> "$GITHUB_ENV"
+ echo "C:\Program Files (x86)\Windows Kits\10\App Certification Kit" >> $GITHUB_PATH
+ echo "C:\Program Files (x86)\Microsoft SDKs\Windows\v10.0A\bin\NETFX 4.8 Tools" >> $GITHUB_PATH
+ echo "C:\Program Files\DigiCert\DigiCert One Signing Manager Tools" >> $GITHUB_PATH
+ shell: bash
+
+ - name: Cache smtools
+ id: cache-smtools
+ uses: actions/cache@v3
+ with:
+ path: smtools-windows-x64.msi
+ key: smtools-windows
+
+ - name: Download smtools
+ if: ${{ steps.cache-smtools.outputs.cache-hit != 'true' }}
+ run: |
+ curl ^
+ -X GET https://one.digicert.com/signingmanager/api-ui/v1/releases/smtools-windows-x64.msi/download ^
+ -H "x-api-key:${{ secrets.SM_API_KEY }}" ^
+ -o smtools-windows-x64.msi
+ shell: cmd
+
+ - name: Setup SSM KSP for signing
+ run: |
+ msiexec /i smtools-windows-x64.msi /quiet /qn
+ smksp_registrar.exe list
+ smctl.exe keypair ls
+ C:\Windows\System32\certutil.exe -csp "DigiCert Signing Manager KSP" -key -user
+ smksp_cert_sync.exe
+ shell: cmd
+
+ - name: Build with Ant
+ shell: cmd
+ run: >
+ ant
+ -buildfile MoonshineSDKInstaller/build/build.xml
+ build pack-and-sign
+ -Dapp.version=${{ inputs.version }}
+ -Dbuild.is.development=${{ inputs.env != 'production' }}
+ -Dbuild.number=${{ github.run_number }}
+
+
+ - name: Upload Artifact
+ uses: actions/upload-artifact@v4
+ with:
+ name: msdki-windows-setup
+ path: MoonshineSDKInstaller/build/bin/deploy/${{ env.app_name }}-${{ inputs.version }}.exe
+ if-no-files-found: error
\ No newline at end of file
diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml
deleted file mode 100644
index 0ba399e..0000000
--- a/.github/workflows/build.yml
+++ /dev/null
@@ -1,26 +0,0 @@
-name: Moonshine SDK Installer
-
-on: [push]
-
-jobs:
- build:
- strategy:
- matrix:
- runs-on: ["windows-latest", "macos-latest"]
- runs-on: ${{ matrix.runs-on }}
- steps:
- - uses: actions/checkout@v3
- - uses: actions/setup-java@v3
- with:
- distribution: 'temurin'
- java-version: '11'
- - uses: krdlab/setup-haxe@v1
- with:
- haxe-version: 4.2.5
- - uses: joshtynjala/setup-apache-flex-action@v2
- with:
- flex-version: "4.16.1"
- air-version: "33.1"
- accept-air-license: true
- - name: Build with Ant
- run: ant -noinput -buildfile 'MoonshineSDKInstaller/build/build.xml'
diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml
index 67017ea..38e0bf4 100644
--- a/.github/workflows/release.yml
+++ b/.github/workflows/release.yml
@@ -16,13 +16,14 @@ on:
type: string
env:
+ app_name: ${{ inputs.env == 'production' && 'MoonshineSDKInstaller' || 'MoonshineSDKInstallerDevelopment' }}
tag: v${{ inputs.version }}${{ inputs.env == 'production' && ' ' || '-Dev' }}
jobs:
build-windows:
name: Build on Windows
- uses: moonshine-ide/moonshine-sdk-installer/.github/workflows/build-windows.yml@42-github-actions-slow-refactor
+ uses: moonshine-ide/moonshine-sdk-installer/.github/workflows/build-windows.yml@master
secrets: inherit
with:
env: ${{ inputs.env }}
@@ -30,7 +31,7 @@ jobs:
build-macos:
name: Build on MacOS
- uses: moonshine-ide/moonshine-sdk-installer/.github/workflows/build-macos.yml@42-github-actions-slow-refactor
+ uses: moonshine-ide/moonshine-sdk-installer/.github/workflows/build-macos.yml@master
secrets: inherit
with:
env: ${{ inputs.env }}
@@ -44,4 +45,38 @@ jobs:
steps:
- name: Print info
run: |
- echo "Stub workflow"
\ No newline at end of file
+ echo "Ref: ${{ github.ref_name }}"
+ echo "Env: ${{ inputs.env }}"
+ echo "Version: ${{ inputs.version }}"
+ echo "Tag: ${{ env.tag }}"
+
+ - name: Checkout repo
+ uses: actions/checkout@v4
+
+ - name: Download windows installer
+ uses: actions/download-artifact@v4
+ with:
+ name: msdki-windows-setup
+
+ - name: Download macos installer
+ uses: actions/download-artifact@v4
+ with:
+ name: msdki-macos-setup
+
+ - name: Debug artifacts
+ run: ls .
+
+ - name: Create release
+ uses: softprops/action-gh-release@v2
+ with:
+ name: Moonshine SDK Installer ${{ inputs.version }} ${{ inputs.env == 'production' && ' ' || 'Development' }}
+ tag_name: ${{ env.tag }}
+ target_commitish: ${{ github.sha }}
+ body: |
+ This is a ${{ inputs.env }} release of MSDKI.
+ draft: true
+ prerelease: ${{ inputs.env == 'development' }}
+ files: |
+ ${{ env.app_name }}-${{ inputs.version }}.exe
+ ${{ env.app_name }}-${{ inputs.version }}.pkg
+ fail_on_unmatched_files: true
\ No newline at end of file
diff --git a/.gitignore b/.gitignore
index e861e2e..a62f18d 100644
--- a/.gitignore
+++ b/.gitignore
@@ -1,6 +1,17 @@
-MoonshineSDKInstaller/bin-debug
-MoonshineSDKInstaller/obj/MoonshineSDKInstallerConfig.xml
-MoonshineSDKInstallerGUICore/bin/flash/haxe/
-InstallerSharedCore/bin
+ApacheFlexSDKInstallerLib/obj/
+InstallerSharedCore/bin/
+InstallerSharedCore/obj/
+MoonshineSDKInstaller/build/bin/
+MoonshineSDKInstaller/build/helperResources/
+MoonshineSDKInstaller/build/images/
+MoonshineSDKInstaller/build/installer/
+MoonshineSDKInstaller/build/shellScripts/
+MoonshineSDKInstaller/obj/
+MoonshineSDKInstallerGUICore/bin/
+flex-utilities/flex-installer/common/obj/
+flex-utilities/flex-installer/installer/obj/
+flex-utilities/flex-installer/installerBadge/obj/
+
+local.properties
.DS_Store
-.vscode/
+.vscode/
diff --git a/MoonshineSDKInstaller/build/ApplicationProperties.xml b/MoonshineSDKInstaller/build/ApplicationProperties.xml
deleted file mode 100644
index 48f7452..0000000
--- a/MoonshineSDKInstaller/build/ApplicationProperties.xml
+++ /dev/null
@@ -1,30 +0,0 @@
-
-
- true
- false
-
- false
-
-
-
-
-
-
-
-
-
-
-
-
-
- true
-
-
-
-
-
-
-
-
-
-
diff --git a/MoonshineSDKInstaller/build/MoonshineSelfSignedCertificate.p12 b/MoonshineSDKInstaller/build/MoonshineSelfSignedCertificate.p12
deleted file mode 100644
index 02de84d..0000000
Binary files a/MoonshineSDKInstaller/build/MoonshineSelfSignedCertificate.p12 and /dev/null differ
diff --git a/MoonshineSDKInstaller/build/build.xml b/MoonshineSDKInstaller/build/build.xml
index 1ed2cc9..09b6a7e 100644
--- a/MoonshineSDKInstaller/build/build.xml
+++ b/MoonshineSDKInstaller/build/build.xml
@@ -1,12 +1,13 @@
-
+
- This is a library shared ANT tasks to be used for building ElCapitan Sandbox test project.
+ This is ANT script for building Moonshine SDK Installer for Windows and macOS.
+
+ Usage:
+ ant build - Builds the project to executable app.
+ ant pack-and-sign - Packs and signs the app for the target OS.
+ ant clean - Cleans the project.
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
-
+
- Reading properties from local ApplicationProperties
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
- Reading properties from Bamboo Variables
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
-
- OS BIT : ${os.arch}
-
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
-
+
-
-
-
+
+
+
+
+
- SDK : ${FLEX_HOME}
- SIGNTOOL: ${SIGNTOOL_HOME}
- NSIS: ${NSIS_HOME}
- Haxe: ${HAXE_LIB_DIRECTORY}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Is.Keychain.Certificate.Defined: ${Is.Keychain.Certificate.Defined}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
-
-
- Self-signed .p12 certificate generation
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
+
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+ ${build.number}
+
+
+
+
+
+
+
+
-
- Installing Haxe Libraries
-
+
+
-
-
-
+
+
+
+
+
+
+
+
-
- Compiling GUI Core SWC
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
- # Signed Process Running - Preparing Bundle
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- # Signed Process Running - Signing Executable
-
-
-
-
-
-
-
-
- # Signed Process Running - Praparing Installer
-
-
-
-
-
+
+
+
+
+
+
+
+
-
+
-
-
- # Signed Process Running - Signing Installer:
-
-
-
-
-
-
+
+
+
+
+
+
-
+
-
+
-
-
-
-
-
-
-
-
-
-
- Self-signed Process Running
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- Icon.icns]]>
- Icon.icns
- ITSAppUsesNonExemptEncryption
- CFBundleName
- Moonshine SDK Installer
- LSApplicationCategoryType
- public.app-category.developer-tools
- CFBundleVersion
- 1.0
- postinstall_script
- #!/bin/sh
- open -a /Applications/Moonshine\ SDK\ Installer.app/
- exit 0]]>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ========== Signing checks on Sandbox APP: spctl -vvv --assess --type exec ${desktopBinaryFilename}
-
-
-
-
- ========== Hardened runtime checks on Sandbox APP: codesign --display --verbose ${desktopBinaryFilename}
-
-
-
-
- ========== Timestamp check on Sandbox APP: codesign -dvv ${desktopBinaryFilename}
-
-
-
-
-
-
-
-
- ========== Installer check on Sandbox PKG: pkgutil --check-signature ${deploy_dir}/${applicationName}_Signed_NonSandbox.pkg
-
-
-
-
-
-
-
-
-
-
-
- ========== Signing checks on Non-Sandbox APP: spctl -vvv --assess --type exec ${desktopBinaryFilename}
-
-
-
-
- ========== Hardened runtime checks: codesign --display --verbose ${desktopBinaryFilename}
-
-
-
-
- ========== Timestamp check: codesign -dvv ${desktopBinaryFilename}
-
-
-
-
-
-
-
-
-
-
-
-
-
- ========== Installer check on Non-Sandbox PKG: pkgutil --check-signature ${deploy_dir}/${applicationName}_Signed_NonSandbox.pkg
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
- ${svn.revision}
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
-
- ${swfFilename}
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
-
-
-
-
-
-
-
-
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
\ No newline at end of file
diff --git a/MoonshineSDKInstaller/build/local.properties.template b/MoonshineSDKInstaller/build/local.properties.template
new file mode 100644
index 0000000..68189da
--- /dev/null
+++ b/MoonshineSDKInstaller/build/local.properties.template
@@ -0,0 +1,58 @@
+# Local Configuration Properties
+# ---------------------------------------------------------------------
+# This file serves as a template for local developer settings. To use:
+# 1. Copy this file and rename the copy to 'local.properties'.
+# 2. Uncomment and set any properties as needed for your local development environment.
+# Note: The CI/CD system does not use this file, so changes here will not affect automated builds.
+# ---------------------------------------------------------------------
+
+# App Properties
+# Defines the version of the application being built.
+
+app.version=1.2.3
+
+# Build Properties
+# Indicates if the build is for development purposes. Set to 'false' for production builds.
+
+build.is.development=true
+
+# Tool Properties
+# Specifies the environment variables used by build tools. The default values are typically
+# sufficient. Override these settings only if necessary. For paths, always use forward slashes
+# regardless of the operating system.
+
+# Path to the Java SDK and Apache Flex SDK installations. Uncomment and set the correct path if the JAVA_HOME
+# or FLEX_HOME environment variable is not set or if you need to use a different version.
+
+# JAVA_HOME=/path/to/java/sdk
+# FLEX_HOME=/path/to/flex
+
+# Commands for various tools. These defaults usually don't need to be changed. Uncomment and
+# modify only if your environment requires different command names or paths.
+
+# haxelib.cmd=haxelib
+# signtool.cmd=signtool
+# nsis.cmd=makensis
+
+# Windows Signing Properties
+# For signing Windows applications, put the following properties as Environment Variables in
+# you system. Do not put them in this file.
+
+# SM_API_KEY: API key for digicert signing service.
+# SM_CLIENT_CERT_FILE: Path to the client certificate file.
+# SM_CLIENT_CERT_PASSWORD: Password for the client certificate.
+# SM_HOST: Hostname of the signing service.
+# SM_THUMBPRINT: Thumbprint of the signing certificate.
+
+# Mac Signing and Notarization Properties
+# For signing and notarizing Mac applications, provide the following:
+
+# Name of the keychain containing Developer ID Application and Developer ID Installer signing identities.
+# Uncomment and set the name of your keychain. Make sure the certificate private keys have permissions to be used
+# by codesign, productsign and productbuild.
+
+# keychain.name=login.keychain
+
+# Notary tool profile name, containing Apple ID, Team ID, and an app-specific password for notarization.
+
+# notarytool.profile=
diff --git a/MoonshineSDKInstaller/build/nsis-build.nsi b/MoonshineSDKInstaller/build/nsis-build.nsi
index 2afb79a..d8ff865 100644
--- a/MoonshineSDKInstaller/build/nsis-build.nsi
+++ b/MoonshineSDKInstaller/build/nsis-build.nsi
@@ -13,14 +13,14 @@
;General
;Name and file
- Name "${INSTALLERNAME}"
- OutFile "DEPLOY\${INSTALLERNAME}-${VERSION}.exe"
+ Name "${APP_NAME}"
+ OutFile "bin\${INSTALLER_NAME}.exe"
;Default installation folder
- InstallDir "$PROGRAMFILES64\${INSTALLERNAME}"
+ InstallDir "$PROGRAMFILES64\${APP_NAME}"
;Get installation folder from registry if available
- InstallDirRegKey HKCU "Software\${INSTALLERNAME}" ""
+ InstallDirRegKey HKCU "Software\${APP_NAME}" ""
;Request application privileges for Windows Vista and higher
RequestExecutionLevel admin
@@ -28,7 +28,7 @@
;--------------------------------
;Start of running process check
-!define APP_NAME find_close_terminate
+#!define APP_NAME find_close_terminate
!define WND_PROCESS_TITLE "MoonshineSDKInstaller"
!define TO_MS 2000
!define SYNC_TERM 0x00100001
@@ -72,22 +72,22 @@ LangString stopMsg 0 "Stopping ${WND_PROCESS_TITLE} Application"
;End of running process check
Function .onInit
- !insertmacro TerminateApp "${EXECUTABLENAME}.exe"
+ !insertmacro TerminateApp "${APP_TITLE}.exe"
ReadRegStr $R0 HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
"TimeStamp"
StrCmp $R0 "" done
StrCmp $R0 "${TIMESTAMP}" 0 done
MessageBox MB_YESNOCANCEL|MB_ICONEXCLAMATION \
- "This version of ${EXECUTABLENAME} is already installed. Do you want to run the current installation?$\n$\n \
- Yes - Start ${EXECUTABLENAME} now$\n \
+ "This version of ${APP_TITLE} is already installed. Do you want to run the current installation?$\n$\n \
+ Yes - Start ${APP_TITLE} now$\n \
No - Do a fresh install$\n \
Cancel - Cancel this installation" \
IDYES run_application IDNO run_uninstaller
Abort
run_application:
ClearErrors
- Exec "$INSTDIR\${EXECUTABLENAME}.exe"
+ Exec "$INSTDIR\${APP_TITLE}.exe"
Abort
run_uninstaller:
ClearErrors
@@ -114,8 +114,8 @@ FunctionEnd
!define MUI_HEADERIMAGE
;!define MUI_HEADERIMAGE_BITMAP "header.bmp"
;!define MUI_WELCOMEFINISHPAGE_BITMAP "wizard.bmp"
- !define MUI_FINISHPAGE_RUN "$INSTDIR\${EXECUTABLENAME}.exe"
- !define MUI_FINISHPAGE_RUN_TEXT "Run ${EXECUTABLENAME}"
+ !define MUI_FINISHPAGE_RUN "$INSTDIR\${APP_TITLE}.exe"
+ !define MUI_FINISHPAGE_RUN_TEXT "Run ${APP_TITLE}"
!define MUI_FINISHPAGE_NOAUTOCLOSE
;!define MUI_ICON "${NSISDIR}\Contrib\Graphics\Icons\orange-install.ico"
;!define MUI_UNICON "${NSISDIR}\Contrib\Graphics\Icons\orange-uninstall.ico"
@@ -144,16 +144,16 @@ Section "Moonshine-SDK-Installer" SecMoonshineSDKInstaller
;copy all files
SetOutPath "$INSTDIR"
- File /r "DEPLOY\${INSTALLERNAME}EXE\*"
+ File /r "bin\app\*"
;Store installation folder
- WriteRegStr HKCU "Software\${INSTALLERNAME}" "" $INSTDIR
+ WriteRegStr HKCU "Software\${APP_NAME}" "" $INSTDIR
;Create uninstaller
WriteUninstaller "$INSTDIR\uninstall.exe"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
- "DisplayName" "${INSTALLERNAME}"
+ "DisplayName" "${APP_NAME}"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
"Publisher" "Prominic.NET, Inc."
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
@@ -165,7 +165,7 @@ Section "Moonshine-SDK-Installer" SecMoonshineSDKInstaller
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
"HelpLink" "https://moonshine-ide.com/faq/"
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
- "DisplayIcon" "$\"$INSTDIR\${EXECUTABLENAME}.exe$\""
+ "DisplayIcon" "$\"$INSTDIR\${APP_TITLE}.exe$\""
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
"UninstallString" "$\"$INSTDIR\uninstall.exe$\""
WriteRegStr HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}" \
@@ -183,7 +183,7 @@ Section "Moonshine-SDK-Installer" SecMoonshineSDKInstaller
"EstimatedSize" "$0"
;Create Start Menu entry
- CreateShortCut "$SMPROGRAMS\${INSTALLERNAME} (64-bit).lnk" "$INSTDIR\${EXECUTABLENAME}.exe"
+ CreateShortCut "$SMPROGRAMS\${APP_NAME} (64-bit).lnk" "$INSTDIR\${APP_TITLE}.exe"
SectionEnd
@@ -192,12 +192,11 @@ SectionEnd
Section "Uninstall"
- RMDir /r "$INSTDIR\*"
- RMDir "$INSTDIR"
+ RMDir /r "$INSTDIR"
- Delete "$SMPROGRAMS\${INSTALLERNAME}.lnk"
+ Delete "$SMPROGRAMS\${APP_NAME}.lnk"
- DeleteRegKey /ifempty HKCU "Software\${INSTALLERNAME}"
+ DeleteRegKey /ifempty HKCU "Software\${APP_NAME}"
DeleteRegKey HKLM "Software\Microsoft\Windows\CurrentVersion\Uninstall\${APPID}"
SectionEnd
\ No newline at end of file
diff --git a/MoonshineSDKInstallerGUICore/bin/flash/bin/MoonshineSDKInstallerGUICore.swc b/MoonshineSDKInstallerGUICore/bin/flash/bin/MoonshineSDKInstallerGUICore.swc
deleted file mode 100644
index 4809c61..0000000
Binary files a/MoonshineSDKInstallerGUICore/bin/flash/bin/MoonshineSDKInstallerGUICore.swc and /dev/null differ
diff --git a/MoonshineSDKInstallerGUICore/bin/flash/obj/assets.swf b/MoonshineSDKInstallerGUICore/bin/flash/obj/assets.swf
deleted file mode 100644
index f9ce7be..0000000
Binary files a/MoonshineSDKInstallerGUICore/bin/flash/obj/assets.swf and /dev/null differ
diff --git a/README.md b/README.md
index 7dfbc6f..4c3df9c 100644
--- a/README.md
+++ b/README.md
@@ -10,16 +10,14 @@ Moonshine SDK Installer -- This was formerly known as Moonshine App Store Helper
- [Download Haxe](https://haxe.org/download/)
- [Install FeathersUI](https://feathersui.com/learn/haxe-openfl/installation/)
-#### Steps
+#### Steps to build executable application
1. Checkout the Moonshine-SDK-Installer repository
-2. Open `MoonshineSDKInstaller/build/ApplicationProperties.xml` from your downloaded location
-3. Provide Apache Flex SDK path to `` or `` if your platform is Windows, and to `` if it's macOS. The path should go inside ``
-4. Make sure `` value is `false` if you want a non-signed build. Keep all the followed-by tags' value blank in case of a non-signed build
-5. Open a Terminal or Command Prompt window
-6. Navigate into `MoonshineSDKInstaller/build` from Terminal or Command Prompt
-7. Run `ant` on Terminal or Command Prompt - a build process should start now
+2. Open `MoonshineSDKInstaller/build/local.properties.template` from your downloaded location and copy it as `local.properties`.
+3. If you need to provide custom JAVA_HOME or FLEX_HOME paths, uncomment the settings in local.properties and put the paths in.
+4. Do the same if you need a custom haxelib path.
+5. Open a Terminal or Command Prompt window and navigate to `MoonshineSDKInstaller/build`.
+6. Run `ant build` to build executable application. At the end of the build process generated artifacts can be found under `MoonshineSDKInstaller/build/app` directory.
-At the end of the build process generated artifacts can be found under `MoonshineSDKInstaller/build/DEPLOY` directory.
-
-(Note: On macOS a `.pkg` installer can available only if it's a signed build)
+#### Steps to build signed installers
+After building executable application run `ant pack-and-sign`. Generated artifacts can be found under `MoonshineSDKInstaller/build/deploy` directory. This step requires additional tools, env settings and certificates. You'll find more details in `local.properties` file.