-->
After you or your Mac administrator resets the password of your macOS user account, your Mac might ask you to update your keychain password or enter the password of your login keychain.It might also tell you that the system was unable to unlock your login keychain. That's because your login keychain is still using your old password.
This guide describes how to use Pair to Mac to connect Visual Studio 2019to a Mac build host. The same instructions apply to Visual Studio 2017.
Overview
Building native iOS applications requires access to Apple's build tools,which only run on a Mac. Because of this, Visual Studio 2019 must connect toa network-accessible Mac to build Xamarin.iOS applications.
Visual Studio 2019's Pair to Mac feature discovers, connects to,authenticates with, and remembers Mac build hosts so that Windows-basediOS developers can work productively.
Pair to Mac enables the following development workflow:
- Developers can write Xamarin.iOS code in Visual Studio 2019.
- Visual Studio 2019 opens a network connection to a Mac build host anduses the build tools on that machine to compile and sign the iOS app.
- There is no need to run a separate application on the Mac – VisualStudio 2019 invokes Mac builds securely over SSH.
- Visual Studio 2019 is notified of changes as soon as they happen. Forexample, when an iOS device is plugged in to the Mac or becomes availableon the network, the iOS Toolbar updates instantly.
- Multiple instances of Visual Studio 2019 can connect to the Macsimultaneously.
- It's possible to use the Windows command-line to build iOS applications.
Note
Before following the instructions in this guide, complete the following steps:
- On a Windows machine, install Visual Studio 2019
- On a Mac, install Xcode and Visual Studio for Mac
- You must manually open Xcode after installing so that it can add any additional components.
If you would prefer not to install Visual Studio for Mac, Visual Studio 2019can automatically configure the Mac build host with Xamarin.iOS and Mono.You must still install and run Xcode.For more information, see Automatic Mac provisioning.
Enable remote login on the Mac
To set up the Mac build host, first enable remote login:
- On the Mac, open System Preferences and go to the Sharing pane.
- Check Remote Login in the Service list.Make sure that it is configured to allow access for All users, orthat your Mac username or group is included in the list of allowedusers.
- If prompted, configure the macOS firewall.If you have set the macOS firewall to block incoming connections, youmay need to allow
mono-sgen
to receive incoming connections. An alertappears to prompt you if this is the case. - If it is on the same network as the Windows machine, the Mac shouldnow be discoverable by Visual Studio 2019. If the Mac is still notdiscoverable, try manually adding a Mac or takea look at the troubleshooting guide.
Connect to the Mac from Visual Studio 2019
Now that remote login is enabled, connect Visual Studio 2019 to the Mac.
- In Visual Studio 2019, open an existing iOS project or create a new oneby choosing File > New > Project and then selecting an iOS projecttemplate.
- Open the Pair to Mac dialog.
- Use the Pair to Mac button iOS toolbar:
- Or, select Tools > iOS > Pair to Mac.
- The Pair to Mac dialog displays a list of all previously-connectedand currently-available Mac build hosts:
- Select a Mac in the list. Click Connect.
- Enter your username and password.
- The first time you connect to any particular Mac, you areprompted to enter your username and password for that machine:TipWhen logging in, use your system username rather than full name. Lbp-810 drivers for mac.
- Pair to Mac uses these credentials to create a new SSH connectionto the Mac. If it succeeds, a key is added to the authorized_keysfile on the Mac. Subsequent connections to the same Mac will loginautomatically.
- Pair to Mac automatically configures the Mac.Starting with Visual Studio 2019 version15.6,Visual Studio 2019 installs or updates Mono and Xamarin.iOS on aconnected Mac build host as needed (note that Xcode must still beinstalled manually). See Automatic Macprovisioning for more details.
- Look for the connection status icon.
- When Visual Studio 2019 is connected to a Mac, that Mac's itemin the Pair to Mac dialog displays an icon indicating thatit is currently connected:There can be only one connected Mac at a time.TipRight-clicking any Mac in the Pair to Mac list brings up a contextmenu that allows you to Connect.., Forget this Mac, orDisconnect:If you choose Forget this Mac, your credentials for the selectedMac will be forgotten. To reconnect to that Mac, you will need to re-enteryour username and password.
If you have successfully paired to a Mac build host, you are ready to buildXamarin.iOS apps in Visual Studio 2019. Take a look at theIntroduction to Xamarin.iOS for Visual Studioguide.
If you have not been able to pair a Mac, try manually adding aMac or take a look at the troubleshootingguide.
Manually add a Mac
If you do not see a particular Mac listed in the Pair to Mac dialog,add it manually:
- Locate your Mac’s IP address.
- Open System Preferences > Sharing > Remote Login on your Mac:
- Alternatively, use the command line. In Terminal, issue this command:Depending on your network configuration, you may need to use aninterface name other than
en0
. For example:en1
,en2
, etc.
- In Visual Studio 2019's Pair to Mac dialog, select Add Mac..:
- Enter the Mac's IP address and click Add:
- Enter your username and password for the Mac:TipWhen logging in, use your system username rather than full name.
- Click Login to connect Visual Studio 2019 to the Mac over SSH and addit to the list of known machines.
Automatic Mac provisioning
Starting with Visual Studio 2019 version 15.6,Pair to Mac automatically provisions a Mac with software necessary forbuilding Xamarin.iOS applications: Mono, Xamarin.iOS (the softwareframework, not the Visual Studio for Mac IDE), and various Xcode-relatedtools (but not Xcode itself).
Important
- Pair to Mac cannot install Xcode; you must manually install it on theMac build host. It is required for Xamarin.iOS development.
- Automatic Mac provisioning requires that remote login isenabled on the Mac, and the Mac must be network-accessible to the Windowsmachine. See Enabling remote login on the Macfor more details.
- Automatic Mac provisioning requires 3GB of free space on the Mac to install Xamarin.iOS.
Pair to Mac performs necessary software installations/updates when VisualStudio 2019 is connecting to theMac.
Mono
Pair to Mac will check to make sure that Mono is installed. If it is notinstalled, Pair to Mac will download and install the latest stable versionof Mono on the Mac.
Progress is indicated by various prompts, as shown by the followingscreenshots (click to zoom):
Install Check | Downloading | Installing |
---|---|---|
Mono |
Xamarin.iOS
Pair to Mac upgrades Xamarin.iOS on the Mac to match the versioninstalled on the Windows machine.
Important
Pair to Mac will not downgrade Xamarin.iOS on the Mac from alpha/betato stable. If you have Visual Studio for Mac installed, set yourrelease channel asfollows:
- If you use Visual Studio 2019, select the Stable updates channel inVisual Studio for Mac.
- If you use Visual Studio 2019 Preview, select the Alpha updateschannel in Visual Studio for Mac.
Progress is indicated by various prompts, as shown by the followingscreenshots (click to zoom):
Install Check | Downloading | Installing |
---|---|---|
Xamarin.iOS |
Xcode tools and license
Pair to Mac will also check to determine whether Xcode has been installedand its license accepted. While Pair to Mac does not install Xcode, itdoes prompt for license acceptance, as shown in the following screenshots(click to zoom):
Install Check | License Acceptance |
---|---|
Xcode |
Additionally, Pair to Mac will install or update various packagesdistributed with Xcode. For example:
- MobileDeviceDevelopment.pkg
- XcodeExtensionSupport.pkg
- MobileDevice.pkg
- XcodeSystemResources.pkg
The installation of these packages happens quickly and without a prompt.
Note
K lite codec pack full for mac. Such as AVI, MKV, MP4, OGM, and FLV.
These tools are distinct from the Xcode Command Line Tools, whichas of macOS 10.9 areinstalled with Xcode.
Troubleshooting automatic Mac provisioning
If you encounter any trouble using automatic Mac provisioning, take a lookat the Visual Studio 2019 IDE logs, stored in%LOCALAPPDATA%XamarinLogs16.0. These logs may contain error messagesto help you better diagnose the failure or get support.
Build iOS apps from the Windows command-line
Pair to Mac supports building Xamarin.iOS applications from the commandline. For example:
The parameters passed to
msbuild
in the above example are:ServerAddress
– The IP address of the Mac build host.ServerUser
– The username to use when logging in to the Mac build host.Use your system username rather than your full name.ServerPassword
– The password to use when logging in to the Mac build host.
Note
Visual Studio 2019 stores
msbuild
in the following directory:C:Program Files (x86)Microsoft Visual Studio2019<Version>MSBuildCurrentBinThe first time Pair to Mac logs in to a particular Mac build host fromeither Visual Studio 2019 or the command-line, it sets up SSH keys. With thesekeys, future logins will not require a username or password. Newlycreated keys are stored in %LOCALAPPDATA%XamarinMonoTouch.
If the
ServerPassword
parameter is omitted from a command-line buildinvocation, Pair to Mac attempts to log in to the Mac build hostusing the saved SSH keys.Summary
This article described how to use Pair to Mac to connect Visual Studio 2019 to aMac build host, enabling Visual Studio 2019 developers to build native iOSapplications with Xamarin.iOS.
Next steps
Mac OS X Tip - No Password, No Root, No CD? No Problem.
by Raena Armitage, 11:00 AM EDT, June 16th, 2003
Say you've lost your account password, you don't have a system CD on hand, and you didn't enable root. Say you have no other way to log into that machine. Say you need access to the files on that machine right now.
Say you're in deep you-know-what, bucko.
Fortunately, there's a five minute fix -- all it takes is a little digging into the command line, and you're on your way. We got this hint from a technician who found himself in the deep end while trying to recover data from a PowerBook on extremely short notice.
My problem was this: I had no MacOS X CD, no user password, and root wasn't enabled.
What I had was this: A MacOS X Laptop that automatically logged in as an administrative user, but prompted me to enter a password whenever I attempted to perform an administrative task. A password I didn't have.
I needed to either reset the password on the logged in account, or enable root access and authenticate as that user. The solution:
- Reboot the machine into single user mode (CMD+S on boot)
- Mount the root file system as read/write (mount -uw /)
- Edit the SUDOERS file (visudo)
- Change all occurences of '(ALL) ALL' to 'NOPASSWD: ALL' (Note: You'll need to know your way around the text editor vi -- check out the vi tutorial in MacOS X Command Line 101 for more. -TMO)
- Save the SUDOERS file and reboot (ESC-w, ESC-q, 'reboot')
- Open a terminal and execute the command 'sudo passwd root'
Voila! I was able to change the root password without being prompted for any other password. This done, I could authenticate as root and do anything I wanted on the box.
Here's the kicker -- this guy is a Windows technician. Who'd have thunk it?
So there's one method, but we discovered this only works if you have an account that automatically logs itself in when you boot the Mac. We're not all so lucky. What to do? We'll one-up this method with a way that works for any user account.
- First, you'll need to reboot into single-user mode. This boots your Mac into a text-only mode (you might be familiar with this experience if you've ever had to run fsck). You'll see instructions on how to run the file system check -- fsck -- and then a command prompt. Enter the command mount -uw / so that we can make changes to the disk.
- Next, you need to be able to make changes to the users' accounts on your Mac in order to reset your password, and we'll do that with NetInfo. Start NetInfo by typing Systemstarter. You'll see a pile of messages appearing, which might seem familiar to you if you've ever watched the startup progress bar. When you see the message System started. and a stationary cursor, hit Return. You'll see the shell prompt appear again.
- Now that NetInfo is running, we can change our lost password. If you don't know the short username for your account (for example, 'jane' instead of 'Jane Doe'), you'll need that - enter the command niutil -list . /users and hit Return, to see the names of the accounts on your Mac.
- Now that you know the name of the account you want to use, enter the command passwd user -- where user is the short name of the account you're changing. You'll be told that you're changing the password for user and asked to enter it twice. Do this, being careful with your typing: you won't see the characters you're typing, or stars. Watch that Caps Lock key, while you're at it.
- Now type reboot and press Return once more to reboot your Mac. You should now have no problem logging in.
There you have it -- two really quick ways to get back into your machine when you're in a pinch. Now don't forget it this time!
The Mac Observer Spin:
On to the dark side of this silver-lined cloud. As the Windows tech noted in his blog entry, no system is secure when you have physical access to it. That's an old adage in the computer industry, and it holds just as true today as it did when security was first becoming an issue umpteen years ago. These two workarounds we are publishing can help you get into a system from which you have been locked out, but they can also help a bad guy get into your system.Mac OS X is a very solid OS with a security record that Microserfs dream about in their fitful and guilt-ridden nights. It's nigh on impossible (at least right now) for someone to gain control of your system remotely, but if they have access to the box itself (or the notebook), and they are determined to do so, they can get your files. Heck, even starting up a Mac in FireWire Target Mode is going to let someone have your system, and if they have a Mac OS X CD, they can just reset the password through the utility included on that CD. So, if you want your system to be secure, mind who has access to it.