iphone构建错误让我想要买钉枪

时间:2010-06-11 03:59:54

标签: iphone xcode build

我只是想为iphone应用程序构建一个简单的更新(我之前已经做过),但现在由于某种原因我收到了这个错误。谁能告诉我这是什么意思?

Command/Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist failed with exit code 127
sh: plutil: command not found

以下是构建结果:

CopyPNGFile /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png images/img_000.png
    cd /Users/me/
    setenv COPY_COMMAND /Developer/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"
    "/Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS Build System Support.xcplugin/Contents/Resources/copypng" -compress "" /Users/path/images/img_000.png /Users/me/path/build/Dist-iphoneos/MyApp.app/img_000.png
sh: dirname: command not found

CopyPlistFile /Users/me/path/build/Dist-iphoneos/MyApp.app/Entitlements.plist Entitlements.plist
    cd /Users/me/
    setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"
    /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist --convert binary1 Entitlements.plist --outdir /Users/me/path/build/Dist-iphoneos/MyApp.app
sh: plutil: command not found

8 个答案:

答案 0 :(得分:2)

由于某些原因,您的PATH变量被搞砸了。你想看看究竟是怎么发生的。这是你的(强调结肠分开):

setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
    :/Developer/usr/bin
    :/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/"

这就是PATH的工作原理:

setenv PATH "/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin
    :/Developer/usr/bin
    :/usr/bin
    :/bin
    :/usr/sbin
    :/sbin"

(行分离是为了阐明PATH变量如何分隔路径)

注意我的/ usr / bin:/ bin:/ usr / sbin:/ sbin是怎么回事?这就是问题所在。 shell脚本只在其路径中找到可执行文件,当文件位于/ usr / bin /时,它找不到它们。

有关Xcode PATH的SO讨论,请参阅例如where is $PATH set in xcode?

答案 1 :(得分:1)

您的路径环境变量是否可能以某种方式设置?

你有:

  

setenv PATH“/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin:/Developer/usr/bin:/System/Library/Frameworks/JavaVM.frameworK/Versions/1.6/Home/”   /Developer/Library/Xcode/Plug-ins/CoreBuildTasks.xcplugin/Contents/Resources/copyplist --convert binary1 Entitlements.plist --outdir /Users/me/path/build/Dist-iphoneos/MyApp.app

我表示:

  

setenv PATH“/Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin:/Developer/usr/bin:/opt/local/bin:/usr/local/bin:/bin:/sbin:/usr /斌:/ usr / sbin目录”   builtin-infoPlistUtility test34-Info.plist -genpkginfo /Users/gnd/Desktop/test34/build/Debug-iphonesimulator/test34.app/PkgInfo-expandbuildsettings-format binary -platform iphonesimulator -o / Users / gnd / Desktop / test34 / build /Debug-iphonesimulator/test34.app/Info.plist

我没有在你的路径中看到/ usr / bin。

(在终端:
   echo $ {PATH}

尽管大多数OS X GUI应用程序都是从〜/ .MacOSX / environment.plist获取路径但不是100%确定Xcode。

<小时/> 其他信息:

来自'man bash'页面:

  

当bash作为交互式登录shell或具有--login选项的非交互式shell调用时,它首先从文件/ etc / profile中读取并执行命令(如果该文件存在)。读取该文件后,它会按顺序查找〜/ .bash_profile,〜/ .bash_login和〜/ .profile,并从存在且可读的第一个命令中读取和执行命令。

因此,如果你在.bash_login中存在但是.bash_profile存在,则不会看到你的更改。

另请注意上面有关GUI应用程序PATH定义备用文件的评论。

您可能需要退出然后重新登录才能将更改设为“接听”。

答案 2 :(得分:1)

我有同样的问题....问题是plutil不在PATH的任何目录中。

我的解决方案是从/ usr / bin复制到PATH中的/ user / local / bin。

不知道问题是Xcode,OS X还是Apple。

答案 3 :(得分:0)

plutil通常位于/usr/bin。确保它在那里。如果不是,您可能已经安装了您的开发人员工具而没有取消选中(或取消选中)系统工具复选框,该复选框将基本的Mac OS X程序员工具放入/ usr。

答案 4 :(得分:0)

尝试重新安装SDK?

答案 5 :(得分:0)

我已经完成了所提供的答案,但没有一个能为我工作。问题依然存在。

我仔细查看了xcode中的错误,并注意到它在错误的位置寻找图像。在我的情况下,我复制并重命名了包含我的项目的目录。没有更新我的图片的参考文献。

我通过在finder中右键单击项目文件并单击Show Package Contents来解决我的问题。然后我在xcode中打开了* .pbxproj。我在文件上进行了查找和替换,用新文件夹替换旧文件夹的名称。

关闭并打开xcode后,这解决了我的问题。

我希望这有助于其他人......

答案 6 :(得分:0)

如果您通过finder删除文件(不是在xcode中),则会显示此错误,然后尝试存档。因此,请确保没有任何文件以红色列出,以及是否将其从项目中删除。

答案 7 :(得分:0)

之前我见过这个错误。问题出在一个损坏的.png文件中。这个错误非常具有欺骗性。尝试删除受影响的.png并将其替换为项目中备份或干净版本的文件。这应该可以清除构建错误。