Closed josercc closed 4 years ago
This is most likely because the environment is different in your Terminal and your Swift application. Try running the command “env
” both in the terminal and the Swift application. See if there is anything missing in the output from the Swift application that the pod
command might need.
You can change the environment in SwiftShell by changing the main.env
dictionary.
Ok thanks
@kareman
main.env
and the terminal, the value ofPATH
was really different.
print (main.env [" PATH "])
/Applications/Xcode.app/Contents/Developer/usr/bin:/usr/ bin:/bin:/usr/sbin:/sbin
When I execute ENV
in the terminal, the following path is printed
/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/Library/Apple/usr/bin:/Library/Apple/bin
When I execute pod --version
using the terminal'sPATH
, the version can be successfully printed. I want to write a program for others to use, but I can't get the terminal's PATH
path to set it, so that the commands inside can't be executed? How to solve this?The main difference I have made is that main.env ["PATH"] is missing / usr / local / bin
. I remember what version of Mac was modified by Apple. Now modify the current PATH
code with the following code to run perfectly. Thank you very much for contributing such a perfect framework, so that I no longer have to worry about writing scripts with Shell
, and no need to worry about sed
syntax.
guard var path = main.env["PATH"] else {
return
}
path += ":/usr/local/bin"
main.env["PATH"] = path
main.env["LANG"] = "en_US.UTF-8"
try? runAndPrint("pod", "--version")
@kareman
Can you add /usr/local/bin
toPATH
in the framework. This problem may be encountered by many people, adding will solve many people's questions.
I’m glad you got it working. I cannot set any environment variables in the framework, because they need to be inherited from the environment in which the application is running. So if you make a commandline application using SwiftShell, and run it from the terminal, it needs to only use the environment that the terminal currently has.
which pod
run("/usr/local/bin/pod", "--version") error