Visual Studio 2019 and iOS: native linking failed - xamarin.forms

I have my Xamarin solution in Visual Studio 2019 for Windows. I can build the solution for UWP and Android but I receive a lot of errors when I try to compile the project for iOS. Here the list of errors:
Generally, the errors are similar to the following:
Native linking failed, undefined symbol: _kFIRAppDiagnosticsNotification. Please verify that all the necessary frameworks have been referenced and native libraries are properly linked in.
On my Mac, I have the latest updates for the OS and XCode. Visual Studio 2019 for Mac is installed.
I checked the iOS Build and I changed the Supported Architectures with:
If I use the default value ARM64, Visual Studio compiles the solution but at the end of the copying on the device, there is an error:
APIInternalError: Failed to unhide archs in executable file:///private/var/installd/Library/Caches/com.apple.mobile.installd.staging/temp.ReCcst/extracted/WordBankEasy.iOS.app/WordBankEasy.iOS
Update
I noticed the problem is coming from Xamarin.Firebase.iOS.AdMob version 7.38.0: if I remove it, I can deploy my app on a iOS device.
How can I fix this issue?

Related

Xamarin.Android Build Error for Xamarin Forms 4 Solution

I am trying to compile a newly created Xamarin.Forms solution using Visual Studio Pro 2019 version 16.1.3. I use the stable Xamarin.Forms version 4.0.0.425677. The solution contains an iOS, Android and UWP project.
When I try to compile I get the following Android compilation error even without having made any code changes.
C:\Program Files (x86)\Microsoft Visual Studio\2019\Professional\MSBuild\Xamarin\Android\Xamarin.Android.Common.targets(3326,2): error : A part of the path "AccessibilityManagerCompat_AccessibilityStateChangeListenerImplementor.class" could not be found
The only related post I found was here which recommends to delete bin and obj folders in the Android project. This does not apply since I start with an new solution in the first place. Any ideas what the cause could be?
Well, it turns out that I only get this issue when I have the term "Xamarin" in my Android project name. This seems to confuse the Android compiler.

error XF003: Xamarin.Forms require msbuild. xbuild is no longer supported

I am trying to build an iOS app on Mac, using the latest visual studio emulating as iPhone.
an attempt at debugging results in the error:
../packages/Xamarin.Forms.3.0.0.550146/build/netstandard1.0/Xamarin.Forms.targets: Error XF003: Xamarin.Forms require msbuild. xbuild is no longer supported. (XF003) (Work.App)
I have tried removing the build cache/bin and obj files to no avail, I can't find any resolution to this online.
Any tips?

Unable to load DLL 'SQLite.Interop.dll' on Visual Studio 2017 for UWP project

I get this error when using SQLite.
DllNotFoundException: Unable to load DLL 'SQLite.Interop.dll': The
specified module could not be found. (Exception from HRESULT:
0x8007007E)
I tried several solution without success.
Tried using x86/x64
Tried this:
Visual Studio 2017 Xamarin UWP break, unable to load "sqlite3"
Added 2015 Visual C++ runtime dependency for UWP.
Tried manually adding the .dll and set it to "copy always".
Tried installing locally depedencies from here
I'm really out of ideas.
I had this problem running in release but not in debug.
I am using VS2017 15.9.5
Using Release manager I changed all the projects to use Release x64
Strangely the Platform tab asked me to make a new Platform and I had to do this in order to be able to pick an x64 platform
I wound up installing the SQLite modules in all the projects, not just the data tier. it would not work with just the data tier, even though I had Copy local true.
Here are the nuget packages I used

Android Debugging Failing With "Couldn't connect to logcat, GetProcessId returned: 0" FFImageLoading.Platform.dll.so Not Found

I am having issue debugging Android project. I can deploy to device and run it, all works fine but if I try to debug, the app gets deployed to the device and very briefly opened, splash screen shows up but the app then closes.
I am using Xamarin Forms on Visual Studio 2015.
Device is running Android Oreo (8.0.0). Another device running Android 6.0.1 is debugging fine.
The output shows following:
InspectorDebugSession(11): StateChange: Start -> EntryPointBreakpointRegistered
InspectorDebugSession(11): Constructed
Android application is debugging.
InspectorDebugSession(11): HandleTargetEvent: TargetExited
InspectorDebugSession(11): Disposed
Couldn't connect to logcat, GetProcessId returned: 0
I checked Logcat and it seem to be having issues finding FFImageLoading library:
Time Device Name Type PID Tag Message
09-18 14:35:52.361 Huawei Nexus 6P Debug 1560 Mono AOT:
image '/usr/local/lib/mono/aot-cache/arm/FFImageLoading.Platform.dll.so'
not found: dlopen failed: library "/data/app/myapp.android.dev-
WEb1bz8edgF7vwx6uCoZ-A==/lib/arm/libaot-FFImageLoading.Platform.dll.so" not found
I have added Nuget package for FFImageLoading to my projects and Droid project references show it as in image below:
This worked for me :-
Deselecting the 'Use Shared Runtime' in Project Properties > Android
Options > Packaging properties
I also had this issue with Android 8.1 and Visual Studio 2017 15.7.4.
There are three steps to got it working again.
Under Android Options, go to Advanced and add your device architecture, in my case it was x86_64.
Go to Tools -> Options -> Xamarin > Android Settings and enable: Provide debug symbols for shared runtime and base class libraries.
And the final step is to delete following Apps from your device:
All Xamarin.Android API Support libraries
Mono Shared Runtime
Your App
After these steps you don't need to disable "Use Shared Runtime" and can Deploy and Debug much faster.
This is a known issue with Oreo and Xamarin Android on Visual Studio for Windows. It works on Visual Studio for Mac apparently. It will be fixed in an upcoming release. In the mean time there is a work around down near the bottom of the bug link above (comment 20).
deselecting 'Use Shared Runtime' in Project Properties > Android Options
delete bin & obj files from solution
clean solution
rebuild the solution it works
One another reason for that is if you dont enable usb debugging on your device, VS 2017 still recognizes your phone and installs the app on your phone. Just after debugging starts, it will throw this error and not continue debugging. Make sure to enable Developer Mode -> Usb debugging like described here
https://learn.microsoft.com/en-us/xamarin/android/get-started/installation/set-up-device-for-development

Visual Studio 2015 Cordova iOS .ipa Location

I'm trying to release an iOS app built using Visual Studio 2015 Cordova Tools. I can deploy to the simulator and to my device just fine. But I can't find where the .ipa file is being created? My bin/iOS/release folder is empty even after cleaning solution, restarting, and rebuilding.
I have not tried with the latest versions, but I never found that I could build a release version from VS for iOS. I always went and opened the project on the Mac with XCode, using the project in the remote-build folder, tweaked the project settings (VS project never seems to allow multiple device orientations, I need to check on the others, choose the correct developer profile, and usually correct the bundle identifier). Then build and submit to app store from XCode as a normal iOS app.
Perhaps the latest versions are better on this, but I doubt you will find the app bundle in your VS solution folders, it would have to be on the Mac.

Resources