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

frm*_*rmi 5 itunesconnect xamarin.ios ios xamarin swift

我一直在努力发布我的iOS应用程序以进行审核,但出现以下错误:

无效的Swift支持 - 缺少SwiftSupport文件夹.使用当前公共(GM)版本的Xcode重建您的应用程序并重新提交.

我正在使用Xamarin.iOS来开发这个应用程序,如果我使用Visual Studio签名和导出IPA或者如果我使用Xcode发布,我会收到上述错误.

工具版本:

  • Xcode 9.0.1
  • 适用于Mac 7.2的Visual Studio Enterprise 2017
  • Xamarin.iOS 11.2.0.11

我尝试了以下建议:

  1. IPA Packager(也是Auto Packager)
  2. 使用本指南手动包装

第二个建议没有给出不同的回应.使用IPA Packager从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/libsw iftPhotos.dylib,/ Payload/App.iOS.app/Frameworks/libswiftObjectiveC.dylib,/ Payload/App.iOS.app/Frame/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/Frame/libswiftCoreAudio.dylib,/ Payload/App.iOS.app/Framerame/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/Frame/libswiftObjectiveC.dylib,/ Payload/App.iOS.app/Frameworks/libswiftCoreMedia .dylib,/ Payload/App.iOS.app/Frameworks/libswiftUIKit.dylib.

从Xcode发布时,我也试过发布应用程序而不剥离Swift符号 在此输入图像描述 这给出了另一个结果:

此捆绑包无效 - 您的归档包含不允许的路径:("AppThinning.plist")

我没有想法如何解决这个问题.如此接近于发布应用程序,然后在流程的最后一步中与此斗争,这是一种奇怪的感觉.

RTO*_*OCD 5

要为每个版本手动修复此问题,您需要执行以下操作:

  1. 存档您的应用程序以进
  2. 弹出Archives窗口时,在Finder中转到它(右键单击它并选择"在Finder中显示").
  3. 当Finder出现时,我们需要访问存档的内容(右键单击并选择"显示包内容").
  4. 在存档包的内部,创建一个名为"SwiftSupport"的文件夹.
  5. 在软件包内部导航到"Product/Applications/YourAppName.app/Frameworks"(您需要右键单击.app并选择"Show Package Contents").
  6. 复制Frameworks目录中的所有swift".dylib"文件.
  7. 导航回"SwiftSupport"并粘贴这些复制的库.
  8. 现在启动Xcode并加载管理器(窗口 - >管理器).
  9. 在档案馆和"上传到App Store ..."中找到您的应用.

我只能使用Xcode Organizer工作,使用Xamarin总是失败.

注意:我使用的是Visual Studio for Mac社区7.3.2(版本12).

这是从我在这里找到的答案中复制的.


frm*_*rmi 1

好的,所以我解决了我的问题。事实证明,Xamarin 尚未提供对 Swift 绑定的支持。我使用的库(Xamarin.iOS.CameraViewController)正在使用 Swift 绑定,使用Xamarin.Swift3.Support。但是,根据 Xamarin.Swift3.Support 的作者的说法,此版本不适用于 Xcode 9.0.1,因为 Xcode 更改了每个版本的 Swift 库的结构。

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