Does Mac Agent for Xamarin require an Apple Developer account? - ios

I am trying to set up Xamarin in Visual Studio 2015 to run iOS apps.
The problem I have is that I cannot connect with my Mac using the 'Mac Agent'.
I believe this is necessary in order to develop iOS on Windows.
I have an open question (here) on it from a technical perspective, but I wanted to check to see that I am not going down the wrong path with my troubleshooting without overloading the original post with a separate question.
And have the new question specific enough as to be picked up by other users asking the same.
Question: Does the use of Visual Studio (and the Mac agent to connect to OSX) require a full license of Xamarin or an Apple Developer account to work?
I can find nothing wrong technically so I'm wondering if the issue is elsewhere.

You should not need an Apple Developer account. However, using the Visual Studio integration requires a Xamarin business license.

Related

How to create IPA package on Windows from Visual Studio 2019 when successfully paired to MAC

I have read the following documentation on setting up and building iOS apps from Visual Studio 2019 on a Windows machine,
Pair to Mac for Xamarin.iOS development
Introduction to Xamarin.iOS for Visual Studio
IPA Support in Xamarin.iOS
Free provisioning for Xamarin.iOS apps
It seems there is tons of critical information missing even after spending days reading and researching on this. When I attempt to build the iOS project is succeeds and shows
Pair to Mac is not connected, so the build will be performed offline. To do a full build please connect and try again.
in the output window. This makes some sense since the documentation clearly states you must have an active connection to a MAC machine. I then open the remote device dialog and click the connect button.
I am now successfully connected to my MAC build machine that has XCode, Mono, etc installed on it. However, this is a modal dialog! No other functionality in Visual Studio is accessible via the UI while this window is open. The fact this is not mentioned anywhere is mind boggling. At this point are you suppose to run the build command from a cmd or powershell? If so, how do I know the command string VS 2019 is running behind the scenes? In general, what is the point of visual studio at all if it allows me to pair to a mac but then prevents you from using the IDE to perform any build functions?
I have figured out the solution for this and its extremely simple. I can't decide if it's stupidity on my part, a terrible and confusing way to present a UI, or a combination of both.
Just select the "X" icon in the upper right-hand corner and close the dialog and you will remain connected.
You can easily confirm that you are still paired to the mac by hovering over this icon in the visual studio toolbar

How to distribute Enterprise Xamarin Forms IOS app to beta testers

I have developed a platform that will provide an Information Security service to Enterprise customers. The front-end is a Xamarin Forms application. A company signs up for the service and their Information Security team members install the app on their mobile devices.
I believe this use is not covered by the Apple Enterprise Developer program. The apps are not stand-alone app-store type apps. I cannot install by physically connecting the user’s iphone to my dev machine.
Is there a way to do this other than Test Flight? I am using Visual Studio 2019 from a Windows 10 PC (with a Mac on the same network, of course).
Have you looked at Visual Studio App Center? Not sure if it will fit your exact deployment needs but it may be something to look at if you haven't. I've just started using it and have had some success... but also some headaches too. Android distribution is a breeze but IOS in any shape form or fashion makes it difficult outside of their app store in my opinion.

What is the Recommended Approach to Automate IOS devices on Windows?

