I am working on Image notification in Flutter iOS. When I try to integrate notification service extension to handle Image notification keeps giving me below error.
Xcode version: 13.3 Flutter version: 3.0.4 Cocoapods: 1.11.3
PrecompileSwiftBridgingHeader normal arm64 (in target 'NotificationService' from project 'Runner')
cd /Users/apple/Repositories/mobile-app/ios
/Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift-frontend @/var/folders/vy/8gyyr2l514v3zdfnqs5dwj1r0000gn/T/TemporaryDirectory.oAByE5/arguments-6574441530510196663.resp
/Users/apple/Repositories/mobile-app/ios/Runner/Runner-Bridging-Header.h:1:9: note: in file included from /Users/apple/Repositories/mobile-app/ios/Runner/Runner-Bridging-Header.h:1:
#import "GeneratedPluginRegistrant.h"
^
/Users/apple/Repositories/mobile-app/ios/Runner/GeneratedPluginRegistrant.h:10:9: error: 'Flutter/Flutter.h' file not found
#import <Flutter/Flutter.h>
^
1 error generated.
<unknown>:0: error: failed to emit precompiled header '/Users/apple/Library/Developer/Xcode/DerivedData/Runner-gvtblqnxzjyzrjegzjulbjazofmn/Build/Intermediates.noindex/PrecompiledHeaders/Runner-Bridging-Header-swift_CODZTVOZLQBY-clang_3ARRQSDQSEFTX.pch' for bridging header '/Users/apple/Repositories/mobile-app/ios/Runner/Runner-Bridging-Header.h'
Here is my PodFile
# Uncomment this line to define a global platform for your project
platform :ios, '12.0'
# $FirebaseSDKVersion = '7.10.0'
# CocoaPods analytics sends network stats synchronously affecting flutter build latency.
ENV['COCOAPODS_DISABLE_STATS'] = 'true'
project 'Runner', {
'Debug' => :debug,
'Profile' => :release,
'Release' => :release,
'Debug-dev' => :debug,
'Profile-dev' => :release,
'Release-dev' => :release,
'Debug-prod' => :debug,
'Profile-prod' => :release,
'Release-prod' => :release,
'Debug-stage' => :debug,
'Profile-stage' => :release,
'Release-stage' => :release,
'Debug-qa' => :debug,
'Profile-qa' => :release,
'Release-qa' => :release,
}
def flutter_root
generated_xcode_build_settings_path = File.expand_path(File.join('..', 'Flutter', 'Generated.xcconfig'), __FILE__)
unless File.exist?(generated_xcode_build_settings_path)
raise "#{generated_xcode_build_settings_path} must exist. If you're running pod install manually, make sure flutter pub get is executed first"
end
File.foreach(generated_xcode_build_settings_path) do |line|
matches = line.match(/FLUTTER_ROOT\=(.*)/)
return matches[1].strip if matches
end
raise "FLUTTER_ROOT not found in #{generated_xcode_build_settings_path}. Try deleting Generated.xcconfig, then run flutter pub get"
end
require File.expand_path(File.join('packages', 'flutter_tools', 'bin', 'podhelper'), flutter_root)
flutter_ios_podfile_setup
target 'Runner' do
#pod 'FirebaseFirestore', :git => 'https://github.com/invertase/firestore-ios-sdk-frameworks.git', :tag => '8.6.0'
use_frameworks! :linkage => :static
pod 'WebEngage'
flutter_install_all_ios_pods File.dirname(File.realpath(__FILE__))
end
# ServiceExtension Target
target 'NotificationService' do
use_frameworks! :linkage => :static
platform :ios, '12.0'
pod 'WebEngage'
pod 'Firebase/Messaging'
pod 'WebEngageBannerPush'
end
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['IPHONEOS_DEPLOYMENT_TARGET'] = '12.0'
config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= [
'$(inherited)',
# dart: PermissionGroup.calendar
'PERMISSION_EVENTS=0',
# dart: PermissionGroup.reminders
'PERMISSION_REMINDERS=0',
# dart: PermissionGroup.contacts
'PERMISSION_CONTACTS=0',
# dart: PermissionGroup.camera
'PERMISSION_CAMERA=1',
# dart: PermissionGroup.microphone
'PERMISSION_MICROPHONE=0',
# dart: PermissionGroup.speech
'PERMISSION_SPEECH_RECOGNIZER=0',
# dart: PermissionGroup.photos
'PERMISSION_PHOTOS=1',
# dart: [PermissionGroup.location, PermissionGroup.locationAlways, PermissionGroup.locationWhenInUse]
'PERMISSION_LOCATION=0',
# # dart: PermissionGroup.notification
# 'PERMISSION_NOTIFICATIONS=0',
# dart: PermissionGroup.mediaLibrary
'PERMISSION_MEDIA_LIBRARY=0',
# dart: PermissionGroup.sensors
'PERMISSION_SENSORS=0',
# dart: PermissionGroup.bluetooth
'PERMISSION_BLUETOOTH=0'
]
end
end
installer.pods_project.build_configurations.each do |config|
config.build_settings["EXCLUDED_ARCHS[sdk=iphonesimulator*]"] = "arm64"
end
end
Already tried methods with no luck.
- Flutter clean
- Delete Podfile.lock, Pods, Flutter.podspec
- Delete Derived Data Xcode
- Flutter pub cache repair
- Remove .cocoapods directory
- Clean build folder