Skip to content

[6.0.0-preview.8] App store 上传失败:ITMS-90208 for WechatOpenSDK.framework #762

Description

@cddqssc

App Store 上传时报错:

ITMS-90208: Invalid Bundle - The bundle Runner.app/Frameworks/WechatOpenSDK.framework does not support the minimum OS Version specified in the Info.plist.

检查后发现 WechatOpenSDK.framework 内部的最低系统版本信息不一致。Info.plist里面写的MinimumOSVersion 12.0

但

otool -l build/ios/archive/Runner.xcarchive/Products/Applications/Runner.app/Frameworks/WechatOpenSDK.framework/WechatOpenSDK | grep -A8 -B2 'LC_BUILD_VERSION\|platform\|minos\|sdk

输出

Load command 8
      cmd LC_BUILD_VERSION
 platform 2
    minos 15.0
      sdk 26.2

就是说:

WechatOpenSDK.framework/Info.plist     MinimumOSVersion = 12.0
WechatOpenSDK.framework/WechatOpenSDK  LC_BUILD_VERSION minos = 15.0

这可能导致 App Store 校验认为 framework 的 Info.plist 与实际二进制支持的最低 iOS 版本不一致。然后报ITMS-90208

麻烦确认一下 WechatOpenSDK-NoPay.xcframework 里的 Info.plist 是否需要同步调整最低 iOS 版本。

Activity

  1. JarvanMo commented on Jun 8, 2026

    @JarvanMo
    Member

    我看不出来哪块有问题。WeChat的相关库在:NoPay和Normal

  2. cddqssc commented on Jun 8, 2026

    @cddqssc
    Author

    我看不出来哪块有问题。WeChat的相关库在:NoPay和Normal

    老哥,你用6.0.0-preview.8这个版本上传到App Store,有报ITMS-90208这个错误吗?

  3. JarvanMo commented on Jun 8, 2026

    @JarvanMo
    Member

    我看不出来哪块有问题。WeChat的相关库在:NoPay和Normal

    老哥,你用6.0.0-preview.8这个版本上传到App Store,有报ITMS-90208这个错误吗?

    现在的项目用不到微信sdk

  4. cddqssc commented on Jun 8, 2026

    @cddqssc
    Author

    NoPay 接受pr 吗?

  5. JarvanMo commented on Jun 8, 2026

    @JarvanMo
    Member

    必须接受啊

    NoPay 接受pr 吗?

  6. cddqssc commented on Jun 8, 2026

    @cddqssc
    Author

    进一步调查后可能是腾讯sdk 的问题,证据如下:
    NoPay 用spm封装了腾讯官方的WechatOpenSDK-NoPay.xcframework(来源: https://developers.weixin.qq.com/doc/oplatform/Mobile_App/Downloads/iOS_Resource.html )
    官方包里面的文件长这样:

    WechatOpenSDK.xcframework
    └── ios-arm64
        └── WechatOpenSDK.framework
            ├── WechatOpenSDK
            ├── Headers
            └── Info.plist
    

    看起来是一个 framework,但里面的 WechatOpenSDK 实际不是正常的动态库,而是静态库 archive:

    file WechatOpenSDK.framework/WechatOpenSDK
    => current ar archive
    

    也就是:静态库套了一个 .framework 外壳,这个 .framework 外壳在archive时会被当成 framework 放进 app

    Runner.app/Frameworks/WechatOpenSDK.framework
    

    一旦它进了 Runner.app/Frameworks,App Store 就会把它当成一个独立 framework bundle 检查。
    Xcode 在 archive 过程中按主工程的 deployment target(例如我的项目的最低ios的版本是15) 处理最终 Mach-O,所以嵌入后的:

    WechatOpenSDK.framework/WechatOpenSDK
    LC_BUILD_VERSION minos = 15.0
    

    但微信 SDK 自己的 Info.plist 仍然写着:

    WechatOpenSDK.framework/Info.plist
    MinimumOSVersion = 12.0
    

    于是 App Store 看到的是:

    这个 framework 的 Info.plist 声明最低 iOS 12.0
    但它里面的 Mach-O 实际最低 iOS 15.0
    

    这就触发了:

    ITMS-90208: Invalid Bundle
    The bundle Runner.app/Frameworks/WechatOpenSDK.framework does not support the minimum OS Version specified in the Info.plist.
    

    简单说:

    微信 SDK 本体是静态库,却被包装成 framework。
    构建时它又被嵌入到 Runner.app/Frameworks。
    嵌入后 App Store 会单独检查它。
    最终 Mach-O 的 minos 跟随主工程变成 15.0,
    但微信 framework 自带 Info.plist 仍然写 12.0,
    两者不一致,所以上传失败。
    

    总结:
    只要主工程最低 iOS 版本和微信官方 framework Info.plist 里的 MinimumOSVersion 不一致,就会触发这个问题。

    网上也有不少人遇到这个问题,并向微信提出 issue

    Image Image Image

    所以目前直接这样将微信提供的sdk原封不动的通过spm封装,会出问题,对里面的文件进行一些修改,让xcode不要把它当做独立的framework bundle 倒是可以解决这个问题,但修改了微信内部 sdk,微信将来更新,不利于维护。
    我需要进一步斟酌如何workaround 这个问题

  7. added a commit that references this issue on Jun 16, 2026
    44f8214
  8. pinned this issue on Jul 16, 2026
  9. mienv567 commented on Jul 16, 2026

    @mienv567

    90208: Invalid Bundle. The bundle Runner.app/Frameworks/WechatOpenSDK.framework does not support the minimum OS Version specified in the Info.plist. 6.0 正式版本 pub.dev 下载的,通过 xcode提交失败

  10. cddqssc commented on Jul 16, 2026

    @cddqssc
    Author

    90208: Invalid Bundle. The bundle Runner.app/Frameworks/WechatOpenSDK.framework does not support the minimum OS Version specified in the Info.plist. 6.0 正式版本 pub.dev 下载的,通过 xcode提交失败

    我只解决了nopay 版本的sdk,普通版我没有支付权限,无法测试

  11. bigtotorouk commented on Aug 13, 2026

    @bigtotorouk

    有解决的办法吗

  12. JarvanMo commented on Aug 13, 2026

    @JarvanMo
    Member

    有解决的办法吗

    可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包

  13. bigtotorouk commented on Aug 14, 2026

    @bigtotorouk

    有解决的办法吗

    可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包

    不太会

  14. JarvanMo commented on Aug 14, 2026

    @JarvanMo
    Member

    有解决的办法吗

    可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包

    不太会

    那没办法了。我不太想重新打包sdk作为公共包,因为会受质疑。如果确实有需求,只能私下解决了。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions