🫠

【Flutter】iOSでビルドした時のエラー

2024/01/16に公開2

こんにちは。taporonと言います。
Flutterを初めてまだ1週間ほどの初心者です。
もっと良い解決法があれば教えてください(ぺこり)

[ERROR:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm(42)]

今回は、iOSでビルドした時に出る
[ERROR:flutter/shell/platform/darwin/graphics/FlutterDarwinContextMetalImpeller.mm(42)]
の解決策をメモ代わりに投稿します。

参考にしたサイト

発生理由は、flutterは基本的にImpellerをtrueで実行するからだそうです。

https://kage2kblog.co.kr/flutter/flutter-error-flutter-shell-platform-darwin-graphics-flutterdarwincontextmetalimpeller-mm42-using-the-impeller-rendering-backend/#google_vignette

Impellerとは何か?

へ〜・・・(?)
https://zenn.dev/flutteruniv_dev/articles/4f716ad7838306
https://docs.flutter.dev/perf/impeller

解決方法

iosフォルダの中にある、"info.plist"の中に

<key>FLTEnableImpeller</key>
<false />

を追記することで解決しました。

<?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>FLTEnableImpeller</key><false /> //dictの中に、この1行を追記
	
	<key>CFBundleDevelopmentRegion</key>
	<string>$(DEVELOPMENT_LANGUAGE)</string>
	<key>CFBundleDisplayName</key>
	<string>Test02</string>
	<key>CFBundleExecutable</key>
	<string>$(EXECUTABLE_NAME)</string>
	<key>CFBundleIdentifier</key>
	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
	<key>CFBundleInfoDictionaryVersion</key>
	<string>6.0</string>
	<key>CFBundleName</key>
	<string>test02</string>
	<key>CFBundlePackageType</key>
	<string>APPL</string>
	<key>CFBundleShortVersionString</key>
	<string>$(FLUTTER_BUILD_NAME)</string>
	<key>CFBundleSignature</key>
	<string>????</string>
	<key>CFBundleVersion</key>
	<string>$(FLUTTER_BUILD_NUMBER)</string>
	<key>LSRequiresIPhoneOS</key>
	<true/>
	<key>UILaunchStoryboardName</key>
	<string>LaunchScreen</string>
	<key>UIMainStoryboardFile</key>
	<string>Main</string>
	<key>UISupportedInterfaceOrientations</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>UISupportedInterfaceOrientations~ipad</key>
	<array>
		<string>UIInterfaceOrientationPortrait</string>
		<string>UIInterfaceOrientationPortraitUpsideDown</string>
		<string>UIInterfaceOrientationLandscapeLeft</string>
		<string>UIInterfaceOrientationLandscapeRight</string>
	</array>
	<key>CADisableMinimumFrameDurationOnPhone</key>
	<true/>
	<key>UIApplicationSupportsIndirectInputEvents</key>
	<true/>
</dict>
</plist>

作りたいアプリのために今日も頑張るゾ

Discussion

ioriiori

Impeller は現在デフォルトで有効になっていてコンソールでエラー表示されるのがおかしな状態なので無視でいいと思います。