Xamarin으로 Linux 애플리케이션을 개발할 수 있습니까?


81

동일한 코드 기반으로 Xamarin을 사용하여 Linux 애플리케이션을 개발하고 빌드 할 수 있습니까?

우분투를 사용하고 몇 년이 지난 지금의 주요 OS는 다시 Windows입니다. 하지만 Mac으로 전환 할 수 있다는 것은 불가능하지 않습니다.

지금은 Qt에 대한 약간의 경험이 있고 Xamarin에 대한 경험이 없습니다. Qt를 사용하면 Windows, Linux 및 Mac 에서 개발할 수 있으며 에 대한 윈도우, 리눅스, 맥, 아이폰 OS, 안드로이드, 윈도우 모바일, ... 그들은 그것에 대해 꽤 명확하다.

Xamarin은 현재 무료이며 오픈 소스이며 Qt에 대한 경험이 많지 않기 때문에 Qt 대신 크로스 플랫폼 개발을 위해 Xamarin을 사용해 볼 것을 고려하고 있습니다.

내 소프트웨어를 Linux 용으로 출시 할 수 없다는 것은 나에게 거래를 방해 할 수 있습니다. Linux에서 개발할 수 있다는 것은 좋지만 선택 사항입니다. 그러나 모든 내 Google 조사 후, 나는 단지 정보 및 개발 지원을 요청하는 사람들을 찾을 수 리눅스와하지 에 대한 리눅스를.

내가 아는 한 이것은 Mono만으로는 문제가되지 않습니다. 하지만 내가 아는 한 Xamarin> Mono와 Mono에서 모든 것을 얻지는 못합니다. Xamarin에서 얻을 수 있습니다.

또한 앞으로 Mono가 얼마나 잘 지원 될지 확신 할 수 없습니다. 나에게는 Xamarin이 Mono 자체보다 Microsoft에 훨씬 더 중요한 것처럼 보입니다.

Xamarin이 Mono를 기반으로하기 때문에 가능한지 확실하지 않지만 Microsoft는 언젠가 Xamarin과 같은 방식으로 .NET 호환성이있는 Mono를 지원하지 않기로 결정하거나 Mono를 독립 실행 형으로 완전히 취소 할 수 있습니다. ?

따라서 저는 신뢰할 수있는 모든 데스크톱 및 모바일 플랫폼에 대해 하나의 단일 프레임 워크를 찾고 있습니다. Xamarin 및 / 또는 Mono 및 / 또는 Xamarin + Mono가 Qt의 대안이 될 수 있는지 알고 싶습니다. 그 솔루션의.

답변:


62

다른 사람이이 질문 / 답변을 건너 오면 상황이 변경되었습니다. Xamarin.Forms 3.0에서는 Gtk #이 지원됩니다 (현재 미리보기). 따라서 전체 Linux GUI 지원이 활성화됩니다.

따라서 Xamarin은 이제 다음을 다룹니다.

남은 것은 Xamarin의 일부인 JS / HTML5 Web App 대상 플랫폼입니다. :)


다른 것들은 자 마린에 대한 위시 : 실제로 전화를 할 수있는 능력 및 반환 C # 함수를 JS에서 ...
알렉산더

1
Xamarin.Mac도 macOS를 다룬다 고 생각합니까?
Franklin Yu

1
원하는 "JS / HTML5 웹 앱 대상 플랫폼"을 적절한 방식으로 다룰 수 있는지 확실하지 않으므로 콘텐츠는 여전히 깨끗한 HTML이며 웹 크롤러 및 이와 유사한 것들에 의해 처리 될 수 있습니다. 그러나 "어떻게 든 작동"하는 JS / HTML5 / WebAssembly UI는 이미 이점이 될 것입니다. 실제 기본 HTML 경험을 얻기 위해 당신은 Blazor 체크 아웃한다
토마스 할러

1
GTK #은 Microsoft에서 지원하지 않으며 Microsoft가 기여하거나 관심을 두지 않는 커뮤니티 전용 노력입니다. 리눅스에서 개발하는 것은 불가능하며, 윈도우에서 빌드 한 후 리눅스에서만 사용할 수 있습니다. Xamarin.Forms UI 디자이너는 Linux에서 전혀 사용할 수 없습니다. Microsoft는 이것에 관심이 없습니다.
trampster

46

아니요, Xamarin은 Linux에서 사용할 수 없습니다. 이것은 몇 년 전 Xamarin 팀이 내린 의식적인 결정 이었습니다 .

Miguel de Icaza 2011-08-04 11:52:37 UTC

여기서 QA 문제가 발생합니다.

Linux 지원의 문제점은 대부분의 Linux 배포판이 Mono와 관련하여 약간 떨어져 있기 때문에 우리가 제공하는 모든 비트에 대해 자체 포함 된 Mono 패키징을 만들어야한다는 것입니다.

또한 "Linux"를 광고하는 경우 Linux 배포판과 각 배포판의 버전이 다르기 때문에 12 개의 다른 조합을 QA해야합니다.

아마도 우리는 단일 배포판과 단일 버전 만 지원할 것입니다. 이는 오늘날 Windows / Mac에서 수행해야하는 작업에 더 가깝습니다.

명확히하기 위해 Xamarin 제품군은 Linux (Xamarin Studio, Xamarin.iOS 및 Xamarin.Android)에서 사용할 수 없지만 Xamarin Studio의 기반 인 MonoDevelop과 크로스 플랫폼 .NET 런타임 인 ​​Mono는 확실히 사용할 수 있습니다.

