【问题标题】:Invalid Swift Support - The SwiftSupport folder is missing无效的 Swift 支持 - 缺少 SwiftSupport 文件夹
【发布时间】:2016-04-25 06:33:01
【问题描述】:

我更新了当前提交的 Titanium 应用并使用 swift 添加了手表扩展。

如果我在 sim 上构建和测试并直接构建到设备,一切正常。仅当我将应用程序提交到 Apple 应用商店(通过 XCode Organizer)时才会遇到问题。

二进制提交,通过验证,但我收到来自 iTunes Connect 的电子邮件,如下所示:

尊敬的开发者,

我们发现您最近交付的“xxxxxxxxxxx”存在一个或多个问题。要处理您的交付,必须更正以下问题:

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

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

似乎它可能与构建设置有关:嵌入式内容包含 Swift 代码

如果 Titanium 项目包含嵌入式 Swift,这似乎需要设置为 Yes

到目前为止,由于无法提交应用程序,我被困住了。这是 Ti 问题还是我应该采取其他步骤?

XCode:7.3,SDK:5.2.2.GA - 仅使用 Ti CLI 创建和构建的项目。

【问题讨论】:

  • 您使用的是 AppStore 中的 Xcode 7.3 GA 版本(无测试版)吗?还要通过运行appc setup 确保您的 appc-cli 是 up2date。如果仍然存在,请将您的 watchos-template 与最新推荐的 here 进行比较。
  • 是的,如上所述,来自 App Store 的 7.3 发行版。使用 watch-os2 swift 选项使用 CLI 选项生成的监视模板,因此模板由 CLI 自动生成
  • 有没有人在 Ti 项目中使用 Swift 作为手表应用,并且成功地将二进制文件上传到应用商店并被接受?
  • Appcelerator 支持建议在 Ti SDK 文件夹中将 Embedded Content Contains Swift Code 设置为 Yes,我这样做并尝试重新构建.但我仍然有同样的问题,
  • 谢谢史蒂夫,我已经在jira.appcelerator.org/browse/TIMOB-23313 下报告了这个问题。您可以尝试在两个目标的扩展 Xcode 项目中将 Embedded Content Contains Swift Code 设置为 Yes 吗?所以不是 Titanium 生成的项目,而是扩展的项目。让我们进一步讨论 JIRA。

标签: swift app-store-connect appcelerator apple-watch appcelerator-titanium


【解决方案1】:

首先你应该检查你的 .ipa 文件

unzip yourapp.ipa

如果存在唯一的Payload,Apple 会拒绝您的应用。

您应该创建SwiftSupport/iphoneos 目录并将相应的 swift 库文件。

您可以通过查看Payload/yourapp.app/Framesworks 了解哪些库是必需的。但是这个库文件不能用作SwiftSupport/iphoneos

您必须从您的 mac 的 /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/swift/iphoneos 目录中复制相应的库。文件名与上述Payload/yourapp.app/Frameworks相同,但内容不同。

得到PayloadSwiftSupport目录后,将这些目录打包

$ zip -r yournewapp.ipa Payload SwiftSupport

(备注:删除所有.DS_Store文件,如果存在)

然后苹果接受yournewapp.ipa

【讨论】:

  • 谢谢,它成功了。如果您不喜欢命令行工具,请使用“commander one”工具进行压缩并删除隐藏文件。
  • 你是如何删除所有 dstore 文件的
  • 例如通过find . -type f | grep .DS_Store查找.DS_Store文件。然后删除每个文件。
  • 嗨@KNaito,谢谢你的建议。我正在使用自动化脚本来生成构建,我无法手动复制文件。你有办法解决这个问题吗?
  • 在最新的 xcode 中,xcodebuild archive 命令会自动创建 SwiftSupport 目录。您是否使用带有合适选项的xcodebuild archive 命令?
【解决方案2】:

为了将来参考:我不得不通过 Xcode 存档 Titanium 项目,因为我的第三方库之一要求在构建阶段执行脚本。

收到了来自 Apple 的相同消息,幸运的是,将 Embedded Content Contains Swift Code 更改为 No

【讨论】:

【解决方案3】:

在导出 ipa 文件时应选择“Save for iOS App Store Deployment”选项。

【讨论】:

    【解决方案4】:

    此问题现已解决,有一个新版本的 Titanium SDK,6.0.1.GA 专门针对此问题进行了修复。我现在已经创建、提交了一个 Titanium 应用,并在应用商店中发布了相关的手表应用。

    【讨论】:

      猜你喜欢
      • 2016-06-19
      • 1970-01-01
      • 2016-12-23
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-12-31
      相关资源
      最近更新 更多