Files
2022-01-31 15:03:29 +00:00

2.7 KiB

Privado

Privado VPN Mac Client

Requirements

Source code

Source code sharing between two platforms - iOS and macOS. Shared part hold in External folder and contain busines logic (Interactors and Presenters from VIPER). Builders and Coordinators each placed in platform dependant folder.

Deployment macOS

All files for macOS version placed in macOS folder.

Building application consists several steps:

  • run create_macOS.sh (create xcodeproj files)
  • run build_macOS.sh (compile applications, sign, create dmg, upload to apple for nootarisation)

All macOS applications must have similar version number! Internal version validations prefer same value!

Build configuration changes by which branch it execute! For master branch we build Production configuraton, otherwise - Release.

After create project by xcodegen tool we build archive, than export application, burn it to dmg file and sent to notarization to apple.

Later steps:

  • Upload debug symbols to Sentry for crash recognizing
  • Sign update package and upload it for allow update from clients

Updater release notes

For create release notes, that will be showed in updater you must in ReleaseNotes folder edit Production.html for Production build or Release.html for developer build. Commit and push for start building on CI.

Attention! Build from Develop can't use in Production version and vise versa. All builds signed with different secret keys for prove users experiens when update software using Sparkle framework.

External frameworks

  • OpenSSL
  • Realm
  • Sentry
  • Sparkle
  • TunnelKit
  • AppCenter

Activate navigation

Activate navigation header for controllers in application

// MARK: - JS

extension SomeController: JSNavigationBarViewControllerProvider {

func navigationBarViewController() -> NSViewController {
    EmptyViewController()
}

}

Deploy tasks description

deploy_to_Frankfurt_Binary_Only

Deploy to website only binary setup package (PrivadoVPN.dmg)

deploy_to_Frankfurt_RuByUa

  1. Deploy to website binary setup package (PrivadoVPN.dmg)
  2. Deploy to website appcast and releasenotes served only for specific countries (RU/BY/UA)

deploy_to_Frankfurt

  1. Deploy to website binary setup package (PrivadoVPN.dmg)
  2. Deploy to website appcast and releasenotes served for all

Release deploy flow

  1. Release day - use deploy_to_Frankfurt_RuByUa task
  2. Wait for QA
  3. After QA - use deploy_to_Frankfurt task