Currently Alphabiz supports developing Windows(x86_64)
/Linux(x86_64)
/macOS(x86_64/arm64/universal)
apps. For macOS app you may need a macOS device or building app by Github Actions
.
We recommends using
Windows 10/11
/Ubuntu 18.04+
/macOS 12+
to build apps.
Before developing, you need to install:
For windows you need:
- Visual Studio Build Tools
- WiX Toolset 3.11
See windows for more details.
For Linux you need:
- build-essential
sudo apt install build-essential
- snap
sudo apt install snapd
- Snapcraft
sudo snap install snapcraft
- Multipass
sudo snap install multipass
For macOS you need:
- XCode with Command Line Tools
- Click the
Fork
button in github page, change the name to what you want, and then clickCreate Fork
to fork this repo. - Clone your forked repo to your local machine
git clone [email protected]:your_username/your_appname.git
- Installing dependencies
yarn yarn unpackaged
- Edit developer/app.js via your IDE.
- Edit developer/assets and developer/platform-assets to change icons and other assets for your app.
There are some explainations for keys in app.js
.
Key | Default/Value | Description |
---|---|---|
name |
"Alphabiz" |
Your app name. We recommend using only alphabet characters(a-z and A-Z) and at lease 3 characters. |
displayName |
"Alphabiz" |
This name is a more general name that will be used as title, process name and other that you can find in app. |
fileName |
"Alphabiz" |
This name is used to build installers. For macOS this should be up to 15 characters. |
description |
String |
Description for your app |
author |
"Alphabiz Team <[email protected]>" |
Author name. Commonly is YOUR_ORG_NAME <EMAIL> |
developer |
"Alphabiz Team" |
Author name without special characters(< > , etc.) |
appId |
"com.zeeis.alphabiz" |
The appid for your mobile app (iOS/Android) |
appIdentifier |
"com.zeeis.alphabiz" |
The appid for your mac app |
microsoftStoreProductId |
String |
The appid for your win store app |
appxPackageIdentityName |
"Alphabiz" |
The appid for your appx target |
publisher |
"CN=zeeis" |
The publisher name of your appx.pfx used to publish windows store app |
publisherDisplayName |
"Alphabiz Team" |
The publisher name for win store |
upgradeCode |
String |
An uuid used by msi target to identify same app. Run npx uuid v4 to generate your owns |
homepage |
"https://alpha.biz" |
Your official site for your app |
protocol |
"alphabiz" |
The universal link protocol that can open your app |
shortProtocol |
"ab" |
A short protocol same as protocol |
versionsUrl |
String |
An url to a versions.json that can controls force-update |
twitterAccount |
"@alphabiz" |
Your official twitter account |
register |
Object |
Configure users in which areas can register accounts in your app |
theme |
Object |
Colors for your app. See Theme Builder and color tools in development pannel |
There are icons used by app
developer/
├── assets/
| └── icon-256.png # APP icon
├── icons/
| ├── favicon-16x16.png # MSI installer icon
| └── favicon-32x32.png # MSI installer icon
├── platform-assets/
| ├── linux/
| | └── 512x512.png # DEB installer icon
| ├── mac/
| | ├── app.icns # Mac installer icon
| | ├── background.png # DMG installer background
| | ├── dmg-background.tiff # DMG installer background
| | ├── trayiconTemplate.png # Mac tray icon (Recommend black-and-white)
| | └── volume-icon.icns # DMG installer volume icon (macOS <= 11)
| └── windows/
| | ├── icon.ico # Windows icon
| | ├── icon/
| | | ├── Square150x150Logo.png # APPX installer icon
| | | ├── Square44x44Logo.png # APPX installer icon
| | | └── Square44x44Logo.targetsize-44_altform-unplated.png # APPX tray icon
| | └── splash/
| | | ├── InstallSplash.gif # EXE(Squirel) installer gif
| | | ├── background_493x312.png # MSI installer background
| | | └── banner_493x58.png # MSI installer banner
├── favicon.ico # App favicon
└── icon-1024.png # Windows tray icon
yarn packager
yarn make
For building Mac App Store app, see this document.
After building Windows installers, some files are modified by the build scripts.
- appx/template.xml
- package.json
You can use reset the changes by running
git reset FILE_NAME
or running
node make --reset
You can find installers in out/installers/VERSION
.
Almost every value in developer/app.js
can be changed to your own ones. The developer/validateAppConfig.js
will automatically check the values, ensuring that all of them are valid values.
View comments in developer/app.js
for more information.
You can edit developer/update.js
to tell your app how to check and download updates. Currently we supports using Github
and Amazon S3
.
You can use the versionsUrl
to configure force-update. The default url links to versions.json
file in root directory of this repo.
{
"min": {
"stable": "0.1.1",
"nightly": "0.1.1-nightly-202205301917",
"internal": "0.1.1-internal-202205301821"
}
}
You can configure who can register an account for your app by editing the register
entry. The default value of mode
is "none"
, which means anyone can register. You can use "blacklist"
or "whitelist"
mode.
The developer/dynamicConfig.js
includes some dynamic configs that can be changed at runtime.
The app first loads local
entry when launch, and then makes a request to remote.url
to get remote configs and saves to local.
The developer/take-down.js
includes configs to take-down users, channels or posts for media library. This can help you manage user-created contents in your app. You need to create your own account and copy your account pub key to admins
to add permission for your.
The developer/take-down.json
includes presets for take-downed contents.
You can edit the i18n directory in this repo to add more internationality files. These files will be loaded when app boot, and can be updated without updating your app.
For more information, view the README file in i18n
.
The default ToS file here uses Alphabiz
as app name and Alphabiz Team
as developer name. You need to change them manually.
You can use Ctrl+F
to search or Ctrl+H
to replace.