在 Flutter 中从 Notification Service Extension 更改 CFBundleVersion #66448

Posted

技术标签:

【中文标题】在 Flutter 中从 Notification Service Extension 更改 CFBundleVersion #66448【英文标题】:Change CFBundleVersion from NotificationServiceExtension on flutter #66448 【发布时间】:2021-01-09 18:43:41 【问题描述】:

我已经在我的应用程序中配置了 OneSignal,所以我需要在我的 ios 项目上创建一个通知服务扩展。

问题是,当我在 Apple Store 上发布我的应用时,我收到了这个错误:

ITMS-90473:CFBundleVersion 不匹配 - 扩展“Runner.app/PlugIns/OneSignalNotificationServiceExtension.appex”的 CFBundleVersion 值“15”与其包含的 iOS 应用程序“Runner.app”的 CFBundleVersion 值“147”不匹配。

我正在使用 FastLane 构建项目,这是我的发布脚本:

platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    build_number = number_of_commits(all: true)

    Dir.chdir ".." do
      sh("flutter", "packages", "get")
      sh("flutter", "clean")
      sh("flutter", "pub", "get")
      sh("flutter", "build", "ios", "--obfuscate", "--split-debug-info=logs", "--release", "-t", "lib/main_prod.dart", "--build-number=#build_number")
    end

    build_app(workspace: "Runner.xcworkspace", scheme: "Runner", export_method: 'app-store', silent: true)
    upload_to_testflight(skip_waiting_for_build_processing: true)
  end
end

我的问题是:我应该怎么做才能构建,从我的 ServiceExtension 更改 CFBundleVersion?

谢谢你:)

【问题讨论】:

我遇到了同样的问题。我真的不想在每次发布新版本时手动更改 CFBundleVersion 和 CFBundleShortVersionString。 Flutter 只是为 Runner 目标自动化,应该有一种方法可以为扩展自动化它...... 【参考方案1】:

这是我在完成flutter build ios 之后所做的。 基本上,我保存了当前版本和内部版本号,它们已经由颤振和 pubspec.yaml 递增,然后使用递增脚本强制它在所有目标和 plist 上。

platform :ios do
  desc "Push a new beta build to TestFlight"
  lane :beta do
    build_number = get_build_number(xcodeproj: "Runner.xcodeproj")
    version_number = get_version_number(xcodeproj: "Runner.xcodeproj", target: 'Runner')
    increment_build_number(xcodeproj: "Runner.xcodeproj", build_number: build_number)
    increment_version_number(xcodeproj: "Runner.xcodeproj", version_number: version_number)
    build_app(workspace: "Runner.xcworkspace", scheme: "Runner")
    upload_to_testflight
  end
end

【讨论】:

以上是关于在 Flutter 中从 Notification Service Extension 更改 CFBundleVersion #66448的主要内容,如果未能解决你的问题,请参考以下文章

尝试在我的 Flutter 应用程序中使用 flutter_local_notification 插件构建时出错

Flutter—手机消息推送(notification)

Flutter:我在将flutter_local_notification添加到依赖项后尝试构建一个项目,但失败了

Flutter Local Notification 仅在 Android 上显示点

单击 FCM 通知时,Flutter Notification 挂起的意图被取消

Flutter核心类分析深入理解数据共享Notification