KNOWLEDGE BASE
Log In    |    Knowledge Base    |    4D Home
Tech Tip: Verbose Signing with Explicit Handling of Nested 4D Components
PRODUCT: 4D | VERSION: 20 | PLATFORM: Mac
Published On: March 17, 2025
When signing your 4D application, use verbose output to gain detailed insight into the signing process and catch potential issues early. While the --deep flag is convenient for recursively signing your entire app bundle, it can sometimes mask problems in nested components. In these cases, you may need to sign certain embedded binaries, libraries, or plugins explicitly to ensure they meet macOS security requirements.

Steps to Follow:
  1. Initial Signing with Verbose Output Run the primary signing command in verbose mode. This command signs your main app bundle while outputting detailed feedback that will help you spot warnings or errors:

    codesign --deep --force --options runtime --entitlements /path/to/entitlements.plist -s "Developer ID Application: Your Name (ID)" /path/to/Your4DApplication.app


  2. Then verify the signature with:

    codesign --verify --deep --strict --verbose=2 /path/to/Your4DApplication.app

The verbose output (--verbose=2) will provide detailed information about each component within your 4D app bundle.
Inspecting Nested Components After running the verbose verification, carefully review the output for any warnings or errors that mention specific nested components. If you notice any issues, such as a warning that a particular embedded library wasn’t signed correctly, you may need to sign that component individually. Make sure to customize your entitlements.plist as narrowly as possible. Only include the privileges your app absolutely requires. This minimizes potential issues during both signing and notarization.

By combining verbose output with the deliberate, explicit signing of problematic nested components, you gain both a comprehensive overview of your 4D application's security status and the adaptability to address specific issues as they arise.