4D Blog

Home Product Notarization on macOS: Changes to Component Structure

Notarization on macOS: Changes to Component Structure

January 22, 2025

Product

The macOS notarization process continues to evolve. Unfortunately, the internal structure of 4D components designed with 4D v11—intended to enable cross-platform compatibility—no longer meets the requirements introduced by Apple for Silicon-based Macs, making notarizing components increasingly challenging.

To simplify the deployment process, we have updated the component structure starting with 4D 20 R8. This new folder structure makes notarization and deployment as straightforward as deploying an application. However, there is an important caveat: the updated structure is not compatible with older versions of 4D (e.g., 4D 20 R7 and earlier), while older components will remain compatible with newer versions of 4D.

The Build4D component has also been updated to reflect the new structure. When building components, be cautious and ensure you are using the correct version of Build4D.

Important Reminder: Components built with 4D 20 R7 or earlier may encounter errors during notarization. The recommended solution is to update to 4D 20 R8.

The detailed list of changes to the component structure:

All the component files are now inside a Contents folder.
The info.plist file is now added when building a component.
Some fields are automatically set by 4D at build time, taking their content from the buildApp.4DSettings:

  • CFBundleDisplayName and CFBundleName will be set with the name of the application
  • CFBundleShortVersionString and CFBundleVersion will take the value of Versioning / Common / CommonVersion
  • NSHumanReadableCopyright will take the value of Versioning / Common / CommonCopyright

 

For components built with the Build4D component, these files will take these values:

  • CFBundleDisplayName and CFBundleName will be set with the name of the application
  • A copyright can be set and will fill the NSHumanReadableCopyright field
  • CFBundleShortVersionString and CFBundleVersion will be set with the version of the application (in the x.x.x format)

 

If you want to read more about notarization, you can read this blog post that will explain you everything.

If you have any questions or need further assistance, please ask on the 4D forum. We’re here to help make this transition as smooth as possible.

Discuss

Tags 20 R8, 21, Apple, Notarize

Latest related posts

  • June 16, 2025

    Generate, share and use web sessions One-Time Passcodes (OTP)

  • May 20, 2025

    Automatic Refresh of OEM Build Licenses

  • May 16, 2025

    New class to handle incoming TCP connections

Nicolas Brachfogel
Nicolas Brachfogel
Product Owner & Senior Developer - Nicolas Brachfogel joined 4D in 2017 as senior developer (4D Server and networking) and as Product Owner to manage the 4D version on Apple Silicon. He is tasked with the redaction of user stories and functional specifications, as well as the verification that the new features are in line with customers' needs. With a degree from Institut Supérieur d'Informatique Appliquée Paris (INSIA), Nicolas started his career as a software developer in 2001. After many years of development in Java and C++, he specialized himself in client-server development in the video game industry. As a developer/software architect, he worked on the server architectures of many games (Dofus Arena, Drakerz, Trivial Pursuit Go !).
  • Deutsch
  • Français
  • English
  • Português
  • Čeština
  • Español
  • Italiano
  • 日本語

Categories

Browse categories

  • 4D View Pro
  • 4D Write Pro
  • 4D for Mobile
  • Email
  • Development Mode
  • 4D Language
  • ORDA
  • User Interface / GUI
  • Qodly Studio
  • Server
  • Maintenance
  • Deployment
  • 4D Tutorials
  • Generic
  • 4D Summit sessions and other online videos

Tags

4D-Analyzer 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R8 20 R9 Administration Authentication Build application CI/CD Class Client/Server Code editor Collections Compatibility settings Formula Listbox Logs Mail Microsoft 365 Network Objects ORDA PDF Pictures Preemptive Programming Qodly Studio REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor

Tags

4D-Analyzer 4D for Android 4D for iOS 4D NetKit 4D Qodly Pro 4D View Pro 4D Write Pro 20 R8 20 R9 Administration Authentication Build application CI/CD Class Client/Server Code editor Collections Compatibility settings Formula Listbox Logs Mail Microsoft 365 Network Objects ORDA PDF Pictures Preemptive Programming Qodly Studio REST Scalability Security Session Source control Speed Spreadsheet Tutorial UI User Experience v20 vscode Web Word processor
Subscribe to 4D Newsletter

© 2025 4D SAS - All rights reserved
Terms & Conditions | Legal Notices | Data Policy | Cookie Policy | Contact us | Write for us


Subscribe to 4D Newsletter

* Your privacy is very important to us. Please click here to view our Policy

Contact us

Got a question, suggestion or just want to get in touch with the 4D bloggers? Drop us a line!

* Your privacy is very important to us. Please click here to view our Policy