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.