[廚餘回收] Xamarin.Forms(iOS)上傳建置版本後收到「... A value for the Info.plist key 'CFBundleIconName' is missing in the bundle ...」訊息

用 Xamarin 開發好 iOS App 後,如果我們的開發環境是 Visual Studio 照著官方的步驟一步一步做,用 Application Loader 上傳完畢想說應該 OK 了,但是在 iTunes Connect 遲遲不見剛剛建置版本上傳,檢查信箱收到了一封信:

這個意思說使用 iOS 11 以上建置的 App,必須將 App 的圖示放在一個 Asset Catelog,而且在要 Info.plist 裡面設定 CFBundleIconName 值,我們來看怎麼解決?

使用資產目錄

在 iOS 專案屬性中的「iOS 資訊清單」打開 Info.plist 的設定畫面,接著在「視覺資產」頁籤中點擊「使用資產目錄」按鈕。

我們就會看到 App 圖示的來源變成 AppIcon,啟動影像的來源變成 LaunchImage(有可能會出現中文名稱但這不影響),再來就是如果我們有用 LaunchScreen.storyboard 做啟動畫面的話,在啟動影像的來源可以設定成 (無)

除此之外我們還會看到 iOS 專案底下的資產目錄多了一個 Media,而專案資料夾下面多了一個 Media.xcassets 目錄。

補齊 AppIcon 中的圖示

雙擊資產目錄的 Media 就會出現以下畫面,將 AppIcon 一個蘿蔔一個坑地補齊,而沒有的就留空,原先在 Resources 目錄底下 App 圖示檔案也可以刪掉了。

修改 Info.plist 設定

由於我們的 App 圖示現在轉放至 Asset Catelog,所以原先在 Info.plist 裡面的 CFBundleIconFiles 設定就可以不用了。

接著設定 CFBundleIconName 值為 AppIcon,還有 Visual Studio 會在 Assets 路徑前面多加 Resources/,這個是多出來的,要把它刪掉。

最後重新建置打包 IPA 檔上傳,問題就可以得到解決,iTunes Connect 的建置版本也可以看得到了。

參考資料

相關資源

C# 指南
ASP.NET 教學
ASP.NET MVC 指引
Azure SQL Database 教學
SQL Server 教學
Xamarin.Forms 教學