CFURLCopyResourcePropertyForKey失败,因为它传递了这个没有方案的URL:

时间:2012-08-02 20:19:20

标签: xcode macos git command-line terminal

我知道这是一个xcode警告/错误,但是,当我尝试从命令行运行gitk --all时会发生这种情况。

YuFei-Zhus-MacBook-Pro:test phil88530$ gitk --all
2012-08-02 21:14:49.246 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:49.252 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:49.293 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:49.295 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:49.474 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:49.476 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:50.731 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
2012-08-02 21:14:50.734 Wish[33464:707] CFURLCopyResourcePropertyForKey failed because it was passed this URL which has no scheme: 
YuFei-Zhus-MacBook-Pro:test phil88530$ 

我刚刚更换了一个新磁盘并重新安装了osx并更新到了山狮,安装了x11和xcode。有什么建议吗?

7 个答案:

答案 0 :(得分:24)

$ alias gitk='gitk 2>/dev/null'

我在这里遇到同样的问题。这是一个快速的提示,直到有人回答这个解决方案。

答案 1 :(得分:8)

如果您是MacPorts用户,请将tcl / tk升级到8.6.0:

$ sudo port install tcl tk

答案 2 :(得分:7)

使用新版本的tcl-tk运行gitk似乎可以解决这个问题(使用Mac OS X 10.8.4进行测试)。如果您安装了Homebrew,则以下内容应该有效:

  1. 从命令行运行:brew install tcl-tk
  2. 然后将以下内容添加到.bashrc或.bash_profile:alias gitk='"$(brew --prefix tcl-tk)/bin/wish" "$(which gitk)"'
  3. 重新启动终端后,你应该可以正常运行gitk而不会看到任何" CFURLCopyResourcePropertyForKey"错误。

答案 3 :(得分:5)

我刚刚收到此错误并找到解决方案。

我试图调用函数getResourceValue:forKey:error:在我的项目中,我的os版本是10.7.5。

我使用+ URLWithString初始化一个新的NSURL对象:问题发生之前,我用+ fileURLWithPath:替换后,现在没关系。

具有不同功能的两个对象之间的差值是  /卷/数据/一  文件://本地主机/卷/数据/一个/

Apple已经声明了下面的NSURL课程,

处理对象创建失败 如果传递的路径格式不正确,则NSURL类无法创建新的NSURL对象;路径必须符合RFC 2396.不成功的情况示例是包含空格字符和高位字符的字符串。如果创建NSURL对象失败,则创建方法返回nil,您必须准备好处理它。如果使用文件系统路径创建NSURL对象,则应使用fileURLWithPath:或initFileURLWithPath:来处理URL路径和文件系统路径之间的细微差别。如果您希望容忍格式错误的路径字符串,则需要使用Core Foundation框架提供的函数来清理字符串。

Error while using getResourceValue:forKey method in NSURL

答案 4 :(得分:3)

在Mountain Lion 10.8.2上,我解决了这个问题安装/升级tcl和tk - 正如提到的那样。

brew install tcl
brew install tk

gitk的UI可能会改变,但你可以在〜/ .gitk中调整它。

答案 5 :(得分:1)

这篇博文解决了我的问题:

http://blog.jasonsemko.com/post/51668282398/easy-fix-for-cfurlcopyresourcepropertyforkey-failed

它的长短是gitk没有正确解析Xcode附带的git的版本字符串,并且正在考虑额外的细节。

所以要修复,你可以安装一个带有干净版本号的git。

brew install git

您可能需要通过更改PATH中搜索的订单目录来确保调用brew的git版本(例如,我必须在/usr/bin/local之前加载/usr/bin)。或者,您可以将git别名为brew安装的绝对路径。

答案 6 :(得分:0)

alias gk ='gitk --all 2> / dev / null&' (我在Mac上)

我在〜/ .bash_login文件中有它,它解决了它:D

你也可以把它放在.bashrc文件