Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

What permissions are required for "Run Script" during a build phase?

In the "Run Script" build phase of my project, everything works if I type in the script into the text box for "run script" in build phases.

But to make editing / diffing etc easier, I thought I would save the script as a file as part of my project, and just fill in the path in the text box instead:

Eg: I paste the following path in the text box.

/Users/superman/Documents/Projects/SomeProject/scriptname.sh 

But when I try to build this, I get a "Permission Denied" message.

What can I do to fix this? If I cut/paste the actual code, then it just "works". My user account is an administrator account. No one else uses my machine.

like image 250
Rahul Iyer Avatar asked Mar 24 '12 10:03

Rahul Iyer


People also ask

What is build phase in Xcode?

Xcode also uses instances of the Copy Files build phase to embed frameworks, app extensions, app clips, and other content inside your bundle. You use these build phases to copy other project files into a bundle. For example, you might copy templates for new documents into your app's bundle.

How do I create a run script?

Click the Build Phases tab. Click the Add button (+), then choose “New Run Script Phase” from the pop-up menu. Click the disclosure triangle for the newly added Run Script phase. In the Shell text field, enter your script code.

How do I run a custom shell script in Xcode?

1 Select xcodeproj file of you project -> Select Target -> Select Build Phases -> Click on plus button (upper left corner) -> Select New Run Script Phase. 2If you want to run a script while it is being installed on the device then please check a little checkbox just below the script box.


2 Answers

You can simplify your Xcode project file a little further and not require the "bin/sh " in front of the script name.

To avoid this, you need to turn on "execute" permissions for users (Xcode in this case) of the file.

Steps

  • Go into terminal
  • Navigate to where your script is
  • run chmod 755 yourScriptName.sh
like image 150
Scott Avatar answered Oct 10 '22 19:10

Scott


Put /bin/sh in front of the path to the script name.

/bin/sh /Users/superman/Documents/Projects/SomeProject/scriptname.sh 
like image 23
Android63 Avatar answered Oct 10 '22 19:10

Android63