Xcode不会创建swiftmodule

时间:2015-10-29 06:27:59

标签: xcode swift2

过去几个月我花了大约1500个源代码文件将我的项目转换成Swift。这真是令人难以置信的乏味,但我终于做到了。它运行良好,构建良好,但是:

当我尝试存档项目时,Xcode失败并出现以下错误:

$loginQ = mysqli_query($dbc,"UPDATE energy SET unit=('".$_POST['unit']."')
    ,jan=('".$_POST['jan']."'),feb=('".$_POST['feb']."'),mar=('".$_POST['mar']."')
    ,apr=('".$_POST['apr']."'),may=('".$_POST['may']."'),jun=('".$_POST['jun']."')
    ,jul=('".$_POST['jul']."'),aug=('".$_POST['aug']."'),sep=('".$_POST['sep']."')
    ,oct=('".$_POST['oct']."'),nov=('".$_POST['nov']."'),dece=('".$_POST['dec']."')
    ,giver=('".$_POST['giver']."'),note=('".$_POST['note']."')
    WHERE
    uname='".$uname."' AND years='".$year."' AND label='Test'
    "

$loginQ2 = mysqli_query($dbc,"UPDATE energy SET unit=('".$_POST['unit2']."')
    ,jan=('".$_POST['jan2']."'),feb=('".$_POST['feb2']."'),mar=('".$_POST['mar2']."')
    ,apr=('".$_POST['apr2']."'),may=('".$_POST['may2']."'),jun=('".$_POST['jun2']."')
    ,jul=('".$_POST['jul2']."'),aug=('".$_POST['aug2']."'),sep=('".$_POST['sep2']."')
    ,oct=('".$_POST['oct2']."'),nov=('".$_POST['nov2']."'),dece=('".$_POST['dec2']."')
    ,giver=('".$_POST['giver2']."'),note=('".$_POST['note2']."')
    WHERE
    uname='".$uname."' AND years='".$year."' AND label='Test2'
    "

ditto: can't get real path for source '/Users/USER/Library/Developer/Xcode/DerivedData/ APP-dtsbrzschafjiubelceuxtfwstqf/Build/Intermediates/ArchiveIntermediates/APPCore/ IntermediateBuildFilesPath/APPCore.build/Release/APPCore.build/Objects-normal/ x86_64/APPCore.swiftmodule'' Command /usr/bin/ditto failed with exit code 1 是应用,APP是嵌入式框架。

我尝试了什么:

  • 清理项目(归档时确实没有效果,因为归档总是从头开始编译)
  • 使用Xcode 7.2 beta(几天前发布)
  • 尽可能多地声明非公开声明
  • 禁用发布版本配置的任何Swift优化
  • 构建APPCore框架作为发布 - 实际上有效(!) - 并且(!)创建APPCore文件

最后一部分是最奇怪的。这显然表明存档做了一些略有不同的事情,但我不知道是什么。

我的问题是,是否有人知道为什么会发生这种情况以及如何调试此问题。我花了最近两天试图解决这个问题,但没有结果......

我也搜索了这个错误,但遗憾的是,答案相当有限,建议对所有代码行进行评论,然后开始慢慢取消注释,直到项目构建完成。对于较小的项目来说哪个是可以的,但对于25KLOC项目来说则不行,主要是当你完全不知道从哪里开始......

1 个答案:

答案 0 :(得分:0)

我有同样的问题,你的问题实际上帮助我解决了它(Xcode 8)。

在调试模式下,只需获得“同上:无法获取源的真实路径”,而无需任何进一步的信息。切换到发布模式向我显示问题是框架不允许有桥接头文件。我去了构建设置并删除了桥接头文件(不知道为什么有一个),它现在在发布和调试模式下编译。