I've seen this topic going around and the answers on each site and post have given it a wide range when talking about how to automate IOS devices from Windows PC.
One side, I've seen it where mainly the answer is: it's not possible due to Apple's rules, or its really messy to set up and not worth the effort to maintain, (though not explained in detail why its messy.) On the other side, I've read articles and posts about recommendations of IOS simulators such as iPadian, Smartface, etc; along with articles suggesting to stay from this software recommendations stating that they likely contain malware and viruses.
I've found other sources suggesting Experitest, Appium Studio, Quamotion, TestProject to test and automate IOS on Windows PC. However, after reading the concerns of being cautious around these sites, and unable to proof if these studios/software legitimately support simulating real IOS environments on Windows and the arguments that are against going this approach, I can't tell which sources are reliable on this topic anymore.
The interest for me asking this question, as you can guess, is that I want to find a way to automate IOS on Windows and experience how run tests on iPhone.
I usually write my code in Eclipse Studio and use Oracle VM to create Android Emulators to test on. I'm fine if I need to have a physical IOS device in order to test.
All advice is appreciated.
Thank you
The best option I would suggest to automate iOS app on Windows is to use cloud based solution like BrowserStack, SauceLabs, etc.
This way you're sure that you will be using actual iOS device and the app would behave the same way as it would on real physical iOS device.
You can even inspect the app using Appium inspector and run the tests with ease as well.
The only drawback of using such solution is that most of them don't support latest version of Appium.
So the work around for this would be to setup Microsoft Azure DevOps pipeline on Mac OSX virtual machine and use latest Appium server version.
The tools you mention - Experitest, Appium Studio, Quamotion,... all use the same approach: they communicate with real, physical iOS devices over a USB connection and then launch an agent (WebDriverAgent or similar) on the device which you can use to automate iOS devices.
They will usually require you to at least configure an iOS developer certificate and provisioning profile (much like you would when you are testing on a Mac).
Most of them also offer you a free trial and support, so you can go ahead and install the software and give it a try.

Possible to simulate iOS app with Visual Studio using Windows PC only

I apologize if this has been covered elsewhere. I have researched this topic to the best of my ability but I am still unsure of the answers I have found. I am a senior in college and I am developing an app to essentially act as a remote control for a device that my team is building for our senior capstone project. Everything is progressing fine for the Android app etc., but we are interested in developing an iOS app as well. We were steered toward Visual Studio 2015 or later for this since none of us own a Mac. We do not have an iPhone and we are not interested in trying to actually sell or deploy the app officially. All we really need is a means to simulate the iOS app on a PC and demonstrate that the functionality is still there to control our device.
I have seen several posts stating the requirement of a Mac regardless to, at the least, handle conversions for any app development on a Windows machine. I have also found a couple posts with a potential work around that involved installing a Mac VM, though I am not sure if these are "legal" solutions or not? We do not have it in our project budget to purchase any Mac systems, OS, or cloud services to develop the app. I have only done light work on Macs unrelated to programming so I know very little about what is possible regarding VMs etc.
At this point I am looking for some clarity on whether there is an actual legitimate and legal means to simulate an iOS app using Visual Studio and a Windows PC only? In our case, we would need the simulation to be able to connect to our device wirelessly and control it. It is OK that the physical device would actually be a Windows laptop, the CS department just wants to see that we have developed software that could in theory work on an iOS device. We would be presenting our work in detail during weekly updates so the solution would need to be above the table in all regards.
I apologize if this is answered elsewhere. The options in Visual Studio and most of the guides online are pretty unclear about what you can and can't do specifically under the various project types. We didn't want to get too deep into development with C# only to hit an impassable wall and lose all that time. It seems Apple keeps everything under close guard so I was suspicious about the VM alternatives to having a Mac. Thanks in advance for you time!
You must have a Mac to develop iOS apps, either to act as a build server, or as your primary development machine. Even when using Xamarin, the build tools and iOS Simulator are provided by Apple and will only run on Apple's OS. You can only legally run Mac OS on Apple hardware.
Just to add to the previous (and correct answer imo) which states that you need a mac to legally build IOS apps.
You don't need a powerful mac in order to do the building. I've been using a mac mini as a build server for a year now with no major problems. I wouldn't want to do any actual development on this machine, but it's great for sitting in the corner and doing builds sent via visual studio.
You can still do all IOS Dev on windows with visual studio (connected to the mac for building). Additionally with the enterprise version of VS you can run the IOS simulator on the PC, but again it requires a connected Mac. Although I'm hoping that they will eventually bring this functionality back to community users.
In your specific (academic) case whether or not you do manage to get a mac for building, I would suggest looking at Xamarin Test Cloud for providing evidence that your software will work on a large number of devices.

