如何在Xcode上使用不同的模块缓存路径编译PCH

时间:2017-12-13 01:51:33

标签: ios swift xcode pch

在我更改主文件夹的名称之前,Xcode的初始错误就是这个:

<unknown>:0: error: invalid virtual filesystem overlay file '/Users/Mage's_Machine/Library/Developer/Xcode/DerivedData/Clima-flpmhdjedajchpfzcevzpufjznko/Build/Intermediates.noindex/Pods.build/Debug-iphonesimulator/SwiftyJSON.build/unextended-module-overlay.yaml'

<unknown>:0: error: clang importer creation failed

在通过一些研究知道Xcode不接受文件夹名称上的非字母数字字符后,我更改了我的mac的主文件夹的名称(参见:Mage's_Machine)

这样做之后,我收到了这个错误:

error: PCH was compiled with module cache path '/Users/Mage's_Machine/Library/Developer/Xcode/DerivedData/ModuleCache/2RH9SWJYJWLH7', but the path is currently '/Users/Mage/Library/Developer/Xcode/DerivedData/ModuleCache/2RH9SWJYJWLH7'

我更改了主文件夹的名称是否正确?如果是,如何使用不同的模块缓存路径编译PCH来修复此错误?

我正在使用Cocoapods(Alamofire,SVProgressHUD,SwiftyJSON),在更改主文件夹名称后,我收到了更多错误。这些错误的一个例子是:

While building module 'UIKit' imported from /Users/Mage/Desktop/Clima-iOS11-master2/Pods/Target Support Files/SwiftyJSON/SwiftyJSON-prefix.pch:2:
In file included from <module-includes>:1:
In file included from /Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKit.h:8:
/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneSimulator.platform/Developer/SDKs/iPhoneSimulator11.1.sdk/System/Library/Frameworks/UIKit.framework/Headers/UIKitDefines.h:8:9: fatal error: could not build module 'Darwin'
#import <Availability.h>
 ~~~~~~~^

2 个答案:

答案 0 :(得分:2)

我在移动DerivedData位置后遇到了此错误,但是同样有意义的是,在更改父文件夹的名称时会发生此错误。

  • 找到您的DerivedData位置(在Preferences > Locations中列出,如下图所示),然后按 SHIFT + + G

  • 删除ModuleCache文件夹并重建目标;如果仍然失败,则可能还需要删除ModuleCache.noindex文件夹。

据我了解,此过程将为所有已构建模块重建模块缓存。可能无需清理所有DerivedData;只是这些特定文件。

DerivedData location

答案 1 :(得分:0)

在研究了更多之后,我发现了所有错误的修复,但仍有一些警告。

Alyoshak对此链接问题的回答(How to fix PCH error?)修复了我的代码中的所有错误。