Does KMM works in Android Studio - Windows Version - windows

I need to build an app for both iOS and Android.
I am getting this error after restarting Android Studio.
Kotlin Multiplatform Mobile plugin issue
Kotlin Multiplatform Mobile plugin is supposed to work on macOS only
I am using a windows machine.
Please tell me, if there is any solution to this problem.

KMM works in Windows.
There is an incorrect warning shown in Android Studio for the plugin stating "KMM Plugin is only available on macOS", which is probably the reason for the confusion.
Note: Though KMM works in Windows Machine, there are limitations.
Using a Windows machine, you can only write Android and shared module code
(Java & Kotlin).
Creating and running iOS simulators are NOT possible.
These are limitations from Apple rather than from KMM.
They are applicable for most of the cross-platform technologies like KMM, Flutter, etc.
Refer to this thread for more info.

Related

Getting 'Selected scheme "iosApp" does not support "iphonesimulator"' error for Kotlin Multiplatform

I am trying to run the initial example apps generated by the Kotlin Multi Platform Mobile plugin in Android Studio. I followed these steps for my environment setup. The Android Simulator runs correctly, but the iPhone Simulator does not. The Run Configuration has the following error:
Error: Selected scheme "iosApp" does not support "iphonesimulator"
When I run the configuration (ignoring the error), the iPhone simulator does open and appears to load iOS, but it never loads the "Hello, iOS" application that is in Android Studio.
What would cause this?
Version Information:
macOS 12.2.1
Android Studio 2021.1.1 Patch 2
Xcode 13.3
I fixed it with the following method.
Please close the Android Studio.
Go to ~/Library/LaunchAgents/ folder and delete com.jetbrains.AppCode.BridgeService.plist there.
Launch Android Studio with the KMM plugin again. It should work now.
From my tests, it seems that there may be multiple reasons for which we receive this error:
the root folder of the ios project has a different name than the .xcodeproject file. Sometimes it works even if they are different and maybe it matters if we change this name after the frameworks was already connected to the iOS project.
"Other linker flags" were manually copied and they were not copied using the copy button from the Connect the framework to your iOS project. This results to wrong data like:
"$(inherited)",
"-framework",
"shared\n",
instead of
"$(inherited)",
"-framework",
shared,
I managed to fix this by going into Edit Configurations on Android Studio and choosing the location of my XCode project file again. I believe this is an error of the KMM plugin in Android Studio and has yet to be fixed.
Updating Android Studio and KMM plugin worked for me.

Xamarin iOS GUI

We've been developing a cross-platform app in Xamarin on Windows and now we are moving to make GUI for iOS counterpart.
If I'm understanding correctly we need to switch to Visual Studio for MAC, on a MAC machine, and continue our GUI development there.
Is it possible to develop everything on Windows and just publish an app on the MAC machine?
How do we include the logic and everything from the android app?
You can use Xamarin.Forms to develop UI for both Android and iOS.
But if its already native then you can still continue developing it in Windows.
For the build and testing you definitely need a MAC, if you don't want to use a VM then you can build it on the cloud using a https://www.macincloud.com/ or other party that uses the same service, and use a simulator on windows.
If its cross platform then I assume you're using a .NET Standard for the shared codebase. So there would be no problem using the same logic for both the Android and iOS.
It is up to you. Many apps will work by just publishing on the Mac. Of those many will have some artifacts that shouldn't be in the end version.
To simplify it is like asking whether you should publish the app without testing and fixing. In 99% no, but sometimes it may work.

Xamarin SDK was not found for JetBrains Rider

I am hoping to work with Xamarin for a project, primarily to learn a little about cross-platform app development, and would prefer to stick to developing on Linux. This led me to attempt to work with the JetBrains Rider IDE, something that I believed to be fairly well documented, as per these resources:
Xamarin.Android on Linux (in coordination with its Ubuntu 19.04 update post)
Failed to load Xamarin Forms project with .NET Standard 2.0 Lib in Rider
0xFireball's Xamarin.Android on Linux guide with associated Rider/IDE setup
I've been able to install everything just fine, Android Studio and Rider were installed via JetBrains Toolbox (I also tried installing Rider manually, but it made no change), and I am able to create the project and configure the Android settings for the Xamarin project.
This is where my luck ends, since despite trying the various resources I've linked above, including reinstalling mono and dotnet-sdk multiple times, I get this error no matter what I try:
Xamarin SDK was not found: Rider was unable to find Xamarin SDK on
this machine. Xamarin-based projects will not be loaded. Please
install Xamarin SDK or change toolset.
I've tried following the instructions both on a manually installed Rider 2019.1.3 (Build #RD-191.7141.460) and Rider 2019.2 EAP (Build #RD-192.5895.291).
I'm fairly new to the world of Xamarin, so I'm not sure where to begin looking. What exactly is the Xamarin SDK (is it just Xamarin.Android?), and what should I be checking my setup for in order for Rider to detect the Xamarin SDK?
It appears that what Rider installs via its Environment page, is only the Xamarin Android package. Not the actually Android Studio SDK, which is needed to develop any android apps. You have to download that separately.

Rider 2018.1 iOS simulator not running after build

I have a Xamarin iOS and Android project with a dotnet standard 2.0 library that is being shared between the two operating systems. When trying to run my iOS project, the project build fine and doesn't give any errors but Rider cannot seem to deploy it to a simulator.
I will give the following error:
I thought it could be the problem what is described here, but that did not help. When running the project in VS on MacOs, the iOS project also build and runs on a simulator.
Failed to load Xamarin Forms project with .NET Standard 2.0 Lib in Rider
Can anyone help me trying to fix this, please?
You are not the only one with this problem, the problem is already reported multiple time in Riders issue tracker:
https://youtrack.jetbrains.com/issue/RIDER-15544
https://youtrack.jetbrains.com/issue/RIDER-15514
https://youtrack.jetbrains.com/issue/RIDER-15419
According to the last issue, it's fixed in Rider 2018.2, which will probably be released pretty soon.

Behaviors SDK Not available in Vs2017

I've developed a UWP project with Behaviors SDK in VS2015 (Windows 10).
Then I've installed VS2017 and tried to run the app without any changes. Unfortunately I'm getting below error for Behaviors SDK.
Are there any solution or workaround for this problem?
Reference Image:
Error Output:
error MSB3774: Could not find SDK "BehaviorsXamlSDKManaged, Version=12.0"
You should use the Microsoft.Xaml.Behaviors.Uwp.Managed nuget package instead (or Microsoft.Xaml.Behaviors.Uwp.Native if you develop your application in C++). The source code of these packages are available on GitHub.
Behaviors SDK was created for WinRT projects (Windows 8.0/8.1). Microsoft.Xaml.Behaviors.Uwp.Managed package seems to be a recommended replacement for the Behaviors SDK for the UWP applications (even in VS2015).

Resources