Flutter:iOSビルド時の警告など

投稿者: | 2025年6月3日

Flutter+iOS 警告最小化設定ガイド

前回は最新Android StudioにおけるFlutterのAndroidビルドについてgradle更新の情報をまとめた。今回はiOSビルドについての記事だ。

FlutterでiOSビルドする際、Xcodeが謎の警告を出し、開発者を悩ませる。またFlutterではCocoapodを最適化する必要もある。無座なものを生成しているのである。これらの対策をGitHub ActionsやFastlaneに組み込むスクリプト例も挙げた。

Xcodeに出てくる謎の警告一覧(Flutter/iOS)

警告メッセージ例 意味・対応
Failed to send CA Event for app launch measurements... Appleの起動メトリクス測定用。無視してOK
Could not load the "..." image referenced from a nib in the bundle with identifier... Flutterとは無関係な古いXcode nib関連。Flutterでは発生しても影響なし
Auto Layout still required after executing... iOSネイティブ側でUIが正しく構成されていない。Flutterからは無関係
Building for iOS Simulator, but the linked and embedded framework was built for iOS. ネイティブプラグインが古い形式でビルドされている。ライブラリアップデートで解消することが多い
ld: warning: directory not found for option '-F...' CocoaPodsでFrameworkのパスがずれている。pod install 再実行で解消可能
Runner has conflicting provisioning settings. Appleアカウント設定の問題。ビルドや実行はできるが、App Store提出前に要調整

Flutter+iOSで警告を最小限に抑えるための設定

1. Xcode側のビルド設定

  • Product > Scheme > Edit Scheme... > Diagnostics で以下をOFF:
    • Core Animation
    • Performance Measurement
  • Bitcode は「No」
  • Build Active Architecture Only:
    • Debug: Yes、Release: No

2. ios/Podfile の最適化

platform :ios, '13.0'

install! 'cocoapods',
  :generate_multiple_pod_projects => false,
  :disable_input_output_paths => true

post_install do |installer|
  installer.pods_project.targets.each do |target|
    flutter_additional_ios_build_settings(target)
    target.build_configurations.each do |config|
      config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES'
      config.build_settings['EXCLUDED_ARCHS[sdk=iphonesimulator*]'] = 'arm64'
    end
  end
end

3. Releaseビルド確認

flutter build ios --release

GitHub Actions への組み込み例

.github/workflows/flutter_ios.yml

name: Flutter iOS CI

on:
  push:
    branches: [ main ]

jobs:
  build-ios:
    runs-on: macos-latest

    steps:
    - uses: actions/checkout@v3
    - uses: subosito/flutter-action@v2
      with:
        flutter-version: '3.32.1'

    - name: Install dependencies
      run: flutter pub get

    - name: CocoaPods install
      run: |
        cd ios
        pod install

    - name: Build iOS
      run: flutter build ios --release

Fastlane 用組み込み例

Fastfile

default_platform(:ios)

platform :ios do
  desc "Build for release"
  lane :build_release do
    capture_output = sh("flutter build ios --release")
    puts capture_output
  end
end

その他のチェック事項

  • flutter doctor で診断
  • flutter pub upgrade で依存更新
  • Xcode の Command Line Tools を最新版に指定

以上だ。これで少しは安心してFlutterによるiOS開発が実施できるだろう。

コメントを残す