rafaelsetragni / awesome_notifications

A complete solution to create Local Notifications and Push Notifications, throught Firebase or another services, using Flutter.
https://discord.awesome-notifications.carda.me
Apache License 2.0
757 stars 328 forks source link

xcode 14 - signing ios app error #589

Closed rmasarovic closed 1 year ago

rmasarovic commented 1 year ago

1 - after update to xcode 14 signing ios end with error

when we update xcode to xcode 14 and now is not possible sign ios application. Debug build work. flutter sdk 3.3.3

2

when i remove lib awesome_notification the signing is successfull. i have now these libs flutter_local_notifications: 12.0.1+1 firebase_messaging: 13.0.4 awesome_notifications: 0.7.2

the building errorer is like .... nothing only warnings and end with this

Swift Compiler Error (Xcode): Using bridging headers with module interfaces is unsupported Uncategorized (Xcode): Command SwiftDriver emitted errors but did not return a nonzero exit code to indicate failure Encountered error while archiving for device.

Any ideas?

rafaelsetragni commented 1 year ago

First, you cannot use awesome_notifications, flutter_local_notifications and firebase_messaging at same time. They are incompatible. You need to use awesome_notifications and awesome_notifications_fcm instead. You already have all local notifications and push notifications features with awesome plugins, and even more. To know more about it, please visit:

Awesome Notifications - ATTENTION - FIREBASE CLOUD MESSAGE (FCM) https://pub.dev/packages/awesome_notifications#-attention---firebase-cloud-message-fcm-

Awesome Notifications FCM - ⚠️ ATTENTION ⚠️Users from firebase_messaging plugin https://pub.dev/packages/awesome_notifications_fcm#-attention--br-users-from-firebase_messaging-plugin

You also need to follow the Getting Started topic to configure correctly your project. All these header warnings are caused by build settings misconfigured. https://pub.dev/packages/awesome_notifications_fcm#-getting-started

About your app signature, maybe your app signature is expired or some misconfiguration with your build settings can be invalidating your signature. For debug mode it uses a default signature.

rokk4 commented 1 year ago

It is not in the signing step, I think.

Everything builds fine with ^0.6.21

With ^0.7.2 flutter build ipa --release throws

Swift Compiler Error (Xcode): Using bridging headers with module interfaces is unsupported

Uncategorized (Xcode): Command SwiftDriver emitted errors but did not return a nonzero exit code to indicate failure

I also noticed that a manual pod install --repo-update shows

[!] The `Runner [Debug]` target overrides the `ENABLE_BITCODE` build setting defined in `Pods/Target Support Files/Pods-Runner/Pods-Runner.debug.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `Runner [Release]` target overrides the `ENABLE_BITCODE` build setting defined in `Pods/Target Support Files/Pods-Runner/Pods-Runner.release.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

