使用Xcode 7 Beta将SpriteKit项目升级到Swift 2后出错

使用Xcode 7 Beta将SpriteKit项目升级到Swift 2后出错,swift,sprite-kit,xcode7,Swift,Sprite Kit,Xcode7,在使用Xcode 7 beta将我的SpriteKit项目升级到Swift 2之后,我遇到以下运行时错误: dyld: Library not loaded: /System/Library/Frameworks/GameplayKit.framework/GameplayKit Referenced from: /private/var/mobile/Containers/Bundle/Application/MyGame.app/Frameworks/libswiftGameKit.dy

在使用Xcode 7 beta将我的SpriteKit项目升级到Swift 2之后,我遇到以下运行时错误:

dyld: Library not loaded: /System/Library/Frameworks/GameplayKit.framework/GameplayKit
  Referenced from: /private/var/mobile/Containers/Bundle/Application/MyGame.app/Frameworks/libswiftGameKit.dylib
  Reason: image not found
(lldb) 

我在我的项目中不使用GameplayKit,尽管我使用的是SpriteKit。

dylib已经不存在了。GameKit.tbd是现在GameKit框架中的内容。从项目导航器中单击GameKit框架上的Show in Finder。打开GameKit.Framework文件夹,您应该拥有以下文件:

游戏套件。待定
标题
模块
module.map

如果您没有看到,只需删除引用并重新添加它


检查“生成设置”下的库搜索路径,并删除可能导致包含此库的任何路径。事实上,删除所有内容并根据需要重新添加。

如果目标机器的iOS版本低于9.0,请将iPhone iOS更改为9.0并进行测试

XCode:SDK是9.0,目标是8.3

我的iPhone 8.3:dyld:Library未加载 我的iPad是9.0:好的!
模拟器:好的

当添加了
GameKit
框架时,iOS 9 beta SDK中似乎有一个bug,它强制要求使用
GamePlayKit
。bug报告需要归档,因为
GameKit
GamePlayKit
完全不相关

作为一个临时解决方案,我建议下载iOS 8 sdk,并将基本目标sdk更改为iOS 8,直到苹果修复为止。否则,请将设备的iOS版本升级到iOS 9 beta版

GamePlayKit
是仅限iOS 9的框架,因此不能添加到嵌入式二进制文件部分


编辑:


苹果似乎已经改变了iOS 9的框架名称。GameKit框架是9.0版本,而不是
导入GameKit
尝试
导入GameCenter

。删除它并重新链接,但仍然看到相同的错误。所有的项目和目标搜索路径都是干净的。好吧,首先我假设GameKit被添加到“链接库与框架”的构建阶段,对吗?它可能在右侧标记为“必需”。让它成为可选的,只测试编译,如果这是相关的。接下来,将此框架添加到“复制捆绑资源”中,以测试其是否有效。然后检查“隐式链接objective-c运行时支持”的生成设置。您是否解决过此问题?我也有。这里没有任何建议有效,将GameKit设置为可选也不起作用。我仍然有这个问题。即将尝试Xcode 7 beta 2。我也升级过一次。这是我迈出的最糟糕的一步。我刚刚删除了xcode 7测试版,并将代码编辑回xcode 6。我花了一个月的时间来修复它,因为Xcode6不知怎么地发生了变化,而错误发生在编辑器显示的地方以外的地方。我建议您删除Xcode 7 BETA版,因为Xcode 6没有这些错误。更新:从Xcode 7 BETA 3版开始,有一个新的GameCenter.framework。这让我可以使用iOS 9在模拟器中运行我的应用程序,但我还没有让游戏在我的iOS 8.4设备上运行,即使是在将8.4设备支持复制到Xcode 7 beta 3应用程序之后。我在iOS 8.4上遇到的错误:>这是有意义的,因为GameCenter.framework在iOS 9中是新的。有什么方法可以使这个游戏套件适用于8.4和更早版本吗?SDK是9.0,开发目标是8.0。一直是这样;无法修复错误。存档于rdar://21676915