發佈 Mac App Store 散發套件的 Mac Catalyst 應用程式
將 Mac Catalyst 應用程式散發給使用者最常見的方法是透過 Mac App Store。 應用程式會透過名為 App Store Connect 的在線工具提交至 Mac App Store。 只有屬於 Apple Developer Program 的開發人員才能存取此工具。 Apple Developer Enterprise Program 成員沒有存取權限。 提交到 Mac App Store 的所有應用程式都需要 Apple 的核准。
散發 Mac Catalyst 應用程式需要使用 佈建配置檔佈建應用程式。 佈建配置檔是包含程式代碼簽署資訊的檔案,以及應用程式的身分識別及其預定散發機制。
若要散發 .NET 多平臺應用程式 UI (.NET MAUI) Mac Catalyst 應用程式,您必須建置 其專屬的散發佈建配置檔 。 此設定檔可讓應用程式以數位方式簽署發行,以便安裝在 Mac 上。 散發佈建配置檔包含應用程式識別碼和散發憑證。 如果您還沒有散發憑證,您必須建立散發憑證來識別自己或您的組織。 此外,您必須建立 Mac 安裝程式憑證,以簽署應用程式的安裝程式套件,以提交至 Mac App Store。
佈建 .NET MAUI Mac Catalyst 應用程式以透過 Mac App Store 散發的程式如下:
- 建立憑證簽署要求。 如需詳細資訊,請參閱 建立憑證簽署要求。
- 建立散發憑證。 如需詳細資訊,請參閱 建立散發憑證。
- 建立安裝程序憑證。 如需詳細資訊,請參閱 建立安裝程序憑證。
- 建立應用程式識別碼。 如需詳細資訊,請參閱 建立應用程式識別符。
- 設定應用程式識別碼。 如需詳細資訊,請參閱 設定應用程式識別碼。
- 建立布建配置檔。 如需詳細資訊,請參閱 建立布建配置檔。
- 下載您的布建配置檔。 如需詳細資訊,請參閱 在 Xcode 中下載布建配置檔。
然後,布建完成後,您應該準備應用程式進行發佈,然後使用下列程序發佈它:
- 將必要的權利新增至您的應用程式。 如需詳細資訊,請參閱 新增權利。
- 更新應用程式的 Info.plist 檔案。 如需詳細資訊,請參閱 更新 Info.plist。
- 使用命令行發佈您的應用程式。 如需詳細資訊,請參閱 使用命令行發佈。
建立憑證簽署要求
建立散發憑證之前,您必須先在 Mac 上的 Keychain Access 中建立憑證簽署要求 (CSR):
在您的 Mac 上,啟動 Keychain Access。
在 [金鑰鏈存取] 中,選取 [金鑰鏈存取 > 憑證助理 > ] 從 [證書頒發機構單位... ] 功能表項要求憑證。
在 [ 憑證助理 ] 對話框中,於 [用戶電子郵件位址 ] 字段中輸入電子郵件位址。
在 [ 憑證小幫手 ] 對話框中,於 [一般名稱] 字段中輸入密鑰 的名稱 。
在 [憑證助理] 對話框中,將 [CA 電子郵件位址] 字段保留空白。
在 [ 憑證小幫手 ] 對話框中,選擇 [ 儲存至磁碟 ] 單選按鈕,然後選取 [ 繼續]:
將憑證簽署要求儲存至已知位置。
在 [ 憑證小幫手] 對話框中,選取 [ 完成] 按鈕。
關閉 Keychain 存取。
建立散發憑證
CSR 可讓您產生散發憑證,以確認您的身分識別。 您必須使用 Apple 開發人員帳戶的 Apple ID 來建立散發憑證:
在網頁瀏覽器中,登入您的 Apple開發人員帳戶。
在您的 Apple 開發人員帳戶中,選取 [ 憑證]、[標識符和配置檔] 索引標籤 。
在 [ 憑證]、[標識符與配置檔] 頁面上,選取 + 按鈕以建立新的憑證。
在 [ 建立新憑證 ] 頁面上,選取 [Apple Distribution ] 單選按鈕,再選取 [ 繼續] 按鈕:
在 [ 建立新的憑證 ] 頁面上,選取 [ 選擇檔案]:
在 [ 選擇要上傳 的檔案] 對話框中,選取您先前建立的憑證要求檔案(擴展名為
.certSigningRequest
的檔案),然後選取 [ 上傳]。在 [ 建立新憑證 ] 頁面上,選取 [ 繼續] 按鈕:
在 [ 下載您的憑證] 頁面上,選取 [ 下載 ] 按鈕:
憑證檔案(擴展名為
.cer
的檔案)將會下載到您選擇的位置。在 Mac 上,按兩下下載的憑證檔案,將憑證安裝到您的密鑰鏈。 憑證會出現在 Keychain Access 的 [我的憑證] 類別中,然後從 Apple Distribution 開始:
注意
記下 Keychain Access 中的完整憑證名稱。 簽署您的應用程式時需要用到它。
建立安裝程序憑證
CSR 可讓您產生安裝程序憑證,這是簽署應用程式安裝程式套件以提交至 Mac App Store 的必要憑證。 您必須使用 Apple 開發人員帳戶的 Apple ID 來建立安裝程式憑證:
在您的 Apple 開發人員帳戶中,選取 [ 憑證]、[標識符和配置檔] 索引標籤 。
在 [ 憑證]、[標識符與配置檔] 頁面上,選取 + 按鈕以建立新的憑證。
在 [ 建立新的憑證 ] 頁面上,選取 [Mac 安裝程式散發 ] 單選按鈕,再選取 [ 繼續] 按鈕:
在 [ 建立新的憑證 ] 頁面上,選取 [ 選擇檔案]:
在 [ 選擇要上傳 的檔案] 對話框中,選取您先前建立的憑證要求檔案(擴展名為
.certSigningRequest
的檔案),然後選取 [ 上傳]。在 [ 建立新憑證 ] 頁面上,選取 [ 繼續] 按鈕:
在 [ 下載您的憑證] 頁面上,選取 [ 下載 ] 按鈕:
憑證檔案(擴展名為
.cer
的檔案)將會下載到您選擇的位置。在 Mac 上,按兩下下載的憑證檔案,將憑證安裝到您的密鑰鏈。 憑證會出現在 Keychain Access 的 [我的憑證] 類別中,然後從第三方 Mac 開發人員安裝程序開始:
注意
記下 Keychain Access 中的完整憑證名稱。 簽署您的應用程式時需要用到它。
建立散發配置檔
散發佈建配置檔可讓您的 .NET MAUI Mac Catalyst 應用程式以數位方式簽署發行,使其可以安裝在另一個 Mac 上。 Mac App Store 散發套件的佈建配置檔包含應用程式標識碼和散發憑證。
建立應用程式識別碼
需要應用程式識別碼,才能識別您要散發的應用程式。 應用程式標識碼類似於反向 DNS 字串,可唯一識別應用程式,且應該與應用程式的套件組合識別符相同。 您可以使用將應用程式部署至裝置以進行測試時所使用的相同應用程式識別碼。
應用程式識別碼有兩種類型:
- 萬用字元。 通配符應用程式識別碼可讓您使用單一應用程式識別碼來比對多個應用程式,而且通常會採用 格式
com.domainname.*
。 通配符應用程式識別碼可用來散發多個應用程式,而且應該用於未啟用應用程式特定功能的應用程式。 - 明確。 明確的應用程式識別碼對單一應用程式而言是唯一的,而且通常會採用 格式
com.domainname.myid
。 明確的應用程式識別碼允許散發一個應用程式,並具有相符的套件組合標識符。 明確應用程式識別碼通常用於啟用App特定功能的應用程式,例如Apple Pay或Game Center。 如需功能的詳細資訊,請參閱 功能。
若要建立新的應用程式識別碼:
在您的 Apple 開發人員帳戶中,流覽至 [憑證]、[標識符和配置檔]。
在 [ 憑證]、[標識符和配置檔] 頁面上,選取 [ 標識符] 索引卷標 。
在 [ 標識符] 頁面上,選取 + 按鈕以建立新的應用程式識別碼。
在 [註冊新的標識符] 頁面上,選取 [應用程式標識符] 單選按鈕,再選取 [繼續] 按鈕:
在 [ 註冊新的標識符 ] 頁面上,選取 [應用程式 ],再選取 [ 繼續] 按鈕:
在 [註冊應用程式標識符] 頁面上,輸入描述,然後選取 [明確] 或 [通配符套件組合標識符] 單選按鈕。 然後,以反向 DS 格式輸入應用程式的套件組合識別碼:
重要
您輸入的套件組合識別碼必須對應至應用程式專案中 Info.plist 檔案中的套件組合識別碼。
.NET MAUI 應用程式的套件組合識別符會儲存在專案檔中作為 應用程式識別符 屬性。 在 Visual Studio 中,於 方案總管 以滑鼠右鍵按鍵按下 .NET MAUI 應用程式專案,然後選取 [屬性]。 然後,流覽至 [MAUI 共用一般] 索引標籤>。[應用程式識別碼] 欄位會列出套件組合識別碼。
更新 [應用程式識別符] 字段的值時,Info.plist 中 [套件組合標識符] 的值將會自動更新。
在 [ 註冊應用程式識別符 ] 頁面上,選取應用程式使用的任何功能。 您必須在此頁面和 App 專案中的 Entitlements.plist 檔案中設定任何功能。 如需詳細資訊,請參閱功能和權利。
在 [ 註冊應用程式識別符 ] 頁面上,選取 [ 繼續] 按鈕。
在 [ 確認您的應用程式識別符 ] 頁面上,選取 [ 註冊] 按鈕。
設定應用程式識別碼
根據預設,Mac Catalyst 應用程式會使用與 iOS 應用程式相同的套件組合識別碼,讓您可以在 Mac App Store 上以通用購買的形式提供應用程式。 或者,您可以指定唯一的套件組合識別碼,以提供應用程式做為個別產品。
若要設定應用程式識別碼:
在您的 Apple 開發人員帳戶中,流覽至 [憑證]、[標識符和配置檔]。
在 [ 憑證]、[標識符和配置檔] 頁面上,選取 [ 標識符] 索引卷標 。
在 [ 標識符] 頁面上,選取您剛才建立的應用程式識別碼。
在 [ 編輯您的應用程式標識符組態 ] 頁面上,捲動至頁面底部,然後啟用 [Mac Catalyst 功能] 複選框。 然後選擇[ 設定 ] 按鈕:
在 [ 設定 Mac Catalyst 套件組合識別符] 彈出視窗中,選取 [ 使用現有的 Mac 應用程式識別符 ] 單選按鈕。 在 [ 應用程式識別符 ] 下拉式清單中,選取 Mac Catalyst 合作夥伴 iOS 應用程式的 [應用程式識別符],或如果您要提供 Mac Catalyst 應用程式做為個別產品,則為您所建立的應用程式識別符。 然後,選取 [ 儲存] 按鈕:
在 [ 編輯您的應用程式識別符組態 ] 頁面中,選取 [ 儲存 ] 按鈕:
在 [ 修改應用程式功能] 彈出視窗中,選取 [ 確認] 按鈕:
建立布建配置檔
建立並設定應用程式識別碼之後,您應該建立散發佈建配置檔。 此設定檔可讓應用程式以數位方式簽署發行,以便安裝在 Mac 上。
若要建立 Mac App Store 散發套件的佈建設定檔:
在 Apple Developer Account 的 [憑證、標識碼和設定檔] 頁面中,選取 [ 配置檔] 索引標籤。
在 [ 配置檔] 索引標籤中 + ,按下按鈕以建立新的設定檔。
在 [ 註冊新的布建配置檔 ] 頁面中,選取 [Mac App Store ] 單選按鈕,再按兩下 [ 繼續] 按鈕:
在 [ 產生布建配置檔 ] 頁面中,選取 [ Mac ] 單選按鈕。 然後,在 [ 應用程式標識符 ] 下拉式清單中,選取您先前建立的應用程式識別碼,再按兩下 [ 繼續] 按鈕:
在 [ 產生佈建配置檔 ] 頁面中,選取對應至散發憑證的單選按鈕,再按兩下 [ 繼續] 按鈕:
在 [ 產生布建配置檔 ] 頁面中,輸入布建配置檔的名稱,再按兩下 [ 產生 ] 按鈕:
注意
請記下布建配置檔名稱,因為簽署應用程式時需要此名稱。
在 [ 產生布建配置檔 ] 頁面中,選擇性地按兩下 [下載 ] 按鈕以下載布建配置檔。
注意
您現在不需要下載布建設定檔。 相反地,您會在 Xcode 中執行此動作。
在 Xcode 中下載布建配置檔
在 Apple 開發人員帳戶中建立布建設定檔之後,Xcode 可以下載它,以便簽署您的應用程式:
在您的 Mac 上,啟動 Xcode。
在 Xcode 中 ,選取 [Xcode > 喜好設定... ] 功能表項。
在 [ 喜好設定 ] 對話框中,選取 [ 帳戶] 索引卷 標。
在 [ 帳戶] 索引標籤中 + ,按兩下按鈕,將您的 Apple 開發人員帳戶新增至 Xcode:
在帳戶類型彈出視窗中,選取 [Apple ID ],然後按兩下 [ 繼續] 按鈕:
在登入彈出視窗中,輸入您的 Apple ID,然後按下 一步] 按鈕。
在登入彈出視窗中,輸入您的 Apple ID 密碼,然後按下 一步] 按鈕:
在 [ 帳戶] 索引標籤中,按兩下 [ 管理憑證... ] 按鈕,以確保已下載您的散發憑證。
在 [ 帳戶] 索引標籤中,按兩下 [ 下載手動設定檔 ] 按鈕以下載布建設定檔:
等候下載完成,然後關閉 Xcode。
新增權利
Apple 的應用程式沙箱會限制存取 Mac 應用程式中的系統資源和用戶數據,以在應用程式遭到入侵時包含損毀。 它必須針對透過 Mac App Store 散發的 Mac Catalyst 應用程式啟用。
這可以藉由將 Entitlements.plist 檔案新增至 .NET MAUI 應用程式專案的 Platform/MacCatalyst 資料夾來完成:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
</dict>
</plist>
應用程式沙盒權利是使用 com.apple.security.app-sandbox
類型的 boolean
索引鍵來定義。 如需應用程式沙盒的相關信息,請參閱 在 developer.apple.com 上使用應用程式沙箱 保護用戶數據。 如需應用程式沙盒權利的相關信息,請參閱 應用程式沙盒權利。
如果您的應用程式開啟連出網路連線,您也必須將 類型boolean
為 的密鑰新增com.apple.security.network.client
至您的 Entitlements.plist 檔案:
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>com.apple.security.app-sandbox</key>
<true/>
<key>com.apple.security.network.client</key>
<true/>
</dict>
</plist>
如需連出網路連線權利的相關信息,請參閱 com.apple.security.network.client on developer.apple.com。
更新 Info.plist
發佈應用程式之前,您應該使用其他資訊更新其 Info.plist 檔案,以確保應用程式可以上傳至 Mac App Store,並協助確保 Mac App Store 檢閱程式順暢。
指定使用者介面語式
Mac Catalyst 應用程式可以在 iPad 或 Mac 使用者介面成語中執行:
- iPad 使用者介面成語會告訴 macOS 調整應用程式的使用者介面,以符合 Mac 顯示環境,同時保留類似 iPad 的外觀。
- Mac 使用者介面成語不會調整應用程式的使用者介面,以符合 Mac 顯示環境。 某些控制項會變更其大小和外觀,並與控件互動的感覺與控件的互動
AppKit
方式相同。
根據預設,.NET MAUI Mac Catalyst 應用程式會使用 iPad 使用者介面語式。 如果這是您所需的行為,請確定應用程式的 Info.plist 檔案只會指定 2 作為索引鍵的值 UIDeviceFamily
:
<key>UIDeviceFamily</key>
<array>
<integer>2</integer>
</array>
若要採用 Mac 使用者介面語式,請更新應用程式的 Info.plist 檔案,將 6 指定為機碼的值 UIDeviceFamily
:
<key>UIDeviceFamily</key>
<array>
<integer>6</integer>
</array>
如需 Mac Catalyst 使用者介面慣用語的詳細資訊,請參閱 指定 Mac Catalyst 應用程式的 UI 慣用語。
設定應用程式的預設語言和區域
CFBundleDevelopmentRegion
將應用程式 Info.plist 中的索引鍵設定為 string
,代表當地語系化原生開發區域:
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
索引鍵的值應該是具有選擇性區域指示項的語言指示項。 如需詳細資訊,請參閱 cfBundleDevelopmentRegion on developer.apple.com。
設定著作權金鑰
NSHumanReadableCopyright
將應用程式 Info.plist 中的金鑰設定為 string
,代表您應用程式的人類可讀著作權聲明:
<key>NSHumanReadableCopyright</key>
<string>MyMauiApp © 2023</string>
如需詳細資訊,請參閱 developer.apple.com 上的 NSHumanReadableCopyright 。
設定應用程式類別
類別可協助使用者在 Mac App Store 上探索您的應用程式。 您可以在 Info.plist 檔案中設定應用程式的主要類別:
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
如需詳細資訊,請參閱 developer.apple.com 上的 LSApplicationCategoryType 。
注意
應用程式的主要類別必須符合您在 App Store Connect 中設定的主要類別。
宣告您的應用程式使用加密
如果您的應用程式使用加密,且您計劃將其散發到 美國 或加拿大以外,則會受限於美國匯出合規性需求。 每次將應用程式的版本提交至 App Store Connect 時,都會進行加密匯出法規合規性檢閱。 若要避免 App Store Connect 詢問問題以引導您完成檢閱,您可以在您 App 的 Info.plist 檔案中提供必要資訊。
這可藉由將 ITSAppUsesNonExemptEncryption
金鑰新增至您應用程式的 Info.plist ,並具有 boolean
指出您的應用程式是否使用加密的值來完成:
<key>ITSAppUsesNonExemptEncryption</key>
<false/>
如需詳細資訊,請參閱 遵守 developer.apple.com 加密導出法規 。
使用命令行發佈
若要從 Mac 上的命令行發佈 Mac Catalyst 應用程式,請開啟終端機並流覽至 .NET MAUI 應用程式項目的資料夾。 dotnet publish
執行 命令,並提供下列參數:
參數 | 值 |
---|---|
-f 或 --framework |
目標架構,也就是 net8.0-maccatalyst 。 |
-c 或 --configuration |
組建組態,也就是 Release 。 |
-p:MtouchLink |
項目的連結模式,可以是 None 、 SdkOnly 或 Full 。 |
-p:CreatePackage |
設定為 true ,以便在建置結束時為應用程式建立套件 (.pkg)。 |
-p:EnableCodeSigning |
設定為 true ,以便啟用程式代碼簽署。 |
-p:EnablePackageSigning |
設定為 true ,讓所建立的套件經過簽署。 |
-p:CodesignKey |
程式代碼簽署金鑰的名稱。 設定為散發憑證的名稱,如 Keychain Access 中所顯示。 |
-p:CodesignProvision |
簽署應用程式套件組合時要使用的布建配置檔。 |
-p:CodesignEntitlements |
權利檔案的路徑,指定應用程式所需的權利。 設定為 Platforms\MacCatalyst\Entitlements.plist 。 |
-p:PackageSigningKey |
簽署套件時要使用的套件簽署金鑰。 設定為安裝程序憑證的名稱,如 Keychain Access 中所顯示。 |
警告
嘗試發佈 .NET MAUI 解決方案會導致 dotnet publish
命令嘗試個別發佈方案中的每個專案,這可能會導致將其他項目類型新增至方案時發生問題。 因此, dotnet publish
命令的範圍應設定為 .NET MAUI 應用程式專案。
如果在項目檔中未提供其他建置參數,則可以在命令行上 <PropertyGroup>
指定其他建置參數。 下表列出一些常見的參數:
參數 | 值 |
---|---|
-p:ApplicationTitle |
應用程式的用戶可見名稱。 |
-p:ApplicationId |
應用程式的唯一識別碼,例如 com.companyname.mymauiapp 。 |
-p:ApplicationVersion |
識別應用程式反覆項目的組建版本。 |
-p:ApplicationDisplayVersion |
應用程式的版本號碼。 |
如需組建屬性的完整清單,請參閱 專案檔屬性。
重要
所有這些參數的值都不需要在命令行上提供。 您也可以在項目檔中提供它們。 當在命令行和項目檔中提供參數時,命令行參數會優先使用。 如需在項目檔中提供建置屬性的詳細資訊,請參閱 在專案檔中定義組建屬性。
例如,使用下列命令在 Mac 上建置及簽署 .pkg ,以透過 Mac App Store 散發:
dotnet publish -f net8.0-maccatalyst -c Release -p:MtouchLink=SdkOnly -p:CreatePackage=true -p:EnableCodeSigning=true -p:EnablePackageSigning=true -p:CodesignKey="Apple Distribution: John Smith (AY2GDE9QM7)" -p:CodesignProvision="MyMauiApp" -p:CodesignEntitlements="Platforms\MacCatalyst\Entitlements.plist" -p:PackageSigningKey="3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)"
注意
在 .NET 8 中 dotnet publish
,命令預設為組 Release
態。 因此,您可以從命令行省略組建組態。
發佈組建、簽署和封裝應用程式,然後將.pkg複製到 bin/Release/net8.0-maccatalyst/publish/ 資料夾。 如果您只使用單一架構發佈應用程式,則會發佈至 bin/Release/net8.0-maccatalyst/{architecture}/publish/ 資料夾。
在簽署過程中,可能需要輸入您的登入密碼,並允許 codesign
並 productbuild
執行:
如需命令的詳細資訊 dotnet publish
,請參閱 dotnet publish。
在項目檔中定義組建屬性
在命令行上指定建置參數的替代方法是在 中的項目檔中 <PropertyGroup>
指定它們。 下表列出一些常見的組建屬性:
屬性 | 值 |
---|---|
<ApplicationTitle> |
應用程式的用戶可見名稱。 |
<ApplicationId> |
應用程式的唯一識別碼,例如 com.companyname.mymauiapp 。 |
<ApplicationVersion> |
識別應用程式反覆項目的組建版本。 |
<ApplicationDisplayVersion> |
應用程式的版本號碼。 |
<CodesignKey> |
程式代碼簽署金鑰的名稱。 設定為散發憑證的名稱,如 Keychain Access 中所顯示。 |
<CodesignEntitlements> |
權利檔案的路徑,指定應用程式所需的權利。 設定為 Platforms\MacCatalyst\Entitlements.plist 。 |
<CodesignProvision> |
簽署應用程式套件組合時要使用的布建配置檔。 |
<CreatePackage> |
設定為 true ,以便在建置結束時為應用程式建立套件 (.pkg)。 |
<EnableCodeSigning> |
設定為 true ,以便啟用程式代碼簽署。 |
<EnablePackageSigning> |
設定為 true ,讓所建立的套件經過簽署。 |
<MtouchLink> |
項目的連結模式,可以是 None 、 SdkOnly 或 Full 。 |
<PackageSigningKey> |
簽署套件時要使用的套件簽署金鑰。 設定為安裝程序憑證的名稱,如 Keychain Access 中所顯示。 |
如需組建屬性的完整清單,請參閱 專案檔屬性。
重要
這些項目檔中不需要提供這些組建屬性的值。 當您發佈應用程式時,您也可以在命令行上提供它們。 這可讓您省略項目檔中的特定值。
下列範例示範建置和簽署 Mac Catalyst app for Mac App Store 散發套件的一般屬性群組:
<PropertyGroup Condition="'$(Configuration)|$(TargetFramework)|$(Platform)'=='Release|net8.0-maccatalyst|AnyCPU'">
<MtouchLink>SdkOnly</MtouchLink>
<EnableCodeSigning>True</EnableCodeSigning>
<EnablePackageSigning>true</EnablePackageSigning>
<CreatePackage>true</CreatePackage>
<CodesignKey>Apple Distribution: John Smith (AY2GDE9QM7)</CodesignKey>
<CodesignProvision>MyMauiApp</CodesignProvision>
<CodesignEntitlements>Platforms\MacCatalyst\Entitlements.plist</CodesignEntitlements>
<PackageSigningKey>3rd Party Mac Developer Installer: John Smith (AY2GDE9QM7)</PackageSigningKey>
</PropertyGroup>
本範例 <PropertyGroup>
會新增條件檢查,除非條件檢查通過,否則無法處理設定。 條件檢查會尋找兩個專案:
- 組建組態會設定為
Release
。 - 目標架構會設定為包含文字
net8.0-maccatalyst
的內容。 - 平台會設定為
AnyCPU
。
如果上述任一條件失敗,則不會處理設定。 更重要的是, <CodesignKey>
不會設定、 <CodesignProvision>
和 <PackageSigningKey>
設定,以防止應用程式簽署。
新增上述屬性群組之後,應用程式可以從 Mac 上的命令行發佈,方法是開啟終端機並流覽至 .NET MAUI 應用程式項目的資料夾。 然後,執行下列命令:
dotnet build -f net8.0-maccatalyst -c Release
注意
在 .NET 8 中 dotnet publish
,命令預設為組 Release
態。 因此,您可以從命令行省略組建組態。
發佈組建、簽署和封裝應用程式,然後將.pkg複製到 bin/Release/net8.0-maccatalyst/publish/ 資料夾。
上傳至 Mac App Store
應用程式使用 Apple Distribution 憑證簽署程式代碼之後,就無法在本機執行。 相反地,它應該上傳至 App Store Connect,以便重新簽署以啟用本機執行。
若要透過 Mac App Store 或 TestFlight 散發您的應用程式,您必須在 App Store Connect 中建立應用程式記錄。 此記錄包含應用程式的所有資訊,因為它會出現在 App Store 中,以及管理整個散發程式應用程式所需的所有資訊。 如需詳細資訊,請參閱 在 developer.apple.com 上建立應用程序記錄 。
傳輸器 可用來將您的應用程式提交至 Mac App Store。 它也有助於找出應用程式套件停止成功提交的錯誤。