First you need to create an App ID for your Mac App:

1. Select App IDs

2. Set type to ‘App’

Fill in the information below – the Description to “ProjectNameForMac”, Bundle ID is “. Com.Com panyName ProjectName “!

Information to fill in

Create success: after the name of the App ID for “ProjectNameForMac”, “com.Com panyName. ProjectName” Identifier for the Bundle ID (App)

I have this App ID


Next create a certificate for the App:

Mac certificate type:

  • Mac Developer: TeamMemberName Mac Developer: TeamMemberName

Sign development versions of your Mac app.

Sign the development version of your Mac application.

  • Mac App Distribution — App Distribution certificate (3rd Party Mac Developer Application: TeamName)

This certificate is used to code sign your app and configure a Distribution Provisioning Profile for submission to the Mac App Store.

This certificate is used to code sign your App and distribute configuration files for submission to the Mac App Store configuration.

  • Mac Installer Distribution — Installation package Distribution certificate (3rd Party Mac Developer Installer: TeamName)

    This certificate is used to sign your app’s Installer Package for submission to the Mac App Store.

    This certificate is used to sign your application installation package and submit it to the Mac App Store.

  • Developer ID Installer — Developer ID Installer certificate (Certificate name: Developer ID Installer: TeamName)

This certificate is used to sign your app’s Installer Package for distribution outside of the Mac App Store.

This certificate is used to sign your application installation package for distribution outside the Mac App Store.

  • Developer ID Application — Developer ID Application certificate (Certificate Name: Developer ID Application: Team Name)

    This certificate is used to code sign your app for distribution outside of the Mac App Store.

    This certificate is used to code sign your application for distribution outside the Mac App Store.

  • Create a “Mac Development” certificate — Development certificate

Select the Mac Development TAB

Using the “CertificateSigningRequest. CertSigningRequest” certificate

Certificate is created: click “Download” to Download!

Create the Mac Development certificate

Downloaded “Mac Development” certificate:

  • Create a “Mac App Distribution” certificate — App Distribution certificate

Select Mac App Distribution

Using the “CertificateSigningRequest. CertSigningRequest” certificate

Certificate is created: click “Download” to Download!

Downloaded “Mac App Distribution” certificate:

  • Create the Mac Installer Distribution certificate — the installation package Distribution certificate

Select Mac Installer Distribution

Using the “CertificateSigningRequest. CertSigningRequest” certificate

Certificate is created: click “Download” to Download!

The Mac Installer Distribution certificate is created

Downloaded “Mac Installer Distribution” certificate:

  • Create the “Developer ID Installer” certificate — the Developer ID installation package certificate

Select Developer ID Installer

Using the “CertificateSigningRequest. CertSigningRequest” certificate

Certificate is created: click “Download” to Download!

The Developer ID Installer certificate is created

Downloaded “Developer ID Installer” certificate:

  • Create a “Developer ID Application” certificate — Developer ID Application certificate

Select Developer ID Application

Using the “CertificateSigningRequest. CertSigningRequest” certificate

Certificate is created: click “Download” to Download!

Create the Developer ID Application certificate

Downloaded “Developer ID Application” certificate:

At this point, all certificates are created and downloaded!

All certificates on developer account:

Import all certificates into the keystring :(here’s how)

Double-click the certificate you want to add:

The certificate to be added

Pop-up Prompt

Click “Add” to complete the certificate import!

Repeat the previous steps to import all certificates into the keychain as follows:

The certificate in the keychain

Tips: Export the P12 file of the certificate! (for other computers can be developed) the steps are as follows ~

Select the certificate you want to process and expand its key, right-click and select ** Export item ** :

Name the p12 file and set the storage path, then click “Store”!

Example Name and set the storage path for the P12 file

You need to set a protection password for the P12 file:

Example Set a password for the P12 file

Exported P12 files:

“Developer ID Application” certificate \ “Developer ID Installer” Certificate (P12)

“Mac App Distribution” Certificate \ “Mac Installer Distribution” Certificate (P12 file)

Mac Development Certificate (P12 file)

All P12 files after collating:

All P12 files


Start adding the test device Mac (for the development version) : Enter the UUID of the test device Mac in the developer account

To obtain the UUID of a Mac computer, click  on the menu bar at the top of the screen, select “About This computer” and then click “System Report”.

The About Native page

On the System Report page, view system information – Obtain the UUID of your Mac

Obtain the UUID of the Mac computer

Add the Mac’S UUID to the developer account — use it as a test machine:

Add your Mac’s UUID and click Register to Register

