Repository navigation
[6.0.0-preview.8] App store 上传失败:ITMS-90208 for WechatOpenSDK.framework #762
Description
Activity
NoPay 接受pr 吗?
必须接受啊
NoPay 接受pr 吗?
进一步调查后可能是腾讯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
所以目前直接这样将微信提供的sdk原封不动的通过spm封装,会出问题,对里面的文件进行一些修改,让xcode不要把它当做独立的framework bundle 倒是可以解决这个问题,但修改了微信内部 sdk,微信将来更新,不利于维护。
我需要进一步斟酌如何workaround 这个问题Reacted by JarvanMo- added a commit that references this issue
on Jun 16, 2026 - pinned this issue
on Jul 16, 2026 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提交失败
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,普通版我没有支付权限,无法测试
有解决的办法吗
有解决的办法吗
可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包
有解决的办法吗
可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包
不太会
有解决的办法吗
可以自己fork一个,然后自己按照WechatOpenSDK-NoPay-SPM给WechatOpenSDK-SPM里的xcframework重新打包
不太会
那没办法了。我不太想重新打包sdk作为公共包,因为会受质疑。如果确实有需求,只能私下解决了。
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
但
输出
就是说:
这可能导致 App Store 校验认为 framework 的 Info.plist 与实际二进制支持的最低 iOS 版本不一致。然后报ITMS-90208
麻烦确认一下 WechatOpenSDK-NoPay.xcframework 里的 Info.plist 是否需要同步调整最低 iOS 版本。