Unity 發佈 iOS 各種設定筆記


建立時間: 2022年11月22日 09:08
更新時間: 2024年6月18日 02:30

此文章部分內容可能流程已經被簡化或改變,讀者需自行調整,但大部分的內容應該都還適用。

說明

從 Unity 設計好遊戲後,需要進行一大堆的設定,準備許多資料,歷經七七四十九關才能將遊戲發佈到 APP STORE,社會很單純 複雜的是人。

因為內容涉及很多,需要長時間準備資料,此篇文章是參考 Publishing a Unity Game to App Store in 2021 Youtube 教學影片,再加上自己補充的一些內容,從遊戲做好,開始註冊各種資料到上架到 APP STORE 一條龍教學全包,但這只能算是最低需求,因為設定內容很多,如果有特殊需求需另外自行研究。

建立 Apple ID

如果你還沒有 Apple ID,那麼先到 Apple ID 註冊

sign up apple id

建立 Apple Developer Account

Apple Developer 建立一個開發者帳號,在這個階段你會需要繳年費 99 美金!!!,以下截圖重要畫面,其餘有不了解的部分請參考影片

登入 Apple ID

Apple Developer Account

按 Join the Apple Developer Program

Join the Apple Developer Program

點 Enroll 註冊

Apple Developer Enroll

按照提示填寫資料,要注意的是 entity type,我選擇 Individual / Sole Proprietor,因為我是個人開發。

Individual

在一頓操作後,你會付款,然後收到 Email 歡迎還有購買通知等消息。

建立憑證

當帳號授權後,登入 Apple Developer,選擇 Certificates, IDs & Profiles

Certificates, IDs & Profiles

按 Create a certificate

Create a certificate

選擇 Apple Distribution,按 Continue

Apple Distribution

打開鑰匙圈(Mac 內建程式),在選單選擇鑰圈存取 > 憑證輔助程式 > 從使用「gdb-certificate」的憑證授權要求憑證

從使用「gdb-certificate」的憑證授權要求憑證

輸入使用者電子郵件地址、一般名稱,選擇儲存到磁碟,按繼續,然後將憑證儲存到一個你記得的地方。

憑證輔助程式

選擇剛剛從鑰匙圈建立的憑證

選擇憑證

下載憑證,建議跟剛剛從鑰匙圈建立的憑證放在一起。

Download certificate

建立 Identifiers

到 Identifiers 頁面,按 + 新增 Identifier

New identifier

選擇 App IDs,按 Continue

Register a new identifier

選擇 App,按 Continue

Identifier select a type

填寫以下資料

  • Description: 描述遊戲,可以寫遊戲名稱
  • Bundle ID: 格式用 com.domainname.appname
    • domainname 就是像是公司名稱或象徵個人名稱之類的
    • appname 就是 app 名稱
  • Capabilities: 可以自行看是否有需要,不一樣要選

填寫完畢後按 Continue

Identifier register an App ID

最後確認,沒問題後按 Register

Identifier register

建立 Profiles

到 Profiles 分頁,按 Generate a Profile 按鈕

Generate a Profile

選擇 App Store,按 Continue 按鈕

Register a New Provisioning Profile

選擇 App ID,就是在 Identifier 建立的那個,它會提供選項,接著按 Continue 按鈕

Select App ID

選擇憑證,一樣會提供選項讓你選,接著按 Continue 按鈕

Select Certificates

Provisioning Profile Name 輸入跟 Identifier Description 一樣,例如遊戲名稱,然後按 Generate 按鈕

Review, Name and Generate.

最後下載 Provisioning Profile,儲存位置建議跟上面那些憑證或鑰匙圈有的沒的放一起,方便查找

Download Provisioning Profile

平台選擇 iOS

打開選單 File > Build Settings…
確定平台選擇 iOS,你需要在安裝 Unity 時安裝 iOS 平台

iOS platform

Player Settings

打開選單 File > Build Settings…
點擊 Player Settings…

Player Settings

留意設定以下內容

  • Company Name: 公司名稱
  • Product Name: 遊戲名稱,會做為 APP 名稱
  • Version: 自定義版本號
  • Default Icon: 1024x1024 大小,這個是最基本的,這個 Icon 會自適應其他 Icon 大小,但可能會模糊。

Icon

自己提供每個尺寸大小的 Icon,也許會顯示比較比較清楚的 Icon

Settings for iOS icon

