【问题标题】:Can't get shell script to run in Xcode无法让 shell 脚本在 Xcode 中运行
【发布时间】:2013-04-10 20:47:31
【问题描述】:

我对在 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 表示您尝试过的内容

标签: xcode shell


【解决方案1】:

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

 $ sudo chmod a+w the_directory

然后你应该能够运行你的脚本(没有sudoing tar)。

【讨论】:

    猜你喜欢
    • 2021-09-27
    • 2020-01-01
    • 2017-09-09
    • 2019-02-17
    • 2023-03-14
    • 1970-01-01
    • 2023-03-04
    • 2016-05-27
    • 1970-01-01
    相关资源
    最近更新 更多