Xamarin.iOS - 发布应用程序 - 无效的 Swift 支持

5
我一直在努力发布我的iOS应用程序进行审查,但出现了以下错误:
无效的Swift支持 - 缺少SwiftSupport文件夹。使用当前公共(GM)版本的Xcode重新构建您的应用程序并重新提交它。
我正在使用Xamarin.iOS开发此应用程序,如果我使用Visual Studio签名和导出IPA或者使用Xcode发布,就会收到上述错误。
工具版本:
- Xcode 9.0.1 - Visual Studio Enterprise 2017 for Mac 7.2 - Xamarin.iOS 11.2.0.11
我尝试了以下建议:
1. IPA Packager(也是自动打包程序) 2. 使用此指南手动打包
第二个建议没有给出不同的响应。 使用IPA打包器从iTunes Store得到了以下响应:
无效的 Swift 支持 - 文件 libswiftAVFoundation.dylib、libswiftDarwin.dylib、libswiftQuartzCore.dylib、libswiftFoundation.dylib、libswiftCoreAudio.dylib、libswiftCoreGraphics.dylib、libswiftCoreLocation.dylib、libswiftCore.dylib、libswiftCoreImage.dylib、libswiftDispatch.dylib、libswiftPhotos.dylib、libswiftObjectiveC.dylib、libswiftCoreMedia.dylib、libswiftUIKit.dylib 与 /Payload/App.iOS.app/Frameworks/libswiftAVFoundation.dylib、/Payload/App.iOS.app/Frameworks/libswiftDarwin.dylib、/Payload/App.iOS.app/Frameworks/libswiftQuartzCore.dylib、/Payload/App.iOS.app/Frameworks/libswiftFoundation.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreAudio.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreGraphics.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreLocation.dylib、/Payload/App.iOS.app/Frameworks/libswiftCore.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreImage.dylib、/Payload/App.iOS.app/Frameworks/libswiftDispatch.dylib、/Payload/App.iOS.app/Frameworks/libswiftPhotos.dylib、/Payload/App.iOS.app/Frameworks/libswiftObjectiveC.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreMedia.dylib、/Payload/App.iOS.app/Frameworks/libswiftUIKit.dylib 不匹配。确保文件正确,重新构建您的应用程序并重新提交它。不要对 /Payload/App.iOS.app/Frameworks/libswiftAVFoundation.dylib、/Payload/App.iOS.app/Frameworks/libswiftDarwin.dylib、/Payload/App.iOS.app/Frameworks/libswiftQuartzCore.dylib、/Payload/App.iOS.app/Frameworks/libswiftFoundation.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreAudio.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreGraphics.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreLocation.dylib、/Payload/App.iOS.app/Frameworks/libswiftCore.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreImage.dylib、/Payload/App.iOS.app/Frameworks/libswiftDispatch.dylib、/Payload/App.iOS.app/Frameworks/libswiftPhotos.dylib、/Payload/App.iOS.app/Frameworks/libswiftObjectiveC.dylib、/Payload/App.iOS.app/Frameworks/libswiftCoreMedia.dylib、/Payload/App.iOS.app/Frameworks/libswiftUIKit.dylib 进行后处理。
我还尝试过在从Xcode发布应用程序时不剥离Swift符号进行发布。 enter image description here 这又给出了另一个结果:

此包是无效的 - 您的归档文件包含不允许的路径:(“AppThinning.plist”)

我已经没有解决这个问题的想法了。感觉很奇怪,离发布应用程序如此之近,却在流程的最后一步中挣扎。

你是否在你的应用程序中捆绑了基于Swift的框架? - SushiHangover
我可能是。我没有太多考虑我正在使用的库。我读到在Xcode中需要设置一些设置,但我似乎在Visual Studio中找不到这个设置。 - frmi
使用此指南上传并检查是否仍存在相同的错误:https://developer.apple.com/library/content/documentation/IDEs/Conceptual/AppDistributionGuide/UploadingYourApptoiTunesConnect/UploadingYourApptoiTunesConnect.html - lowleetak
2个回答

5
为了每次构建手动修复此问题,您需要执行以下操作:
1. 将应用程序归档以发布。
2. 当弹出“归档”窗口时,在Finder中找到它(右键单击并选择“在Finder中显示”)。
3. 当Finder出现时,我们需要访问归档的内容(右键单击并选择“显示包内容”)。
4. 在归档包内,创建一个名为“SwiftSupport”的文件夹。
5. 在包内导航到“Product / Applications / YourAppName.app / Frameworks”(您需要右键单击 .app 并选择“显示包内容”)。
6. 复制 Frameworks 目录内的所有 Swift ".dylib" 文件。
7. 导航回 "SwiftSupport" 并粘贴这些已复制的库。
8. 现在启动 Xcode 并加载 Organizer(Window -> Organizer)。
9. 在归档中找到您的应用程序并“上传到 App Store...”。
注意:我只能使用 Xcode Organizer 进行此操作,Xamarin 始终失败。
注:我正在使用 Visual Studio for Mac Community 7.3.2(版本 12),此内容来自我的答案,可在这里找到。

1

好的,我解决了我的问题。原来Xamarin还不支持Swift绑定。 我使用的一个库(Xamarin.iOS.CameraViewController)使用了Swift绑定,使用了Xamarin.Swift3.Support。然而,这个版本不适用于Xcode 9.0.1,因为Xcode根据Xamarin.Swift3.Support的作者的说法,每个版本都会更改Swift库的结构。

我删除了Xamarin.iOS.CameraViewController和所有Xamarin.Swift3引用,应用程序完成处理。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接