[英]Can't get shell script to run in Xcode
我在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框架的合适替代品都将受到赞赏。
更改脚本要写入文件的目录的权限。 在终端的交互式会话中执行此操作:
$ sudo chmod a+w the_directory
然后你应该能够运行你的脚本(没有sudo
tar
)。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.