打开模块’Swift’的导入文件权限被拒绝
我是Xcode和swift工作的新手。 我正在我的macbook上工作一个iOS项目(在度假时),我一直在使用github版本控制,我现在回到家里,现在正在使用我的mac mini。 目前在Xcode 6.3.1中工作,目标是iOS 8.3
所以我在mac mini上克隆了我的项目,当打开并尝试构建项目时,我收到错误:
打开模块’Swift’的导入文件:权限被拒绝
我正在查看错误,它似乎是4个问题,我的AppDelegate.swift和3个ViewController.swift文件(我目前只有3个)
我在这里看了另一个问题 – 打开模块’Swift’的导入文件:权限被拒绝,但它与我的问题无关。
我注意到的一些事情是
- 我的一些框架,即解析和螺栓以红色突出显示,我指出它们在我的mac mini上的位置(不确定这是否是正确的事情),但它们不再突出显示。
- 在products文件夹下,我的.app和.xctest文件以红色突出显示。 不知道如何解决这个问题
有没有人遇到过这个? 我真的很感谢你们的帮助。
干杯加雷思
在我们的例子中,错误是一些框架是在OSX 10.10上使用XCode 7.1构建的,然后是上传到依赖管理器(Carthage)的二进制文件。
失败的项目是在OSX 10.11上使用XCode 7.1编译的,它正在从Carthage中提取这些框架。
显然,OSX版本中的不匹配导致了问题。 一旦在OSX 10.11上重新编译了所有框架,它就会停止失败。
请注意,有时它会失败并且我们的某个框架上的permission denied
,有时会在CoreData上permission denied
。 用10.11构建的二进制文件替换框架二进制文件修复了该问题。 另外,使用10.11构建的框架似乎在10.10上运行良好。
所以我想出了导致这个问题的原因。 “构建设置”下的“搜索路径”正在查找我的框架的错误位置。 类似于Apple Mach-O链接器错误修复
它正在我的macbook pro上搜索我的框架,我删除了’Framework Search Path’,然后重新添加了我的Parse.framework,Bolts.framework和FBSDKCoreKit.framework。
该项目现在可以正常构建和运行,没有任何问题。
对于仍有问题的人,这是我的解决方案:
我尝试了一切建议,从删除任何用户数据到从头开始设置项目再到重新安装Xcode – 对我来说没什么用。
最后,结果发现我使用的框架取决于错误消息中提到的库(打开模块’FRAMEWORK’权限被拒绝的导入文件,在我的情况下这是CoreLocation)。 我构建了其中几个,并且该项目在另一台Mac上构建得很好。 从Github中提取此版本时,构建的框架会引发上述错误。 所以我从头开始构建每个框架,并将这些框架嵌入到我的最终项目中。 这一切都很有效,就像在其他Mac上一样。
只是我的两分钱,因为到目前为止我所看到的一切都可以用与此不同的方式解决。
我通过在Build Settings下的Xcode Search Paths中删除其他User的框架搜索路径解决了这个问题,当我尝试在两个用户之间移动项目时发生了这个错误,当删除路径时一切正常。
对于其他遇到此问题的人来说,这就是我要解决的问题。 我尝试了上述海报所提出的所有内容,但没有成功。 这是我的设置:
- MacOS Sierra 10.12.5
- Xcode 8.2
- 我们的CI基础设施上由Carthage 0.22构建的框架
我在内部构建的框架中遇到“Permission Denied”错误。
如果我将所有框架替换为在我的机器上使用Carthage构建的框架,一切都会起作用。 如果我使用从CI构建的那些,我会看到“Permission Denied”错误。
我仔细检查了OS版本是否完全相同,Xcode版本是相同的。 我比较了在我的机器上构建的框架的Info.plist值与CI基础架构的值。 我仔细检查了Xcode下所有Carthage构建的框架和内部框架的文件权限。
如果我用我在本地构建的框架替换了麻烦的内部构建框架,则错误随后移动并在AppleN的UserNotifications模块上给出了“权限被拒绝”错误。 这毫无意义。
我没有做任何事情,但重新安装MacOS。
事实certificate,在我将新的管理员用户添加到我的机器以测试其他内容后,问题就开始了。 那个用户只使用了git。
删除该用户后,我能够再次建立相信与否。
在我的例子中,当我将项目从git克隆到新的Mac(macOS Sierra和Xcode 7.3)时。 这是我的错误消息:“打开模块’MobileCoreServices’的导入文件:权限被拒绝”。
我尝试重新安装Xcode,但没有任何效果。
最后,我通过重新安装macOS Sierra解决了这个问题。
以下是我的建议:我在新Mac中创建一个新的管理员帐户,切换到新帐户,然后删除旧的管理员帐户,也许我不应该删除旧的管理员帐户。