无法在Xcode中运行Shell脚本

4

我是一个对在Xcode中运行脚本比较新手的人,一直无法弄清楚我正在运行的脚本出了什么问题。我运行的第一个脚本是这个:

/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框架。

1个回答

0

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

 $ sudo chmod a+w the_directory

然后您应该能够运行您的脚本(无需使用sudo命令来运行tar)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接