Xamarin.iOS - 发布应用程序 - 无效的 Swift 支持 - 文件......不匹配

Posted

技术标签:

【中文标题】Xamarin.iOS - 发布应用程序 - 无效的 Swift 支持 - 文件......不匹配【英文标题】:Xamarin.iOS - Publishing App - Invalid Swift Support - The files ... don’t match 【发布时间】:2018-08-17 10:42:20 【问题描述】:

我正在发布我的 ios 应用以供审核,但返回错误:

无效的 Swift 支持 - 文件 libswiftDarwin.dylib, libswiftsimd.dylib、libswiftFoundation.dylib、libswiftDispatch.dylib、 libswiftObjectiveC.dylib、libswiftCoreAudio.dylib、 libswiftCoreLocation.dylib、libswiftCoreFoundation.dylib、 libswiftCoreGraphics.dylib、libswiftCoreData.dylib、 libswiftUIKit.dylib、libswiftQuartzCore.dylib、 libswiftCoreMedia.dylib, libswiftCoreImage.dylib, libswiftAVFoundation.dylib、libswiftCore.dylib、libswiftos.dylib、 libswiftMapKit.dylib、libswiftMetal.dylib 不匹配 /Payload/Project.IOS.app/Frameworks/libswiftDarwin.dylib, /Payload/Project.IOS.app/Frameworks/libswiftsimd.dylib, /Payload/Project.IOS.app/Frameworks/libswiftFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftDispatch.dylib, /Payload/Project.IOS.app/Frameworks/libswiftObjectiveC.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreAudio.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreLocation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreGraphics.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreData.dylib, /Payload/Project.IOS.app/Frameworks/libswiftUIKit.dylib, /Payload/Project.IOS.app/Frameworks/libswiftQuartzCore.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreMedia.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreImage.dylib, /Payload/Project.IOS.app/Frameworks/libswiftAVFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCore.dylib, /Payload/Project.IOS.app/Frameworks/libswiftos.dylib, /Payload/Project.IOS.app/Frameworks/libswiftMapKit.dylib, /Payload/Project.IOS.app/Frameworks/libswiftMetal.dylib。确保 文件正确,重建您的应用程序,然后重新提交。不要申请 后处理到 /Payload/Project.IOS.app/Frameworks/libswiftDarwin.dylib, /Payload/Project.IOS.app/Frameworks/libswiftsimd.dylib, /Payload/Project.IOS.app/Frameworks/libswiftFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftDispatch.dylib, /Payload/Project.IOS.app/Frameworks/libswiftObjectiveC.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreAudio.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreLocation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreGraphics.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreData.dylib, /Payload/Project.IOS.app/Frameworks/libswiftUIKit.dylib, /Payload/Project.IOS.app/Frameworks/libswiftQuartzCore.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreMedia.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCoreImage.dylib, /Payload/Project.IOS.app/Frameworks/libswiftAVFoundation.dylib, /Payload/Project.IOS.app/Frameworks/libswiftCore.dylib, /Payload/Project.IOS.app/Frameworks/libswiftos.dylib, /Payload/Project.IOS.app/Frameworks/libswiftMapKit.dylib, /Payload/Project.IOS.app/Frameworks/libswiftMetal.dylib.

发布步骤:

    构建存档

    使用需要配置文件构建 ipa

    解压my.IPA

    使用脚本 (https://github.com/bq/ipa-packager)

    新的 .ipa 从 Application Loader 上传到 App Connect

有人对如何做到这一点有任何想法吗? 感谢您的帮助!

【问题讨论】:

【参考方案1】:

如果 ipa-packager 脚本在它创建的“SwiftSupport”文件夹中包含错误版本的 Swift 文件,就会发生这种情况。这将导致 .ipa 中的 Swift 版本(由 VS 构建)与 SwiftSupport 文件夹中的 .dylib 文件(由脚本添加)不匹配。

解决方案是安装与您的目标 Swift 版本捆绑在一起的 XCode 版本,然后在运行 ipa-packager 脚本之前使用如下命令切换命令行工具使用的 XCode ,以便将正确版本的 .dylib 文件放在 SwiftSupport 文件夹中:

sudo xcode-select -switch /Applications/Xcode5.1.1/Xcode.app

【讨论】:

以上是关于Xamarin.iOS - 发布应用程序 - 无效的 Swift 支持 - 文件......不匹配的主要内容,如果未能解决你的问题,请参考以下文章

Xamarin.iOS - 错误 ITMS-90502:捆绑包无效

Xamarin.iOS - 错误ITMS-90502:无效的捆绑包

“无效的 Swift 支持”在 Xamarin.iOS 中使用本机 Swift 库

将应用程序发布到 AppStore Xamarin.iOS 构建时出错

在应用程序加载器中发布 Xamarin.iOS IPA 时出错

可执行文件已使用无效权利进行签名。错误