iOS 项目中的 Pods-resources.sh 权限被拒绝

100

我从客户那里得到了一个现有的项目,我试图在我的MAC上使用XCode 5.0运行它。但是我遇到了以下错误。我安装了Cocoa Pods但仍然无法正常工作。这个项目在其他开发者的机器上运行良好。我非常需要让它在我的机器上运行。

我错过了什么?

输入图像描述


我遇到了同样的问题。 - Frank Guo
未来的读者请注意:不要发布错误消息的图像。请将错误消息作为文本发布。请参见此处的原因:https://meta.stackoverflow.com/a/285557/11107541。 - starball
15个回答

193

您需要使脚本可执行。打开终端并执行以下命令:

chmod a+x "/Users/shovon0203/Desktop/My Work/oDesk/momenTOGO/MomenTOGO_iPhone/Pods/Pods-resources.sh"

3
您的命令可行,但无法在终端中执行:P。我编辑了Pods脚本并使用了上述命令,现在已经可以工作了:)谢谢! - Waqas Haider Sheikh
1
当我开始一个新项目,在家里的电脑上安装pods,然后在我的笔记本电脑上继续这个项目时,就会发生这种情况。有没有办法设置frameworks.sh的默认权限,这样每次在家和工作电脑之间传输项目时都不必在终端中执行此操作?谢谢。 - aresz
6
在上述命令前加上 "sudo" 解决了这个问题。 - Saikiran Komirishetty
我尝试了这个命令,但它没有起作用。然后我使用sudo命令尝试了一下,但还是不行。接着我在Xcode的构建设置中添加了一个用户定义的设置 "PODS_ROOT = ${PROJECT_DIR}/Pods/"。这就是解决问题的方法。看来权限被拒绝的错误信息有些误导,因为实际上脚本无法找到文件。 - CantThinkOfAnything
这个,@Kevin,救了我的命。我已经为一个应用程序工作了6个月,并切换到了新的MacBook Pro。突然间出现了“权限被拒绝”的问题,而这个解决了问题。谢谢! - Aeger
显示剩余3条评论

59

试试这个,百试不爽!

rm -rf Pods/ Podfile.lock
pod install

4
这对我起作用了,但无需删除Podfile.lock文件。 - Fantini
这应该被标记为解决方案。 - kaharoth
1
这是正确的答案。当您创建Pod时,没有任何问题。 - hasan
谢谢,我在将一个已经死亡的Macbook Pro的备份恢复到它的替代机器时遇到了这些权限错误。 - Titan
谢谢,当我将一个已经死掉的Macbook Pro的备份恢复到它的替代机器时,我遇到了这些权限错误。 - undefined

23

对我来说,将所有Pods去集成化,然后重新安装它们就解决了问题:

pod deintegrate
pod install

18

在您的podfile所在的主项目目录中运行 pod install 应该可以解决这个问题。


15

您需要使脚本可执行。打开终端并执行以下命令:

chmod a+x "your_path(where show permission denied)"
请检查文件夹名称中是否有空格,如果有,请在其前面添加'\'。

9
这些步骤在我多次失败后才成功了。
步骤1:导航到包含Pods-resources.sh的文件夹位置。
步骤2:打开终端,输入cd并将包含Pods-resources.sh的文件夹拖到终端中,然后按回车键。
步骤3:运行此命令>> chmod a+x Pods-resources.sh
步骤4:重新启动Xcode,并打开您的xxx.xworkspace。
步骤5:享受。

2
经过长时间搜索,这一个在我的情况下完美地工作。一个更正是当运行命令时,请按照以下步骤进行操作:chmod a+x Pods-ProjectName-resources.sh - Mohd Sadham
很高兴听到,代码写得不错。 - Odwori

7
你可以尝试这个:
pod deintegrate && pod cache clean --all && rm -rf Podfile.lock
pod install

在我的项目中,它总是能够良好地运作。


6

只需完全删除文件夹Pods-[Your_Project_Name],然后进行全新的pod install


3
上述答案可行。但是,我遇到了相同的问题,并且这个问题一直再次出现。它涉及在多台机器上检出相同分支的问题。它在一台机器上可以工作,但在其他机器上却无法工作。我们使用TFS作为我们的源代码控制(没关系,你可以判断),它与.sh、.py等文件不兼容。我们不得不在每个目录都添加一个.tpattributes文件,其中包含一个.sh或.py文件,以便我们可以将.sh和.py文件作为可执行文件运行。
.tpattributes文件中的条目如下:
Pods-MyTarget-frameworks.sh:x
Pods-MyTarget-resources.sh:x

这句话的意思是:chmod +x "Pods-MyTarget-frameworks.sh",执行得非常顺利!

你把.tpattributes文件放在哪里了? - el.severo
在 Pods > Target Support Files > Pods-[目标名称] 中 - tentmaking
谢谢,已添加但仍然遇到以下问题(https://drive.google.com/file/d/0B0BpWRnIuAXPeWtpMHNNSVlrQVU/view?usp=sharing)。您还有什么其他建议吗?(附:[这是脚本的内容](https://gist.github.com/alexszilagyi/e0db78298d0719b4f75fffe78eef661e)和[这里](https://gist.github.com/alexszilagyi/e0db78298d0719b4f75fffe78eef661e#file-pods-target-resources-sh-L7)它崩溃了) - el.severo
@tentmaking,我现在也遇到了TFS的同样问题。您能否提供一些关于如何解决这个问题的更多信息? - steventnorris
@steventnorris 我们在每个Pods-[Target]目录中添加了一个文件(.tpattributes)(位于Pods> Target Support Files> Pods-[Target]中),其中包含上面我的回答中所见的条目。不确定您需要什么其他信息。 - tentmaking

1
我将这篇文章作为对Kevins答案的评论https://dev59.com/EGIk5IYBdhLWcg3wAJ2E#19687227发表。但是我认为把它作为回答会更容易让人们找到,并且它解决了我的问题。它可能也适用于其他人:D
我尝试运行Kevins答案中的chmod命令,但它没有起作用。然后我尝试使用sudo命令,但还是不起作用。然后我在Xcode的构建设置中添加了一个用户定义的设置“PODS_ROOT = $ {PROJECT_DIR} / Pods /”。这就是解决我的问题的方法。看起来“权限被拒绝”错误非常误导,因为脚本实际上无法找到文件。

嗨@CantThink!你能提供一个例子,说明你是如何添加这个设置的吗? - Gehlen
1
@Gehlen 你可以在Xcode的构建设置部分定义这些设置。请参见https://medium.com/@kavithakumarasamy89/xcode-build-settings-user-defined-settings-manage-multiple-environments-with-single-target-3e5c1a307999 - CantThinkOfAnything
谢谢@CantThink,非常难以捉摸! - Gehlen
嗨@CantThinkOfAnyThing!是的,我做到了!但在我的情况下,我正在配置Bamboo上的CI,问题是我正在尝试在构建阶段访问$TMPDIR,所以我无法访问。我只是将其删除并解决了问题!无论如何还是谢谢你! - Gehlen
@Gehlen 很高兴我能帮到你 :) - CantThinkOfAnything

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