-
Notifications
You must be signed in to change notification settings - Fork 310
ios: Add workaround for package:firebase_messaging when building with Xcode 16 #958
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
Neat, I like that option. @rajveermalviya would you try that and confirm that it works for you? It looks like those files also accept comments, with |
8aab93a
to
7607989
Compare
Thanks for the reviews @chrisbobbe and @gnprice! Yes, adding the flag to |
ios/Flutter/Zulip.xcconfig
Outdated
// This flag is added to workaround the iOS build failing | ||
// on Xcode 16, remove it when `package:firebase_messaging` | ||
// is patched with a fix to build successfully on Xcode 16. | ||
// |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: extra empty line
I don't have an Xcode installation at the moment to test this. But the change looks clean to me. |
b996f21
to
2394754
Compare
Thanks for the review @PIG208, pushed a new revision. Additionally, added references for |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Thanks! I like this structure. Small comment tweaks below.
Then this is otherwise ready for merge, so please update the commit message to a final/mergeable version.
// Configuration settings file format documentation can be found at: | ||
// https://help.apple.com/xcode/#/dev745c5c974 |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
Helpful, thanks for including this link.
// Configuration settings file format documentation can be found at: | ||
// https://help.apple.com/xcode/#/dev745c5c974 | ||
|
||
// TODO(firebase/flutterfire#13323): remove this flag |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I guess we've talked about having a tool to scan for TODO comments that point to closed issues, and when we do it could potentially understand this syntax for external issues. So it's fine to include it.
But let's also include an actual link. That will make it nice and easy for someone who happens across this a month from now or a year from now to quickly check on the state of the upstream issue, even if we haven't built that potential tool by then.
ios/Flutter/Zulip.xcconfig
Outdated
|
||
// TODO(firebase/flutterfire#13323): remove this flag | ||
// | ||
// This flag is added to workaround the iOS build failing |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
nit: the verb is "work around", and "workaround" is its noun form:
// This flag is added to workaround the iOS build failing | |
// This flag is added to work around the iOS build failing |
Just like other verb phrases made of a verb plus preposition, where they're run together to make a noun:
"to log in" / "this login"
"to set up" / "this setup"
"to clean up" / "this cleanup"
(In each case the two versions are pronounced differently, too — the stress moves from the end in the verb form to the beginning in the noun form. That probably contributes to making the difference salient for me.)
ios/Flutter/Zulip.xcconfig
Outdated
// This flag is added to workaround the iOS build failing | ||
// on Xcode 16, remove it when `package:firebase_messaging` | ||
// is patched with a fix to build successfully on Xcode 16. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
// This flag is added to workaround the iOS build failing | |
// on Xcode 16, remove it when `package:firebase_messaging` | |
// is patched with a fix to build successfully on Xcode 16. | |
// This flag is added to work around the iOS build failing | |
// on Xcode 16. Remove it when `package:firebase_messaging` | |
// is patched with a fix to build successfully on Xcode 16: | |
// https://github.com/firebase/flutterfire/issues/13323 |
2394754
to
7888db0
Compare
Thanks for the review @gnprice! Pushed a new revision, PTAL. |
… Xcode 16 Without this workaround iOS build currently fails with the following error: Lexical or Preprocessor Issue (Xcode): Include of non-modular header inside framework module 'firebase_messaging FLTFirebaseMessagingPlugin': '/Users/rajveer/Projects/zulip-flutter/ios/Pods/Headers/Public/Firebase/Firebase.h' /Users/rajveer/.pub-cache/hosted/pub.dev/firebase_messaging-15.0.4/ios/Classes/FLTFirebaseMessagingPlugin.h:11:8 Upstream issue and the workaround comment: firebase/flutterfire#13323 firebase/flutterfire#13323 (comment) Docs: https://developer.apple.com/documentation/xcode/build-settings-reference#Allow-Non-modular-Includes-In-Framework-Modules The documentation states that enabling this setting may result in issues later on, which is why this workaround should only be temporary until firebase_messaging is patched with the correct fix.
7888db0
to
a9b2016
Compare
Thanks! Looks good — merging. |
This reverts part of commit a9b2016 (zulip#958), keeping the `Zulip.xcconfig` file and its references. The fix was released in version `3.6.0` of `package:firebase_core` and version `15.1.3` of `package:firebase_messaging`: firebase/flutterfire@d7d2d4b We have since then updated Firebase dependencies 3 times: zulip@24215f6 zulip@1abb0a0 zulip@3ba9985
Without this workaround iOS build currently fails with the following error:
Upstream issue and the workaround comment:
firebase/flutterfire#13323
firebase/flutterfire#13323 (comment)
Docs: https://developer.apple.com/documentation/xcode/build-settings-reference#Allow-Non-modular-Includes-In-Framework-Modules
The documentation states that enabling this setting may result in issues later on, which is why this workaround should only be temporary until firebase_messaging is patched with the correct fix.