无效的Swift支持/ swift的无效实现

Sim*_*org 59 xcode itunesconnect ios swift

我想上传一个用swift编写的应用程序.应用程序加载程序成功提供应用程序,但几分钟后我得到苹果回复:

无效的Swift支持 - 该包包含无效的Swift实现.该应用程序可能已使用不合规或预发布工具构建或签名.访问developer.apple.com获取更多信息.

我使用xCode版本6.0.1(6A317),Swift iOS SDK 8.0并使用xcode构建应用程序.

我在哪里可以找到有关如何获得有效的swift实现的信息?Apple没有说具体的东西.

谢谢

Kev*_*ord 35

我遇到了类似的问题.要修复它并能够将构建推送到iTunesConnect,我必须执行以下操作:

  • 该标志设置EMBEDDED_CONTENT_CONTAINS_SWIFTYES在目标设置
  • 确保Build Phases不包含任何其他奇怪的目标
  • Logout来自Xcode的所有Apple Developper帐户,只需要推送应用程序即可登录.
  • 存档并提交应用程序,with Xcode不是使用Application Loader.

为什么我需要从我的所有Apple Developper帐户注销?

因为Xcode不知道用于上传二进制文件的帐号.Application Loader在开始时问您,但是上传的构建无效...

更新:

由于Xcode 7.1和Swift的新版本我再次遇到错误.目前的解决方法是执行以下操作:

  • 在Xcode上本地创建存档(不适用于我的CI)
  • 在Organizer上,导出为AppStore版本.
  • 使用Application Loader上传二进制文件.

几分钟后(~10),iTunesConnect上的构建应该可用.

  • 当你在项目中有一个Swift文件但删除它时,似乎会出现问题.这使得Xcode将`EMBEDDED_CONTENT_CONTAINS_SWIFT`设置为`YES`.如果删除最后一个Swift文件,只需将`EMBEDDED_CONTENT_CONTAINS_SWIFT`设置回`NO`. (8认同)

cl3*_*l3m 17

如果你使用Swift pod,问题可能来自cocoapods.要修复它,请使用分支xcode7-invalid-swift-support-fix(用法).或者通过编辑Pods/Target Support Files/Pods/Pods-frameworks.sh 并在之后注释块来手动完成

 # Embed linked Swift runtime libraries
Run Code Online (Sandbox Code Playgroud)

更多信息:

  • 最新的cocoapods版本0.39.0不需要进行此更改.但是,由于"无效的swift实施",我的应用仍被拒绝 (2认同)

Vin*_*ynh 14

xcodebuild的解决方案

  • 创建一个临时文件夹

  • 将ipa文件解压缩到临时文件夹

  • 在temp文件夹中创建SwiftSupport文件夹
  • 将Payload/*app/framworks中的swift库复制到SwiftSupport文件夹
  • 包含ipa文件包含在临时文件夹内(我们有Payload和SwiftSupport文件夹).

这是我的shell脚本,用于将Swift库添加到ipa

https://github.com/huhuvipi/VH_ipa_packger

如果你现有的ipa文件,你只需:

path/to/package_ipa.sh /path/to/ipafile


小智 12

你用命令行(xcodebuild)构建?

如果是这样的话:我遇到了同样的问题.问题是生成的ipa文件无效.它缺少SwiftSupport文件夹.当使用Xcode Gui构建带有Swift的项目时,该文件夹由XCode添加.

这个问题在这个苹果开发者论坛帖子中有一个参考开放雷达票的描述:https: //devforums.apple.com/message/1042117#1042117

  • 这是我的问题.另一个创建`SwiftSupport`文件夹的构建工具是`深圳`.它是xcodebuild/xcrun的替代品,类似于xctool.注意xcodebuil/xcrun不会创建所需的文件夹(这是一个错误). (2认同)

Ant*_*nio 5

你有安装任何其他版本的Xcode吗?

打开最新的Xcode,然后转到首选项(Xcode菜单 - >首选项),切换到位置选项卡并验证命令行工具是否与您的Xcode版本匹配.