質問: ### 前提・実現したいこと Xamarin.Formsでアプリを開発しています。 iOS側のアイコンを、Prismでデフォルトで生成されるアイコンから置き換えてビルドしたところ、下記エラーが毎回表示され、進めない状態です。 ### 発生している問題・エラーメッセージ ``` System.IO.FileNotFoundException: Could not find file "/Users/[User]/Library/Caches/Xamarin/mtbs/builds/MyApp.iOS/.../obj/iPhone/Debug/actool/bundle/AppIcon60x60@2x.png" File name: '/Users/[User]/Library/Caches/Xamarin/mtbs/builds/MyApp.iOS/.../obj/iPhone/Debug/actool/bundle/AppIcon60x60@2x.png' at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.Boolean anonymous, System.IO.FileOptions options) [0x00259] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:274 at System.IO.FileStream..ctor (System.String path, System.IO.FileMode mode, System.IO.FileAccess access, System.IO.FileShare share, System.Int32 bufferSize, System.IO.FileOptions options) [0x00000] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-02/external/bockbuild/builds/mono-x64/mcs/class/corlib/System.IO/FileStream.cs:106 at (wrapper remoting-invoke-with-check) System.IO.FileStream..ctor(string,System.IO.FileMode,System.IO.FileAccess,System.IO.FileShare,int,System.IO.FileOptions) at System.IO.FileSystem.CopyFile (System.String sourceFullPath, System.String destFullPath, System.Boolean overwrite) [0x0001b] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.IO.FileSystem/src/System/IO/FileSystem.Unix.cs:25 at System.IO.File.Copy (System.String sourceFileName, System.String destFileName, System.Boolean overwrite) [0x00056] in /Users/builder/jenkins/workspace/build-package-osx-mono/2019-02/external/bockbuild/builds/mono-x64/external/corefx/src/System.IO.FileSystem/src/System/IO/File.cs:74 at Xamarin.MacDev.Tasks.SmartCopyTaskBase.CopyFile (System.String source, System.String target, System.String targetItemSpec) [0x0002d] in :0 at Xamarin.MacDev.Tasks.SmartCopyTaskBase.Execute () [0x000b6] in :0 MyApp.iOS ``` ### 試したこと 資産カタログ内の既存のAssetsカタログにAppIconを作成し、用意したアイコンをサイズ別に設定しました。 クリーン、VSを再起動、PCの再起動を試しましたがどれも同じ結果で、ビルド時にエラーが表示され、うまくいきませんでした。 新規で資産カタログを作成した場合も試しましたが、同じエラーが表示されました。 エラーメッセージ内に表示されているパスをたどりました。 Mac内のbundleフォルダが存在する階層にcloned-assetsフォルダがあり、その最下層までいくと、作成したアイコンがありました。 ### 補足情報(FW/ツールのバージョンなど) 開発環境 Visual Studio 2019 Xamarin.Forms 4.0.0.482894 ビルド用Mac Mac mini macOS Mojave 10.14.5 こちらのエラーに関してどなたかご存知であれば回答よろしくお願いします。
回答: 回答いただいた方々、ありがとうございました。 下記の手順で解決しました。 .csprojにfalseの記載があるかないかの違いでしょうか。 1. Assetsアイコンを設定 2. [MyApp.iOS]プロジェクトを右クリックして、プロパティをクリック 3. [iOS ビルド]-[パッケージ化]-[PNG画像を最適化する]にチェックを入れる 4. 手順3で入れたチェックを外す 5. ビルドを実行 影響があったか不明ですが、今朝Macへペアリングした際、Monoの最新(6.0.0.319)をインストールしています。 追記(2019/08/11) 上記の方法でAppStore用のIPAファイルを作成し、Application Loaderで上げたところ、エラーが返ってきました。 エラー内容は、「AppIcon60x60@2x.pngのファイルが壊れています」という内容でした。 AppStore用IPAファイルを実機にインストールしたところ、インストール完了後もアイコンが薄っすら黒くなったまま、タップしても起動しませんでした。 1度解決済みにしましたが、根本的な解決はできていなかったようです。 何か情報をお持ちの方は回答よろしくお願いします。 追記2(2019/08/16) 結論としては、アイコン用画像のビットの深さをすべて24ビットに変更したところ、前回追記エラーの「AppIcon60x60@2x.pngのファイルが壊れています」は解消しました。 Prismテンプレートにデフォルトで設定されていたアイコンが32ビットで、それに倣ってアイコンを作成していたためにしばらくハマっていました。 また、前回追記で触れていた、アイコンが薄っすら黒くなったまま反応しない件については詳細不明です。 「そもそもDistributionアカウントでAppStore用IPAは直接実機にインストールできないのでは?」という話が私の同僚から出ましたが、正しい情報かは不明です。 AppStore用IPAで実機検証、その直後にアップロードができれば楽ではないか、と考えた私の横着が背景にありました。 こちらは本題から逸れており、また、DeveloperアカウントでDebugビルドをすれば動作確認が可能であり、回避可能のため、これにて終わりとしたいと思います。