使用Xcode 7.3.1进行“无效的Swift支持 - 缺少SwiftSupport文件夹”

时间:2016-08-16 18:04:31

标签: ios swift xcode xcode7 itunesconnect

使用Application Loader提交应用更新后,我收到了Apple的这封电子邮件:

  

我们发现您最近交付的一个或多个问题   “[App Name]”。要处理您的交付,必须满足以下问题   纠正:

     

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

     

一旦这些问题得到纠正,您就可以重新发送   纠正二进制。

我已经确认这个二进制文件是使用最新的Xcode GM(7.3.1)构建的,所以这不是问题。我已经在网上看到了针对这个问题的各种各样的潜在修复方法,但我希望通过提供更多详细信息,有人可以帮我找出具体的解决方案。

  • 使用Application Loader 3.5提交了一个没有问题的IPA文件。
  • 以前版本的应用程序不使用Swift,但此更新可以使用。
  • “嵌入式内容包含Swift代码”构建设置设置为NOMy understanding如果我们有一个纯粹的Objective-C目标依赖于Swift或混合目标,那么这只应该是YES
  • 该项目使用CocoaPods,但此更新的pod中没有任何变化。
  • 该应用程序的先前版本包括WatchKit应用程序和扩展程序,但此更新不包括。
  • 在使用相同版本生成的xcarchive内,SwiftSupport文件夹就在那里。它包含一个名为iphoneos的子文件夹,其中包含多个Apple Swift库,如libswiftFoundation.dylib
  • 如果我将.ipa文件重命名为.zip并取消归档,则其应用包不包含SwiftSupport文件夹,但包含Frameworks文件夹Swift dylibs。

6 个答案:

答案 0 :(得分:10)

此处的解决方案位于this answer。我们需要将新-exportOptionsPlist标记与xcodebuild一起使用,而不是使用较旧的-exportFormat-exportWithOriginalSigningIdentity标记。 plist只需要将method键设置为app-store

答案 1 :(得分:2)

您应该选择"保存iOS App Store部署"而不是"保存特别部署"创建ipa文件时的选项。enter image description here

答案 2 :(得分:2)

在通过 Transporter 应用程序将is_sub = True def on_message(msg): print(msg) if msg == "STOP": unsubscribe(key) is_sub = False #continue to code print("Start") key = subscribe(on_message) while is_sub: print("on sub") time.sleep(1) #cotinue here print("End") 文件上传到App Store Connect之后,我收到了同一封电子邮件。以下是我出错的地方:我使用临时分发应用程序。

以下步骤是解决我的错误的方法:

  1. 存档应用
  2. 在TestFlight和App Store上分发
  3. 导出
  4. 在导出中新创建的文件夹中打开.ipa
  5. 如果您像我一样上载到App Store Connect / TestFlight,请确保ExportOptions.plist属性的值为method
  6. 将导出的app-store文件拖放到 Transporter
  7. 交付您的应用以上传它。

就是这样!

此处的原始答案:https://stackoverflow.com/a/62568526/10374366

答案 3 :(得分:1)

这样做的根本原因是供应配置文件是临时的,并且它不会在ipa中创建SwiftSupport目录。该文件夹是使用app-store作为导出方法创建的,因此当我将配置文件更新为app-store时,它对我有用。

Reference

答案 4 :(得分:0)

在我的情况下,我只是将冗余的swift文件添加到项目中,它解决了问题。

答案 5 :(得分:0)

使用此https://github.com/ndpiparava/Swift_StripArm64e脚本文件从.app文件中删除arm64e

.. Nitin