Other Settings

  • Identification
    • Bundle Identifier: 要與 Apple Developer Identifiers Bundle ID 一樣
    • Version: 應該會與 Product Name 下面的 Version 一致
    • Build: 建置版本號,當你同一個版本建置多次時,可以修改這個數字,可從1, 2, 3依次累加
  • Target Device: 目標裝置,如果你跟我一樣只想發布 iPhone,記得修改此項目
  • Target SDK: 這要看你打算建置正式 APP,或者是模擬 APP
    • Device SDK: 正式 APP
    • Simulator SDK: 模擬 APP

多國語系

沒有意外的話,發佈到 App Store 上 App 的資訊中,語言預設會是英文,如果要修改語言資訊請參考 Unity 設定 ios 多國語系

Unity Build

Unity 是跨平台的遊戲引擎,我們需要建置 iOS 版本專案

路徑可以參考這個格式

第1次建置
/UnityBuild/ProjectName/版本號/1
相同版本第2次建置
/UnityBuild/ProjectName/版本號/2

Build

打開 xcode project

當你建置完成後,打開 /UnityBuild/ProjectName/版本號/1/Unity-iPhone.xcodeproj 檔案(路徑在建置的位置)
裡面有一大堆選項,以下我只列幾個我知道的,其他的需自行研究了

Identity

xcode project identity

  • App Category: App 分類
  • Display Name: App 名稱
  • Bundle Identifier: 跟 Apple Identifiers 設定的 Bundle ID 一樣,這個可以晚點再設定
  • Version: App 版本號
  • Build: 建置版本,可能同一個版本建置好幾次

聲明您的應用程式對加密的使用

新版的 iOS project 可以添加 ITSAppUsesNonExemptEncryption 鍵值到你的應用程式 Info.plist,如果沒有就設定 No,這樣你就不用在 TestFlight 的 iOS 建置版本中選擇加密,詳情請參考 https://developer.apple.com/documentation/security/complying_with_encryption_export_regulations#3145067

ITSAppUsesNonExemptEncryption key

支援的裝置設定

原本我的遊戲只支援 iPhone 裝置,第一次送審時,卻看到要求我提供 iPad 截圖,後來我找到了 Xcode 裡面有選項可以設定支援的裝置

設定在所有 TARGETS 的 Support Destinations 只提供 iPhone,雖然這樣做結果可以不用傳 iPad 截圖,但還需請讀者研究一下這個選項是否會造成其他影響

Support Destinations

如果你已經送審支援 iPad 版本的話,需要送審新的版本,因為當時我找不到送審新的版本,所以我直接移除 APP,又建立一個新的 APP,恩!那些證書、資料我又重寫了一遍…

Signing & Capabilities

一開始會看到一個錯誤訊息,專案需要一個開發團隊

the project requires a development team

點擊 Add Account… 按鈕,登入你的開發用的 Apple ID

Add Account

添加你在 Apple Developer 頁面建立並下載的 Certificates,雙擊檔案即可

add certificates

完成後,在 Team 選擇你剛剛建立的帳號,你會看到更多的錯誤訊息…

select team

錯誤原因是沒有找到找到 profiles,所以要手動加入 Provisioning Profile 檔案

首先關閉 Automatically manage signing
然後在 Provisioning Profile 選擇 Import Profile
Profile 就是 Apple Developer 頁面新增的 Profiles 檔案

Import Profile

最後你可能還會看到錯誤,但這個錯誤比較簡單,只是 Bundle Identifier 與 Provisioning Profile ID 不一樣
只要把 Bundle Identifier 改成跟 Provisioning Profile ID 一樣就行了

Provisioning Profile not match bundle ID

更改後切換標籤頁刷新一下畫面,錯誤就消失了

到 General 標籤頁可以看到 Bundle Identifier 也跟著變動

截圖 2022-12-15 下午8.13.13.png

再回到 Signing & Capabilities 確認是否沒有錯誤了

截圖 2022-12-15 下午8.14.08.png

Xcode Build

完成所有設定後,接下來要建置應用程式。

打開選單 Product > Archive

接下來會有很多步驟要輸入電腦登入的密碼,這些步驟將忽略不說

當 Build 完成後,你會看到一個 Organizer 視窗,點擊 Distribute App 按鈕

Distribute App

選擇 App Store Connect 選項

App Store Connect

選擇 Upload 選項

Upload

打勾以下選項

  • Strip Swift symbols
  • Upload your app’s symbols
  • Manage Version and Build Number

