无法在Xcode中运行shell脚本

问题描述:

我是在Xcode中运行脚本的新手,并且无法弄清楚我正在运行的脚本有什么问题。我遇到的第一个剧本是这样的:无法在Xcode中运行shell脚本

/bin/sh -x 

PBXCP=${DEVELOPER_DIR}/Library/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp 
${PBXCP} -exclude .svn "${PROJECT_DIR}/../../base" 
"${BUILT_PRODUCTS_DIR}/${UNLOCALIZED_RESOURCES_FOLDER_PATH}/" 

这引起我碰到这个错误:

/Users/newperson/Library/Developer/Xcode/DerivedData/appname-etesgjzdmfzimlgvakidckjecgij 
/Build 
/Intermediates/appname.build/Debug-iphonesimulator/app.build/Script- 
435F41A90F532CA300887552.sh: line 3: /Applications/Xcode.app/Contents/Developer/Library 
/PrivateFrameworks/DevToolsCore.framework/Resources/pbxcp: No such file or directory 

此错误是相当的地步,剧本正在寻找该文件不存在。新版本的Xcode已经摆脱了pbxcp。所以我开始寻找一个很好的替代脚本运行,不会使用pbxcp,当我发现这一点:

/bin/sh -x 

/usr/bin/tar -c -C "${PROJECT_DIR}/myframeworks" --exclude .DS_Store --exclude CVS --exclude 
.svn --exclude .git -H `cd "${PROJECT_DIR}/myframeworks" && find DevToolsCore.framework` | 
/usr/bin/tar -x -C ${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH}  

这个脚本也引起了我碰到一个问题,这是这样的:

tar: could not chdir to '/Users/newperson/Library/Developer/Xcode/DerivedData/appname- 
etesgjzdmfzimlgvakidckjecgij/Build/Products/Debug-iphonesimulator/appname.app/Frameworks' 

tar: Write error 
Command /bin/sh failed with exit code 1 

我无法找到一个明确的答案是什么意思这个错误,一个论坛上建议,我在我的脚本给该脚本的权限更改目录使用sudo命令,所以我跑了这一点:

/bin/sh -x 

/usr/bin/tar -c -C "${PROJECT_DIR}/myframeworks" --exclude .DS_Store --exclude CVS --exclude 
.svn --exclude .git -H `cd "${PROJECT_DIR}/myframeworks" && find DevToolsCore.framework` 
| sudo /usr/bin/tar -x -C ${BUILT_PRODUCTS_DIR}/${FRAMEWORKS_FOLDER_PATH} 

这脚本使我虽然遇到这样的错误:

tar: Write error 
Command /bin/sh failed with exit code 1 
++ find DevToolsCore.framework 
sudo: no tty present and no askpass program specified 
tar: Write error 

这是据我走到这一步,我相当有我有限的shell脚本的知识失去了任何帮助纠正我的脚本或寻找合适的替代包含pbxcp的Xcode框架将不胜感激。

+0

+1你尝试过 – Undo 2013-04-10 20:50:21

更改脚本想要写入文件的目录的权限。做在终端的交互式会话:

$ sudo chmod a+w the_directory 

那么你应该能够运行脚本(不sudo荷兰国际集团的tar)。