Add the UUID of the Mac computer and register it

The test device Mac (UUID) has been added!


Continue to create the description file:

  • Create the macOS App Development description file

Select the macOS App Development TAB

Select the corresponding App ID and click Continue

Tips: When “Mac Catalyst” is selected

(Check “Mac Catalyst” to support iPad)

Select the corresponding Mac Development certificate

Select the test device (UUID of your Mac)

Give the description file a name and click “Generate” to create it

Create the macOS App Development description file

Downloaded macOS App Development description file:

Click on the file to pop up the installation prompt:

Then enter the computer account password to install:

  • Create the Mac App Store description file

Select Mac App Store

Select the corresponding App ID and click Continue

Select the Mac App Distribution certificate

Give the description file a name and click “Generate” to create it

The Mac App Store description file is created

Downloaded Mac App Store description file:

Click on the file to pop up the installation prompt:

Then enter the computer account password to install:

“Failed to install the description file” is displayed.

“Failed to install the description file” is displayed

  • Create the “Developer ID” description file

Select Developer ID

Select the corresponding App ID and click Continue

Select the corresponding Developer ID Application certificate

Give the description file a name and click “Generate” to create it

Create the “Developer ID” description file

Downloaded “Developer ID” description file:

Click on the file to pop up the installation prompt:

Then enter the computer account password to install:

Successful installation of the description file: message ‘verified’

The description file is successfully installed

All description files on the developer account:


Completed the creation of App ID, certificate, description file, and the addition of test equipment! You can configure the project!

Add the App ID(Bundle identifier) to the TARGET of the project:

Add App ID(Bundle Identifier)

Select and configure the description file for development and release:

Development and release of the description file

Configure the development and release description files

Code development and version packaging are now ready!


After packaging, export and shelf

Take a look at the IPA package that has been packed below:

There are four ways to process the IPA package:

  • App Store Connect
  • Developer ID
  • Development
  • Copy App
  • App Store Connect

Select the “App Store Connect” TAB

  • Select “Upload” and Upload the package to “App Store Connect” ~

Select the “Upload”

Click on “Next”

Select the appropriate description file — Mac_ProjectName_App_Store

Then click “Upload” to Upload ~

The projectName. PKG package information display

The projectName. PKG package is uploaded

Projectname. PKG upload ‘App Store Connect’ successfully:

PKG is in the IPA package list at the end. At the end the projectName. PKG is Uploaded

PKG at the end the projectName. PKG package is Uploaded at the end

You can go to the developer account for the shelf work ~


  • Select “Export” to Export the package as projectName.pkg

Select the “Export”

Click on “Next”

Select the appropriate description file — Mac_ProjectName_App_Store

Click “Export” to Export ~

The projectName. PKG package information display

The exported projectName. PKG package

ProjectName. PKG to use:

  • 1. Double-click projectName. PKG to start the installation

    Install the ProjectName. PKG

  • 2. Upload to the “App Store Connect” through the “Transporter” software (for the shelf work)

  • Developer ID

Select the “Developer ID” item

  • Select “Upload” and Upload the package for notarization by Apple!

Select the appropriate description file — Mac_ProjectName_Develop_ID

Then click “Upload” to Upload ~

The projectName.zip package is displayed

The projectName. zip package is uploaded

After the projectName. zip package is successfully uploaded: a notification is displayed indicating that the package is to be notarized

Notice of receipt of notarization:

Notice of notarization

Notarization has been approved! Compatible with macOS Catalina and above!


  • Select “Export” and Export directly as App~ (Developer ID package)

Select the appropriate description file — Mac_ProjectName_Develop_ID

Click “Export” to Export ~

App package information display

  • 1. The exported App package has been notarized successfully

    It indicates that the notarization is successful

    Enter the name of the project

    Exported Developer ID package after notarization:

  • 2. The exported App package has not been notarized

    Failed to notarize, exported Developer ID package:

Support for notarized macOS Catalina versions
  • Update on Prerequisites for Notarization

    In June 2019, Apple announced that all Mac software distributed outside the Mac App Store must be notarized by Apple before running on macOS Catalina by default.

  • Notarize your Mac Software to run in macOS Catalina

    To carry out Mac software notarization, need to meet the conditions!

Therefore, in order to be compatible with higher versions of the system, it is better to notarize the Developer ID package and then export it for use!

  • Development

Select the “Development”

Select the appropriate description file — Mac_ProjectName_Development

Click “Export” to Export the App package

App package information display

Exported Development package:

  • Copy App

Select the “Copy App” TAB