MonoDevelop을 사용하여 데스크탑 소프트웨어를 구축 할 수 있습니다. MonoDevelop 사이트에는 시작에 대한 많은 지침이 있습니다.


감사. 물론 이제 내가 Mono를 사용했을 때 내가 놓친 것이 흥미로울까요? Mono는 Android 및 iOS도 지원하는 것 같습니다. Xamarin의 장점은 단지 IDE (이 경우 장점)이며 Xamarin Test Cloud와 같은 것입니까?
JuSchu

아니면 Xamarin을 사용할 수있는 모든 것에 사용하고 동일한 코드베이스로 Linux 용으로 빌드 할 수 있습니까?
JuSchu

5
@JuSchu Mono는 iOS 및 Android를 지원하지 않습니다. 이것이 Xamarin이 MonoTouch를 Xamarin.iOS로, Android 용 Mono를 Xamarin.Android로 변경 한 이유입니다. 그리고 .NET / Mono는 모든 플랫폼을 지원하기 위해 하나의 코드베이스를 사용하는 것을 목표로하지 않습니다. 코드를 공유 할 수 있지만 모든 줄을 공유하는 것을 꿈꾸지는 않습니다.
Lex Li

1
@JuSchu yep, 비즈니스 로직은 어디에서나 공유 할 수 있지만, 이미 관련 빌드 세션을 확인한 경우 공유 메커니즘이 PCL에서 .NET 표준 라이브러리로 크게 변경되고 있습니다.
Lex Li

7
미구엘 드 이카의 팀이 결정 보인다 리눅스에 대한 자 마린을 지원 :)
Upol Ryskulova

9

Xamarin Forms가 Linux 배포판에서 작동 할 가능성이있는 것 같습니다. 이 reddit 스레드에서 Miguel de Icaza는 다음과 같이 말합니다.

우리 팀원 중 일부는 실제로 Linux에서 개발합니다. 우리가 Linux 도구를 출시하지 않은 이유는 많은 비용을 청구하고 사람들이 소프트웨어가 완전히 지원 될 것이라고 정당하게 기대하기 때문입니다. 우리는 Mac과 Windows 사용자를 만족시키기에 충분했고, 알 수없는 수의 Linux 배포판을 추가하는 것은 어려운 작업처럼 들렸습니다. 이제 우리는 SDK를 오픈 소싱하고 있으며 특정 Linux 구성에서 작동하지 않는 것이 있어도 더 이상 기분이 나쁘지 않을 것이므로 Linux 빌드를 출시하게되어 기쁩니다.

즉, Forms가 오픈 소스 도구라는 사실이 현재 이러한 가능성을 열어줍니다.


5

예, 2018 년 중반부터 "Xamarin.Forms"라이브러리를 사용하여 windows / mac / linux / android / ios를 대상으로하는 크로스 플랫폼 GUI 애플리케이션을 개발할 수 있습니다. 기본적으로 크로스 플랫폼 코드 (UI 및 기타 크로스 플랫폼 항목)에서 하나의 공유 라이브러리 프로젝트가 있고 플랫폼 별 코드를위한 플랫폼 당 하나의 프로젝트가 있습니다 (Xamarin.Forms에는 각 플랫폼에 대해 하나의 백엔드 구현이 있습니다. Linux에서는 GTK를 사용합니다. ).

그러나 MonoDevelop을 사용하면 크로스 플랫폼 프로젝트와 애플리케이션의 Linux 관련 프로젝트 만 개발 / 빌드 할 수 있습니다. 다른 플랫폼 용으로 개발 / 빌드하려면 여전히 Visual Studio 또는 Rider를 사용해야합니다.

다음 답변을 참조하십시오 : https://stackoverflow.com/a/53317021/298005


4

https://github.com/0xFireball/xamarin-android-linux

matthewrdev가 말했듯이 Xamarin.Studio, Xamarin.iOS 및 Xamarin.Android는 "공식적으로"지원되지 않습니다. 그러나 Xamarin.iOS는 어쨌든 가상 에뮬레이터를 사용합니다 (그리고 Linux에서 실행되는 Xamarin.iOS에 대한 해결 방법이 없다고 생각합니다), 그러나 Xamarin Studio (Linux의 MonoDevelop 또는 Jetbrain의 Riders (Linux에서 실행하는 방법) 공식적인 지원도 링크에 제공되지 않음) Linux에서 Xamarin.Studio의 대체로 실행할 수 있으며 내가 공유 한 링크는 Linux에 Xamarin.Android를 설치하는 방법을 설명하므로 Xamarin.iOS의 경우에만 마이그레이션해야합니다. 이중 부팅 또는 sth가 도움이되기를 바랍니다! (저는 Xamarin 사용을 중단했지만이 환경은 Linux에서 Xamarin 개발에 도움이됩니다!)


2
안녕하세요, 링크 된 가이드를 유지합니다. 일부 경로가 변경 되었기 때문에 한동안 고장 났으며 오늘 현재 업데이트되어 작동하는 것으로 확인되었습니다.
n3n7

여전히 작동하는지 확인할 수 있습니다. libzip.so.4 오류에만 문제가 있습니다. 나는 통해 설치했다, 그래서 처음에 그것을 가지고하지 않았다 : apt-get을 libzip4 설치 sudo는
ignacardel
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.