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