Xcode 8 - 发布和调试版本的编译方式不同

时间:2016-09-27 11:05:44

标签: ios swift xcode restkit buildconfiguration

我们最近将我们的iOS应用升级到Swift 3,经过一些调整和调试后,我们设法让它发挥作用。但是当我们尝试归档它时,我们注意到它不会在发布模式下编译。我们遇到的一个错误是Debug模式,Xcode要我们写

let client: AFRKHTTPClient = AFRKHTTPClient(baseURL: baseURL.deletingLastPathComponent)

Release模式下,我们需要编写

let client: AFRKHTTPClient = AFRKHTTPClient(baseURL: baseURL.deletingLastPathComponent())

这些行(其他失败的问题有类似/相关问题)的问题似乎是Debug版本试图使用

var deletingLastPathComponent: URL? { get }

可从iOS 4开始使用,而Release版本则尝试使用

func deletingLastPathComponent() -> URL

可从iOS 10及以上获取。

另一个奇怪的事情是,我们可以在发布中没有括号的情况下调用它,只要我们只构建应用程序而不运行它。

我尝试过清理,清理构建文件夹,删除派生数据,重新启动,没有任何区别。其他mac也会出现同样的问题。我已经尝试通过代码查找RELEASEDEBUG - 标签可以做某事,没有运气,以及设置所有(至少我认为我得到了所有)项目中的发布设置与调试设置相同,但也没有运气。

我们正在使用RestKit 0.27.0并且错误显示在RestKit代码周围,但我找不到任何应该在那里制造麻烦的内容。我现在真的很难过,所以如果有人对我在哪里寻找解决方案有任何指示,他们将不胜感激!

0 个答案:

没有答案