You can directly select the storage path and folder name:

Select a storage path and name the folder

Exported App package:

“App Store Connect” >> “Developer ID” >>> “Development” (for Mac test machine) >>>>> “Copy App”

Application package processing and use – For reference, our company adopted the following two solutions:

  • A. Use (notarized Developer ID package) ‘DMG’ form for encapsulation!

    Creating a DMG file — Encapsulating a Developer ID package

  • B. Upload to App Store Connect and post to App Store!

After the shelf process, basically the same as iOS applications ~

About iOS account operations: Personal Account Real Machine Test, Developer Account Real machine Test, App Shelf










goyohol’s essay




Familiar with certificate configuration and packaging process, write this article! Spent a lot of time, also on the Internet reference a lot of materials ~

Related information and summary :(do not want to sort out in detail, but reference is in order to decline ha ~)

Mac Development Reference:

MacOS development — Xamarin.Mac

Certificates and identifiers: docs.microsoft.com/zh-cn/xamar…

Application preconfiguration file: docs.microsoft.com/zh-cn/xamar…

Mac App Store Bundle: docs.microsoft.com/zh-cn/xamar…

Last 1km of Mac App release: sspai.com/post/40269

This section describes the application package creation tool on the Mac OS

Code Signing Services: developer.apple.com/documentati…

Developer ID

Distribute outside the Mac App Store (macOS) : help.apple.com/xcode/mac/c…

Developer ID:developer.apple.com/support/dev…

Use the “Developer ID” package

Unable to revoke the Mac Certificates stackoverflow.com/questions/2…

MacOS Development – Remove the Developer ID Application and Developer ID Installer certificates

Blog.csdn.net/lovechris00…

www.itread01.com/content/154…

“App Store Connect” pack – Upload App Store only! Cannot be used locally (installable), using error Code Signature Invalid!

“Developer ID” package – Install directly! Network Extensions/Push Notifications are not supported

“Development” package – can only be installed on a computer with a UUID!

️️ Error message when uploading the MAC App Store package:

MacOS development – Provisioning profile “XXX” doesn ‘t support the Network Extensions capability.:blog.csdn.net/lovechris00…

If you use Network Extensions, you must use an App Store certificate and description file.

Use a ‘Developer ID’ type certificate and a description file only to close the use of ‘Network Extensions’!

Hit the “MAC App Store” package, directly uploaded to the App Store, can install but the local is not used! MAC APP exit EXC_CRASH (Code Signature Invalid) : > www.cocoachina.com/bbs/read.ph…

EXC_CRASH (Code Signature Invalid)

Reference mihail.stoynov.com/2013/04/22/…

Refer to the Parental Controls after OS X 10.8.2: EXC_CRASH and changes to the HTTPS handling:tech.kateva.org/2013/05/par…

OS X 10.9 Instant Crash [Fixed in Update] : telltale.com/community/d…

Mac OS X app crash with Code Signature Invalid error Description

OSX Code Signature Invalid Exception when LAUNCHED from Service on

Reference, not try to Code Signature Invalid:blog.csdn.net/yuanya/arti…

ERROR ITMS-90242: "The product archive is invalid. The Info.plist must contain a LSApplicationCategoryType key, whose value is the UTI for a valid category. For more details, see "Submitting your Mac apps to the App Store"."

File:

<key>LSApplicationCategoryType</key>
  <string>public.app-category.video</string>
Copy the code


ERROR ITMS-90277: "Invalid Bundle Identifier. The application bundle contains a tool or framework $(PRODUCT_NAME) [com.CompanyName.ProjectName.pkg/Payload/ProjectName.app/Contents] using the bundle identifier '$(PRODUCT_BUNDLE_IDENTIFIER)', which is not a valid bundle identifier."

‘$(PRODUCT_BUNDLE_IDENTIFIER)’

Stackoverflow.com/questions/4… Stackoverflow.com/questions/3…


ERROR ITMS-90261: "Bad CFBundleExecutable. Cannot find executable file that matches the value of CFBundleExecutable in the nested bundle $(PRODUCT_NAME) [com.CompanyName.ProjectName.pkg/Payload/ProjectName.app/Contents] property list file."


ERROR ITMS-90280: “The CFBundleExecutable of two bundles may not point to the same file. The following shared bundle path have been found: ProjectName.app/Contents.”

Engineering in the corresponding path generated by the app files: / Users/username/Library/Developer/Xcode/DerivedData/project name – dumfvwoomgbbhjffzxipgzhhjvbw/Build/Products/Debug






goyohol’s essay