![Executing command-line instantly from Xcode — Erica Sadun Executing command-line instantly from Xcode — Erica Sadun](https://geeks-news.com/wp-content/uploads/2020/07/Screen-Shot-2020-07-15-at-9.43.02-AM.png)
[ad_1]
I obtained pulled into a type of conversations the place I find yourself saying, “Tremendous, I’ll put up a put up about it” and that is the put up. Sure, you can check and run command-line apps instantly from Xcode however I just about by no means do. It’s a ache with few advantages. That mentioned, right here’s the way you do it.
Arguments
Let’s say you want arguments. Open your scheme (⌘<) and choose the Run > Arguments tab. Add the arguments you wish to cross on launch separately. Double-click to edit any argument:
The arguments are vended byCommandLine.arguments
. Both rely
the array or use CommandLine.argc
to learn the way many arguments you’re coping with.
print(CommandLine.arguments) print(CommandLine.argc)
Counter-intuitively, Xcode doesn’t robotically quote the arguments for you. This produces 5 arguments, not three, or six for those who embrace the command itself:
["/Users/ericasadun/Library/Developer/Xcode/DerivedData/Test-gwehknnihlcsiucsovtbnlrdtfun/Build/Products/Debug/Test", "first", "second", "third", "fourth", "fifth"] 6
And what do you count on from the next?
You get this for those who run instantly in Xcode’s console:
["/Users/ericasadun/Library/Developer/Xcode/DerivedData/Test-gwehknnihlcsiucsovtbnlrdtfun/Build/Products/Debug/Test", "first", "several items at once", "third"] 4 Program ended with exit code: 0
However for those who set your code to execute utilizing Terminal:
Launching: '/Customers/ericasadun/Library/Developer/Xcode/DerivedData/Check-gwehknnihlcsiucsovtbnlrdtfun/Construct/Merchandise/Debug/Check' Working listing: '/Customers/ericasadun/Library/Developer/Xcode/DerivedData/Check-gwehknnihlcsiucsovtbnlrdtfun/Construct/Merchandise/Debug' 3 arguments: argv[0] = '/Customers/ericasadun/Library/Developer/Xcode/DerivedData/Check-gwehknnihlcsiucsovtbnlrdtfun/Construct/Merchandise/Debug/Check' argv[1] = 'first' argv[2] = 'a number of' ["/Users/ericasadun/Library/Developer/Xcode/DerivedData/Test-gwehknnihlcsiucsovtbnlrdtfun/Build/Products/Debug/Test", "first", "several"] 3
Xcode’s Loopy Terminal Choice
If you happen to’re operating something with direct key enter (utilizing POSIX termios/uncooked mode) or curses, operating within the console doesn’t work. So Xcode gives a approach to run these utilities within the terminal. Go to Run > Choices and scroll all the best way down.
This characteristic is buggy as hell, produces ridiculous quantities of extra textual content (see this), can take a major time to launch, and much more time for Xcode to understand the method has completed. It’s unimaginable to make use of with paths that use areas (“warning: working listing does not exist: '/Volumes/Kiku/Xcode/Derived'
“).
I don’t prefer it. I don’t use it. But it surely exists.
Sane Command-Line Execution
Until you’re coping with issues like automation and such, you’ll be able to check out your compiled command-line apps by dragging your executable from the Merchandise group onto the terminal. This locations the trail to your construct on the immediate. Sort out your arguments and press return:
Nevertheless, I desire to make use of a Copy File construct part. Choose your Goal > Construct Phases, click on plus (+) and add the executable. (I take advantage of absolute path and disable “solely when putting in”.) This allows you to set up on to customary areas like /usr/native/bin or ~/bin, or for those who don’t wish to place it there till it’s steady and prepared for deployment, you should utilize a growth folder:
Assuming your vacation spot is in your shell’s path, begin a brand new shell for the executable to be picked up the primary time. After that, you’ll be able to compile and run as you want.
Associated
[ad_2]