我只是想为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
答案 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。
<小时/> 其他信息:
当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并将其替换为项目中备份或干净版本的文件。这应该可以清除构建错误。