App Store Connect distribution options

上傳剛剛的 Provisioning Profile
之後可以選 Automatically manage signing

select provisioning profile

確認無誤後,點擊 Upload 按鈕上傳 App

Upload App

不出意外的話,會跳出上傳成功的視窗,接下來按 Done 關閉視窗

successfully uploaded

TestFlight

回到 App Store Connect 進入 TestFlight,你會看到警告,這是在詢問你有沒有使用什麼加密,如果有要補上加密資料,關於這個我選擇沒有使用加密,尚未清楚要如何補上加密資料。

Missing Compliance Manage

關於 APP 測試,我之前沒測試有被寄信要求我 APP 必須測試,所以還是要稍微測試一下,點擊建置版本選項

建置版本選項

填寫測試內容

測試內容

加入測試群組

測試群組

你應該會收到信件邀請你下載 TestFlight APP,在 iPhone 登入受邀請的 Apple 帳號並且下載 TestFlight,裡面有要測試 APP,接著實際測試並回饋就差不多了。

圖片很大,你忍一下。

Test APP

App 資訊

設定內容版權和年齡分級,依照你的 APP 回答即可

內容版權和年齡分級

定價與供應狀況

這個部分沒什麼太大問題,大家自行設定即可。

App 隱私權

App 隱私權

隱私權政策 URL

這個部分可以到 Privacy Policies 網站註冊,這個只是推薦,如果你有其他方式都是沒問題的

資料收集

一開始你會看到類似這個畫面,請按 Get Started 按鈕

Privacy Policy Get Started

關於會收集哪些資料,你需要了解是否有其他的 SDK 或者自己的 APP 有收集資料

Data Collection

詳細收集內容

剛剛勾選的資料,你需要一一設定詳細內容

Set up data collection details

以下拿一個當範例,其餘的按照相同的方式即可

因為這是第三方廣告,所以在這裡我勾選第一項

Coarse Location

內容問是不是 linked to the user’s identity,參考 Apple privacy survey for Unity Ads,可以看到這個部分有 Linked to user

linked to the user's identity?

一樣參考 Apple privacy survey for Unity Ads,可以看到這個部分有追蹤目的,當回答完後按儲存

tracking

剩下的部分比照辦理

App 提交

最後一步就是要提交,當一切就緒之後,到 APP STORE 標籤頁

APP STORE Page

建置版本

選擇測試沒問題打算要建置的版本

建置版本

iOS 預覽和截圖

預覽和截圖就是影片和圖片,每個裝置有自己要求的尺寸,記得圖片和影片要存下來,之後更新版本若誤刪還可以找回來,裝置很多,要求尺寸也很多,忍耐一下。

圖片、影片要求的尺寸格式請參考: https://developer.apple.com/help/app-store-connect/reference/app-preview-specifications

iOS 預覽和截圖

填寫剩餘欄位

其他必填欄位請大家自行填寫,我就不再一一說明了,以下為範例。

描述、此版本的新增功能、關鍵字

提交

最後儲存,按新增以供審查,然後確認後提交。

儲存,按新增以供審查

APP STORE 團隊客服

在開發蘋果的應用程式時,有任何問題你可以聯絡 APP STORE 客服,畢竟都已經繳了年費,就放心大膽地問吧!

我問過一次,就是我的遊戲只想支援 iPhone 但卻必須要求我上傳 iPad 的那個問題,我自己 Google 搜尋了一遍,那時已經有看到解決辦法了,但照做審查還是出現必須上傳 iPad 截圖,詢問客服之後,他們給的解決辦法是叫我更新 Required device capabilities 雖然我感覺不太對,但是訊息也提到「您只能擴充裝置需求。因此,您無法提交二進位檔更新來限制裝置需求。」,我一怒之下刪掉被審核拒絕的 APP,又新增一個 APP,然後改 Support Destinations 如本篇支援的裝置設定說明那樣,結果就不用傳 iPad 截圖了,雖然回答令我困惑,但多少會真誠地給予開發者解決方向,我之後遇到問題還是會考慮詢問 APP STORE 客服,畢竟我都已經繳了年費!

觀看次數: 2954
appapplicationbuildiosstoreunity

相關文章:

按讚追蹤 Enjoy 軟體 Facebook 粉絲專頁
每週分享資訊技術

一杯咖啡的力量,勝過千言萬語的感謝。

支持我一杯咖啡,讓我繼續創作優質內容,與您分享更多知識與樂趣!