Flutter/iOS:如何在我的NotificationServiceExtension Info.plist文件中使用pubspec.yaml的App版本?

问题描述 投票:0回答:2

可以在常规 iOS Info.plist 文件中使用 pubspec.yaml 中的 Flutter App 版本,只需将条目更改为

<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>

<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>

但是,我创建了一个通知服务扩展来启用 FCM 富文本推送通知,该通知工作正常。但是,当我将此扩展的 Info.plist 值更改为与上面相同的值时,应用程序失败并出现以下构建错误:

Unable to install /Users/pa/development/FlutterApps/myApp/build/ios/iphonesimulator/Runner.app on <ID>. This is sometimes caused by a malformed plist file:
ProcessException: Process exited abnormally:
An error was encountered processing the command (domain=IXErrorDomain, code=2):
Failed to create plugin placeholder for /Users/pa/development/FlutterApps/myApp/build/ios/iphonesimulator/Runner.app/PlugIns/NotificationService.appex
Failed to create promise.
Underlying error (domain=IXErrorDomain, code=2):
    Failed to set placeholder attributes com.mycompany.appid.NotificationService
    Failed to create promise.
  Command: xcrun simctl install <ID> /Users/pa/development/FlutterApps/myApp/build/ios/iphonesimulator/Runner.app
Error launching application on iPhone 11 Pro.

如何在 Extensions Info.plist 文件中使用相同的变量?我认为这只是一些配置,但我无法弄清楚。

谢谢!!

ios flutter info.plist unnotificationserviceextension
2个回答
4
投票

Flutter 生成一个

xcconfig
文件,其中包含
FLUTTER_BUILD_NAME
FLUTTER_BUILD_NUMBER

等变量

要在扩展中使用这些变量,我们需要执行以下操作:

  1. 转到您的扩展程序
    Info.plist
    并添加这些变量。 Like this

捆绑版本字符串 -- $(FLUTTER_BUILD_NAME)

捆绑版本 -- $(FLUTTER_BUILD_NUMBER)

  1. 转到您的项目设置,然后为每个配置的扩展选择一个
    Generated
    配置文件。 Like this

0
投票

在 Info.plist 中更新

<key>CFBundleShortVersionString</key>
<string>$(FLUTTER_BUILD_NAME)</string>
<key>CFBundleVersion</key>
<string>$(FLUTTER_BUILD_NUMBER)</string>
© www.soinside.com 2019 - 2024. All rights reserved.