【问题标题】:"Invalid Swift Support - The SwiftSupport folder is missing" with Xcode 7.3.1Xcode 7.3.1 中的“无效的 Swift 支持 - 缺少 SwiftSupport 文件夹”
【发布时间】:2016-12-23 05:25:11
【问题描述】:

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

我们发现您最近交付的一个或多个问题 “[应用程序名称]”。要处理您的交货,以下问题必须 更正:

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

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

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

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

【问题讨论】:

    标签: ios swift xcode xcode7 app-store-connect


    【解决方案1】:

    这里的解决方案是this answer。我们需要使用新的-exportOptionsPlist 标志和xcodebuild,而不是旧的-exportFormat-exportWithOriginalSigningIdentity 标志。 plist 只需要将method 键设置为app-store

    【讨论】:

    • 我必须在哪个plist文件中更改此键,请帮助。
    • 您不需要更改 plist 文件中的密钥。您需要在命令行上使用-exportOptionsPlist 标志,它采用plist 文件的路径。该 plist(一个新文件)需要包含 method 键,其值设置为 app-store
    【解决方案2】:

    就我而言,我只是在项目中添加了多余的 swift 文件,它解决了问题。

    【讨论】:

      【解决方案3】:

      您应该在创建 ipa 文件时选择“Save for iOS App Store Deployment”而不是“Save for Ad Hoc Deployment”选项。

      【讨论】:

        【解决方案4】:

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

        Reference

        【讨论】:

          【解决方案5】:

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

          ..尼丁

          【讨论】:

            【解决方案6】:

            在通过 Transporter 应用程序将 .ipa 文件上传到 App Store Connect 后,我​​收到了相同的电子邮件。以下是我出错的地方:我使用 ad hoc 分发应用程序。

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

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

            就是这样!

            这里的原始答案:https://stackoverflow.com/a/62568526/10374366

            【讨论】:

              【解决方案7】:

              EXPO 用户。 我在 expo build:ios 中遇到了这个问题,它让我难过了好几天。 来自 expo 服务器的构建大约是 39mbs,远小于以前的版本。

              为了修复它,我不得不使用

              expo build:ios -c

              这会重置所有凭据(我对所有问题都说是)然后重建应用程序。生成的 ipa 文件为 250mbs,现在一切正常。

              【讨论】:

                猜你喜欢
                • 2016-06-19
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 1970-01-01
                • 2017-04-12
                • 1970-01-01
                • 2017-02-13
                相关资源
                最近更新 更多