Problems with my first Visual Studio iOS project

I just tried to start a simple iOS project in Visual Studio, and it's saying that it cannot find a Mac Build Host. Most frustrating of all, the Xamarin site has no information at all on what a Mac Build Host is. I've popped up the command prompt in Windows and perfectly able to ping my Mac machine, so it's definitely viewable from Windows.
I'm guessing it's got to be some kind of a background process that needs to run on the Mac, but nowhere in the Xamarin site tells me where I can get it.
Help!
<vent>
P.S. I'm seriously having second thoughts about "cross platform" and "portability" and "reuse existing C# skills" jargon from Xamarin. It was way, way easier to get my first app started in simple Objective-C. Xamarin's approach feels like "we will ship you a broken product for $999, and you can help us figure out how to make this more marketable".
</vent>
Edit: After reading everyone's posts, I think I will just use the Xamarin Studio rather than take the Visual Studio approach. It seems like the less complicated approach in the long run for someone like me. Thanks to everyone for your post!
The Xamarin docs site has instructions on how to set up your Mac to act as an iOS build host for Visual Studio. I agree this isn't very clear from the "Connect to a Xamarin.iOS Build Host" dialog, so I've filed a bug.
You can also use Xamarin Studio to develop Xamarin.iOS apps on the Mac. It uses the same project/solution format as Visual Studio, so you can share the solution with VS.
The Mac Build Host is a process which runs on the network-hosted mac you need to connect to from your Windows machine, in order to perform the final app compile and build. I have just installed iOS for Visual Studio, and I had to create a Xamarin account that was associated with the VS install. Also, I had to install Xamarin.iOS on the Mac itself, instructions here:
http://docs.xamarin.com/guides/ios/getting_started/installation/mac/
What wasn't explained properly was that I then had to close VS, open it and create a new iOS project. At this point, a wizard was initiated which used the Xamarin Bonjour service to locate our networked mac and use that as the build host. All the bits came installed with the Xamarin installer, I just had to initiate them by opening up a project.
Obviously this will be different for you using Xamarin Studio, but have you tried creating a new a project to see if this initiates a wizard? Or do you need to install the iOS on your mac as well as Windows?
I have to admit, I'm not entirely sure what is meant by "Mac Build Host" either. I would expect to find something like that if you were using Visual Studio to build with, not Xamarin Studio.
My best guess is that perhaps Xamarin Studio doesn't "see" your iOS development tools setup somehow? Can you go into the Add-in Manager and see what version of iOS development you have in there?
Sorry you're having a bad time with it so far. I've been using it for awhile and it's been fantastic for me so far.
Do you have bonjour installed on your windows machine? This is required for Xamarin studio on windows to talk to your mac build host. Also you need to set up the relationship as follows.
Section 3.1
For anyone else who might have spent a few days going around in circles the answer above that states you need to close VS, open it and create a new iOS project holds the key.
Xamarin really needs to make this much clearer!
Andreas
One further thing I've noticed is that despite my setting the Xamarin Bonjour service to start automatically, it somehow gets reset to Manual. The Xamarin plugin opens the services MMC when I launch Visual Studio and open an existing project when this occurs.
During debugging it's all too easy to stop the VS debugger before the iOS Simulator on the Mac machine has been halted. It works fine if you click on the iPhone Simulator bottom button then command-Q to close the simulator. That drops VS out of debug.
If though VS is stopped before the simulator in some cases this kills the connection and it needs VS to be closed down and restarted. Once or twice it has corrupted the iOS simulator and it comes up with an empty iPhone graphic, instead of the default Photos, Contacts Settings etc icons. In that case close and reopen it and as you start the simulator click on the iOS Simulator menu, then Reset Contents and Settings. That purges the corrupt state and it's all ok after that.
Overall it works well enough to not get in the way of development but any improvements by the Xamarin team are welcomed.

Resources