Uploaded image for project: 'Qbs ("Cubes")'
  1. Qbs ("Cubes")
  2. QBS-899

Create a code signing module

    XMLWordPrintable

Details

    • Task
    • Resolution: Done
    • P2: Important
    • 1.19.0
    • None
    • General
    • None
    • 2bc823ec00cec8a1d58981710eb50ba85b4f58d7, fd1a0ce5b0bd23bb2121e896c1c2732c3d41884a, 2f6eecdc96fcd693cecef8011d8f9500c7872fc7

    Description

      A code signing module is needed to create signed binaries on various platforms. Rule injection also comes into play (QBS-5).

      Summary of each relevant platform's code signing follows:

      • Apple (macOS, iOS, tvOS, watchOS) - I'm not even going to bother explaining the details here, because it is massively complex. The basics are already implemented, and https://codereview.qt-project.org/#/c/127050/ (WIP) should finish it off before creation of a dedicated module is done.
      • Android - see http://developer.android.com/tools/publishing/app-signing.html. Users would need to supply a keystore file (*.keystore, a binary file that contains a set of private keys), a key alias, and two passwords that qbs should by default retrieve from environment variables. jarsigner is then used to sign the APK prior to zipalign'ing it. APKs can be signed multiple times with different keys (useful?). The SDK tools provide a keystore with known passwords for debug purposes.
      • Windows Desktop, .NET - same as WinRT?
      • MSI files?
      • Java JAR files?

      Three things could conceivably be shared among platforms:

      • keystorePath: path to *.pfx (Windows), *.keystore (Android), *.keychain (Apple)
      • keystorePassword: typically not needed for Apple since keychains are more of a system-level concept that remains unlocked during a user session, but can still be locked and unlocked from the command line given a password
      • keyPassword: makes sense for most platforms; irrelevant for Apple since only the keystore itself is password-protected

      Apple platforms will have significant additional properties as code signing here is far more complex.

      Strong Naming (.NET concept) is also somewhat related to code signing / code security; maybe factor this in as well.

      Attachments

        Issue Links

          No reviews matched the request. Check your Options in the drop-down menu of this sections header.

          Activity

            People

              arch Ivan Komissarov
              jakepetroules Jake Petroules (DO NOT ASSIGN ISSUES)
              Votes:
              0 Vote for this issue
              Watchers:
              3 Start watching this issue

              Dates

                Created:
                Updated:
                Resolved:

                Gerrit Reviews

                  There are no open Gerrit changes