问题
I have Crashlytics Framework added to my project, with a script. Run script: Shell: /bin/sh Script: ./Crashlytics.framework/run KEY_HERE
When I try to run the project, I get the following error:
Shell Script Invocation Error - ./Crashlytics.framework/run: Permission denied
BUT if i delete the framework and add it again, it runs fine... ONCE. Then the next time I get the same error. Then i have to delete it, and re-add it, for it to only run once, and then the same story...
Does anybody have an idea how to fix this? THANKS in advance.
回答1:
Are you keeping your project and the Crashlytics framework in Dropbox? I've noticed that Dropbox changes/resets the permissions set.
Try pausing Dropbox sync and then set the permissions of Crashlytics.framework/run
to 755.
UPDATE:chmod 755 run
only worked temporarily for me.
As Hemal Shah wrote in his answer, I also had to tell git to make run
executable. You can do so by calling git update-index --chmod=+x run
and committing that. (via this answer).
After having moved my project and the Crashlytics framework out of Dropbox, and doing this, there were no further issues with it.
回答2:
In terminal just navigate to Crashlytics.framework
folder if you use Crashlytics, in case you already use Fabric go to Fabric.framework
folder. run
should be there. And change permissions by running this in terminal: chmod 755 run
.
回答3:
Hemal from Crashlytics here!
A few things could be causing this - make sure that you're running the latest version of Crashlytics. If you click on the lower right-hand corner, then the release notes should show "- Added arm64 support for iPhone 5s."
Double check that if your SCM requires it, that the "run" binary is marked as executable!
Also, make sure you only have one copy of Crashlytics.app on your system and one copy of Crashlytics.framework in your project and that you're linking to the same copy being invoked.
回答4:
I wanted to include my answer in case there is someone else who had this similar problem but is not using Crashlytics. I'm using Twitter Fabric and started get the error: ./Fabric.framework/run permission denied
Going to Build Phases and deleting the run script fixed this for me.
Edit: Adding to what I said above, just deleting the run script doesn't completely solve the problem, since you still need one to work with Fabric/Crashlytics. I ended up having to contact Crashlytics and this is what they told me (similar to @singhSan's resp0nse):
"Back up through the setup until you can click on the app-selector arrow in the top left corner. Then click on "+ New App" and select your project. This will function as a repair mode and get you the run script build phase you need."
Problem solved.
回答5:
A simple and quick fix is to delete your Crashlytics framework and add it again in your project. This will fix the issue.
回答6:
Run below commands in your project folder:-
chmod +x Crashlytics.framework/run
chmod +x Crashlytics.framework/uploadDSYM
来源:https://stackoverflow.com/questions/19077727/ios-xcode-5-crashlytics-error-shell-script-invocation-error-crashlytics-fr