I'm a .NET developer and want to write an IOS & Android app in C#. I've had a read around Xamarin for Visual Studio which looks interesting if not a tad expensive!
Do you need a Mac to debug your code? Do you just need a networked Mac to actually deploy the app to the Store?
Is the best option just to buy a Mac and run Windows with VS in a VM or can I just use my windows machine, write & debug the code in Windows then just hook up to a networked Mac for final deployment?
From May 2017, you can develop app without MAC.
Microsoft Xamarin introduce a Live Player. With Live Player, iOS apps can be deployed directly onto an iPhone or other iDevice from a PC running Visual Studio, where the code can then be tested and debugged.
WARNING The Xamarin Live Player Preview has ended. But it changed Hot Reload. With this feature, you can develop iOS app with your iPhone See discussion
See this video: https://www.youtube.com/watch?v=awgZDL1a3YI
this is Live Player Get start section: Live Player
Note: The final build and submission to the App Store will still require a Mac
Device Requirements
The Xamarin Live Player app supports the following devices:
iOS
iOS 9.0 or later.
ARM64 processor.
Check the App Store for a list of supported devices.
Android
Android 4.2 or later.
ARM-v7a, ARM-v8a, ARM64-v8a, x86, or x86_64 processor.
Limitations
There are some limitations on the things Xamarin Live Player can run, including the items below:
Android user interfaces designed with AXML files are not currently supported.
Some iOS storyboard features are not supported.
iOS XIB files are not supported.
Custom Renderers are not supported.
Xamarin.Forms Effects are not supported.
Embedded resources are not supported (ie. embedding images or other resources in a PCL).
Limited support for reflection (currently affects some popular NuGets, like SQLite and Json.NET). Other NuGets are still supported.
Some system classes cannot be overridden (for example, you cannot implement a subclass).
Some platform features that require provisioning can't work in the Xamarin Live Player app (however it has been configured for common operations like camera access).
Custom targets and build steps are ignored. For example, tools like Fody cannot be incorporated.
Yes, you must have a Mac to do Xamarin.iOS development. The Mac is required for building as well as running the iOS simulator. You can either use it as a build server, and actually do your development in Visual Studio (either in a standalone PC, or on a VM running on your Mac), or you can do your development directly on the Mac using Xamarin Studio as your IDE.
You can use Xamarin Studio instead of Visual Studio and build iOS application by C#.
First install VMware Workstation and then download OS X image and run it by VMware.
Then Install tools on it and enjoy.
Tools :
EDIT : The following links are out dated, You must install Mac OS 10.10 in order to be able to install XCode 6.
iOS Tools that you need:
1) Mac OS X image for Windows
Note: Max OS X Installation Help:
http://www.sysprobs.com/easily-run-mac-os-x-10-8-mountain-lion-retail-on-pc-with-vmware-image
2) Mono:
http://download.xamarin.com/MonoFrameworkMDK/Macx86/MonoFramework-MDK-3.2.4.macos10.xamarin.x86.pkg
3) Xamarin Studio:
http://download.xamarin.com/studio/Mac/XamarinStudio-4.2.1-1.dmg
4) MonoTouch:
http://download.xamarin.com/MonoTouch/Mac/monotouch-7.0.4.209.pkg
5) Xcode
Update 2018
Install VirtualBox
https://www.virtualbox.org/
Install MacOs 10.13 on VirtualBox
https://techsviewer.com/install-macos-high-sierra-virtualbox-windows/
Create or login with an apple account on the mac
Install XCode 9.0
https://download.developer.apple.com/Developer_Tools/Xcode_9/Xcode_9.xip
Enable Remote Login
System Preferences > Sharing > Remote Login > Enable for All Users
Configure VirtualBox with an additional network adaptor (host-only)
In Windows > Visual Studio (Xamarin Project) > Pair with mac
Enter the IPaddress of the second network adaptor
Let Visual studio install Xamarin IOS, IOS SDK, additional tools on the Mac
All set up.
An option is to use a remote service to do this.
For example:
http://www.macincloud.com
Anybody know that a Virtual-Machine is the solution! but when you want to have an OSX on windows it's not really easy as you just talked about it.
it's very important to find best OS ROM.
check it out here.
and you have to know that limitation is Apple's doing, not Xamarin's.
As someone that developed 3 Xamarin Forms apps, I would like to bring some points about the options:
Pair with a virtual Mac (VMWare, VirtualBox or cloud)
I worked this way for a while, but virtual machines consume a lot of hardware resources. Paid for a month to use a remote Mac, but the pairing and debugging process does not get much better.
Develop inside a virtual macOS
I have been using this option with good results. I just run everything on the macOS VMware virtual machine. Visual Studio and Emulator got a little slow (my CPU is i5 and 8GB ram), but is acceptable to make some adjusts. Advantages: Avoid pairing, Xcode to edit some resources, publishing.
Install macOS on Windows PC
This is kind of upgraded of previous suggestion. Didn't tested yet, but the performance should be better than VMWare if it works. They call this Hackintosh and is possible if your hardware is compatible.
Related
Can a C# app prototype be developed on my iPad Pro by using ONLY Visual Studio with Xamarin, on my Windows 10 Pro computer without buying (ie. using) a Mac?
Initially, for rapid development of non-distribution prototype, I want to use only VS 2017 Pro & Xamarin on Windows 10 to develop and test an app on my iPad Pro 12.9".
App will talk to other system components by WiFi, and utilize new iPad Pro features like pen and its high quality screen, for augmented reality.
Can get Mac later, in order to deploy on Apple store.
Can I truly develop, deploy onto actual iPad, and debug 100% with only VS & Xamarin, and without Mac and Xcode?
This Microsoft article about its Xamarin Live Player is confusing to me because it reads "the source code is interpreted" which I don't want, and later it reads "The app runs right on your phone or tablet." is I want.
Yes, a mac is required to build and debug iOS apps.
However, VSTS does allow you access to a mac build host which can build and deploy to TestFlight and the AppStore, if required (and if configured correctly). This won't allow you to debug and step through your code on a device or in the iOS Simulator, however. For that you need the Mac with High Sierra and the latest XCode installed.
Xamarin Live Player is in preview only and is only really useful for simple apps at the moment.
So, the answer is the company needs to buy me a new Mac. Yum.
The bad news is that it's back to using Xcode again. Two years ago, the star rating of Xcode on Apple Store was a mere 2-stars. It would be nice if the tool to develop on iOS was as easy to use as iOS. But, that's what Stackoverflow is for, I guess. :)
Whilst the existing answers/comments are correct I thought I'd add my own experience with this
If, like me, you won't use the mac for anything other than a build server for xamarin, I can say that a mac mini is fine for this, and will allow you to build apps. Just make sure you connect visual studio on your PC to the mac.
It's also worth noting, that more recently Visual studio team services has started using a hosted macOS build host. I haven't used this myself as I bought a mac mini, but in theory, if you use VSTS you might be able to build and deploy your iOS apps. I would suggest that you check it out.
https://learn.microsoft.com/en-gb/vsts/pipelines/apps/mobile/xamarin?view=vsts&tabs=vsts
https://blogs.msdn.microsoft.com/devops/2017/11/16/cloud-hosted-mac-agents-for-ci-cd-pipelines/
Sadly this has always been the case with xamarin and it's the way apple licensing works.
Is it possible that ,without using a Mac OS X and XCode, one can create apps for iOS using Visual Studio 2013 on a Windows 7 system ? If yes, then is Swift or Coca Touch available for Visual Studio or can I make do with C# while writing code ?
You can sort of do this with Xamarin, as well as building Android applications. You still need to have a Mac in order to build iOS/Mac OS X applications, but you don't need to interact with it directly - it just needs to be on the network in order to complete the build the app, for licensing reasons. On the other hand, to run/debug the app, you'll either need a device plugged into your Mac, or run the emulator on your Mac. (Personally I have a Mac Mini for this purpose, and it's on my KVM... so I don't use it directly very often, but it's available when I need it.)
This is not building code in Swift or Objective-C - it's using C# which is then ahead-of-time compiled into native code. The Cocoa Touch libraries are exposed to your C# code so you're still using the same widgets etc... you're just building in C#.
No you can't do iOS development without Mac OS X and xCode.
However if you want to develop iOS apps in c# then you can use Xamarin.iOS for Visual Studio but keep in mind you will need a mac with xCode connected in your network to build the code.
I downloaded Xamarin Studio and Visual Studio, but I still don't see any options in either of those programs for programming iOS apps. Is programming for iOS even possible on a PC?
Using Xamarin with a business license, you can use Visual Studio on a PC for development, but you MUST have a Mac running as a build server. The iOS native SDK and Apple iOS simulator tools are only available on a Mac, and Xamarin depends on them as part of the build process.
You cannot create a native iOS app using a windows based machine. iOS apps can be developed using XCode only and XCode can be installed on mac only.
So in simple words there is no "direct" way of creating an iOS app from windows machine. I guess you should have searched on google first before asking this question.
I know I need a mac to deploy but can I at least use my PC to develop the application? It would really help me a lot if I can develop on Windows where I can focus on writing the app.
This answer covers only Xamarin 2.0. Unfortunately I don't know MonoTouch.
Take a look at this statement about Xamarin 2.0:
Xamarin 2.0 bundles the company's Android, iOS and Mac development
tools in a single affordable package aimed at all tiers of developers.
The free Starter edition includes the Xamarin Studio IDE enables
developers to create Android, iOS and Mac apps using C#. However, the
free edition doesn't allow developers to exceed 32k of compiled IL
code and it cannot import or call upon any third-party libraries. The
$299 Indie edition removes this restriction. Things start getting
really interesting for .NET developers with Xamarin Studio's $999
Business edition. This version adds the ability to code iOS
applications within Visual Studio. Yes, you read correctly — code
iOS applications in Visual Studio! Granted, you still need a Mac to
compile and deploy the application to iOS devices (more on that
later), but the fact that you can use a familiar IDE to develop iOS
applications is a game changer.
To make it short: Yes you will need a mac to deploy your application and
yes you can develop on windows using Visual Studio.
Source: http://www.drdobbs.com/tools/xamarin-20-review/240150634
No you don't need the 1 k version to compile on windows. When you want to deploy your app you need to buy it! If u are making a app for windows 8 or whatever you dont need to pay. Monogame is a open source project. For the deployment to the phones your paying to the xamarin project.
"This means that your Xamarin iOS for Visual Studio installation requires a networked Mac OS-X computer to perform these tasks for you. Once configured, Xamarin’s tools will make the process as seamless as possible, but the fact remains that a Mac is required in addition to the Windows computer running Visual Studio."
So still need to hook up my mac and perform all the installations and configurations. Will take time but not a deal breaker I guess.
It is possible to use cloud build services for such a task. One such service worth giving a try is http://ship.io - they offer a free plan to get started.
I'm evaluating a Xamarin Studio indie license which does not include VS integration - Correct me if I am wrong. But I want to know if it's possible to use Xamarin Studio to do iOS development? I'm very interested in the new feature of iOS designer announced at Xamarin Evolve, ideally it shall be possible too on Windows.
If the answer is yes, how?
Currently it is not possible to develop for iOS using Xamarin Studio on Windows.
If you want to use Windows, you can use Visual Studio.
If you want to use Xamarin Studio, you can do so on a Mac.
Note that you will always need a Mac around, even if you're using Visual Studio.
While not specifically answering the question, it should be noted that it is possible to develop for iOS in Visual Studios using a connected Mac as a build host. This connected Mac could either be through the network or can even be a VM running from your Windows machine.
We can use xamarin studio in Mac OS only. If you want to use xamarin in windows you need to download xamarin plug in to visual studio from xamarin.com. Also you must need Mac Os as virtually running on windows for debugging and seeing output. User interface design should only performs on Mac OS Xcode SDK. So only we need Mac OS virtual machine on windows. In visual Studio IOS project file having .xib file (i.e) Xcode Interface builder, in that file only we need to design user interface configurations using xcode on Mac OS.
Using Mac build Host you can do but you'll need the networked mac for developing and debugging too.
or else you can use Xamarin Live Player using which you can debug,develop and deploy the app completely in windows without the help of any Apple system but to sign and release the app to appstore you will need Apple System though
You can code your whole iOS application of from Visual Studio in windows.
When it comes to execution of application, you have to have MAC machine. You can connect your MAC to windows on Network by Mac build Host in order to run, debug your application in windows.
For more information follow this link.
Currently it is not possible to run Apple iOS emulator on windows.
See the official documentation given on url Installing Xamarin.iOS on Windows in Xamarin Developer Documentation which says :-
There are some tasks that Xamarion.iOS for Visual Studio currently cannot do i.e
No iOS simulator on Windows – The iOS Simulator runs on Mac OS X, so
it’s necessary to switch to the Mac’s screen when testing on the
simulator
http://docs.xamarin.com/guides/ios/getting_started/introduction_to_xamarin_ios_for_visual_studio/ says
Xamarin iOS for Visual Studio allows iOS applications to be written and tested on Windows computers, with a networked Mac providing the build and deployment service.
So I think you can do developing and testing (debugging?) but not building nor deploying. CMIIW.