[!] The `Runner [Profile]` target overrides the `ENABLE_BITCODE` build setting defined in `Pods/Target Support Files/Pods-Runner/Pods-Runner.profile.xcconfig'. This can lead to problems with the CocoaPods installation
    - Use the `$(inherited)` flag, or
    - Remove the build settings from the target.

which is not the case for ^0.6.21.

For ^0.6.21 I can't find anything for BUILD_LIBRARY_FOR_DISTRIBUTION in ios/pods

with ^0.7.2 I find the following ambiguous looking stuff:

Targets
    Occurrences of 'BUILD_LIBRARY_FOR_DISTRIBUTION' in Directory /ios/Pods
Found Occurrences in Directory ios/Pods  (8 usages found)
    Unclassified  (7 usages found)
        ios/Pods/Target Support Files/awesome_notifications  (2 usages found)
            awesome_notifications.debug.xcconfig  (1 usage found)
                1 BUILD_LIBRARY_FOR_DISTRIBUTION = NO
            awesome_notifications.release.xcconfig  (1 usage found)
                1 BUILD_LIBRARY_FOR_DISTRIBUTION = NO
        ios/Pods/Target Support Files/IosAwnCore  (2 usages found)
            IosAwnCore.debug.xcconfig  (1 usage found)
                2 BUILD_LIBRARY_FOR_DISTRIBUTION = YES
            IosAwnCore.release.xcconfig  (1 usage found)
                2 BUILD_LIBRARY_FOR_DISTRIBUTION = YES
        ios/Pods/Target Support Files/Pods-Runner  (3 usages found)
            Pods-Runner.debug.xcconfig  (1 usage found)
                3 BUILD_LIBRARY_FOR_DISTRIBUTION = YES
            Pods-Runner.profile.xcconfig  (1 usage found)
                3 BUILD_LIBRARY_FOR_DISTRIBUTION = YES
            Pods-Runner.release.xcconfig  (1 usage found)
                3 BUILD_LIBRARY_FOR_DISTRIBUTION = YES
    Usage in string constants  (1 usage found)
        ios/Pods/Local Podspecs  (1 usage found)
            awesome_notifications.podspec.json  (1 usage found)
                32 "BUILD_LIBRARY_FOR_DISTRIBUTION": "NO",

BUILD_LIBRARY_FOR_DISTRIBUTION seems to be connected to the same Build Error in other cases, look at https://stackoverflow.com/questions/60629662/using-bridging-headers-with-module-interfaces-is-unsupported-command-compileswif

flutter doctor -v
[✓] Flutter (Channel stable, 3.3.3, on macOS 12.6 21G115 darwin-arm, locale en-DE)
    • Flutter version 3.3.3 on channel stable at /Users/r0/flutter
    • Upstream repository https://github.com/flutter/flutter.git
    • Framework revision 18a827f393 (2 weeks ago), 2022-09-28 10:03:14 -0700
    • Engine revision 5c984c26eb
    • Dart version 2.18.2
    • DevTools version 2.15.0

[✓] Android toolchain - develop for Android devices (Android SDK version 31.0.0)
    • Android SDK at /Users/r0/Library/Android/sdk
    • Platform android-33, build-tools 31.0.0
    • ANDROID_HOME = /Users/r0/Library/Android/sdk
    • ANDROID_SDK_ROOT = /Users/r0/Library/Android/sdk
    • Java binary at: /Applications/Android Studio.app/Contents/jre/Contents/Home/bin/java
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)
    • All Android licenses accepted.

[✓] Xcode - develop for iOS and macOS (Xcode 14.0.1)
    • Xcode at /Applications/Xcode.app/Contents/Developer
    • Build 14A400
    • CocoaPods version 1.11.3

[✓] Chrome - develop for the web
    • Chrome at /Applications/Google Chrome.app/Contents/MacOS/Google Chrome

[✓] Android Studio (version 2021.3)
    • Android Studio at /Applications/Android Studio.app/Contents
    • Flutter plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/9212-flutter
    • Dart plugin can be installed from:
      🔨 https://plugins.jetbrains.com/plugin/6351-dart
    • Java version OpenJDK Runtime Environment (build 11.0.13+0-b1751.21-8125866)

[✓] VS Code (version 1.71.2)
    • VS Code at /Applications/Visual Studio Code.app/Contents
    • Flutter extension version 3.48.0

[✓] Connected device (2 available)
    • macOS (desktop) • macos  • darwin-arm64   • macOS 12.6 21G115 darwin-arm
    • Chrome (web)    • chrome • web-javascript • Google Chrome 106.0.5249.103

[✓] HTTP Host Availability
    • All required HTTP hosts are available

• No issues found!
rmasarovic commented 1 year ago

i remove everything now i have only

import 'package:flutter/material.dart';

void main() {
  runApp(MyApp());
}

class MyApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp();
  }
}
dependencies:
  flutter:
    sdk: flutter
  awesome_notifications: 0.7.2

when i run => flutter build ipa -t lib/main.dart --release i have this error Swift Compiler Error (Xcode): Using bridging headers with module interfaces is unsupported Uncategorized (Xcode): Command SwiftDriver emitted errors but did not return a nonzero exit code to indicate failure

when i remove awesome_notifications: 0.7.2 command work

rafaelsetragni commented 1 year ago

this error is triggered exactly when you don't set "Build libraries for distribution" to false. Check this link to know more about it:

https://pub.dev/packages/awesome_notifications_fcm#-ios-configuration OBS: the build settings configuration is located on step 6

rmasarovic commented 1 year ago

thank you now building work

alexkeramidas commented 1 year ago

I am very sorry for commenting on a closed issue but the same error occurs even if we don't need want to use FCM at all.

Build libraries for distribution is set to false / no and the only dependency is

awesome_notifications: 0.7.2

because we just care for local notifications.

Unsigned builds work

xcodebuild builds fail with the bridging headers issue

rafaelsetragni commented 1 year ago

You need to set distribution to false in all target extensions. If you got this headers error, is because your app was built with this build option set to true.

Try to clean your project (directly on XCode or using flutter clean) to remove any cache from your building process.

alexkeramidas commented 1 year ago

Hm There is no cache. (neither on flutter nor on pods since its building on a docker [but I can also reproduce the issue locally]) All ~my~ our targets and target extensions have build libraries for distribution set to ~false~ No

Just as a note since we don't use FCM we do not use the FCM plugin because we don't need it, we just show local notifications.

This plugin's documentation does not mention any other requirements for iOS apart from.

Is required the minimum iOS version to 11. You can change the minimum app version through xCode, in your Project view, click on Runner > Info > Deployment Target and change the option "ios minimum deployment target" to 11.0

and background actions specific instructions.

Are you sure that the requirements mentioned in the fcm plugin are not required here also?