Testing backwards compatibility of Xamarin Apps - xamarin

We've hit a few cases recently were we have wanted to upgrade local database data structure or the user settings and we've almost broken backwards compatibility.
How do people test there development "Work In Progress" with a
released version of an app?
Do you update your AndroidManifest and
Info.Plist versions after each release? We are currently just
setting them at the time of creating the IPA and that change is not
added back into the repo

Related

Updating apps with Developer Portal doesn't update the application

I'm currently working on my first Teams App which means modifying the manifest.json through the Microsoft Teams Developer Portal. Whenever I make changes and try to update the application through "Preview in Teams" or "Publish to org" it doesn't update to the most recent version.
When I modify the app configurations and version and try to update or publish the application. The changes aren't reflected. When I go to "Apps" in the sidebar and click on my app that is installed and look at the version, only the old version is shown.
Is there a way to make sure MS Teams pulls the most recent version? I tried even quitting teams and opening it again. I have also tried downloading the package and installing it from the package. Still the same version.

Xamarin Visual Studio 15.6.2 creating a mobile app missing UI technology option

I Recently upgraded to the latest Visual Studio first 15.6.1 and then 15.6.2 from 15.4.2 as 15.4.2 was failing to build a release build for me of the app and builds in general were very unstable. I am working on as a proof of concept app.
An upgrade to the latest versions did not help, so I decided to create a smaller app that hopefully built and slowly add functionality to attempt to discover when the process fails. Creating a cross=platform, mobile app, now failed to show the option for UI technology and is then missing all the required references for Xamarin.Forms. I do not see, anywhere that this is a new Feature, so I assume this is a bug.

Xamarin: error MT1108: Could not find developer tools for this 11.0.3 (15A432) device

I started to have this issue once I upgraded my phone to iOS 11.0.3.
It seems that now Visual Studio Community Edition for Mac (v7.2 build 636)
I've tried with both with XCode v9.0 (9A235) and v9.0.1 (9A1004)
This is the error that I receive in the application output in Visual Studio for Mac:
"error MT1108: Could not find developer tools for this 11.0.3 (15A432) device. Please ensure you are using a compatible Xcode version and then connect this device to Xcode to install the development support files."
I've verified that the path is set correctly for xcode-select, so in theory, it should work correctly. I'm almost thinking that the Xamarin toolchain does not yet support iOS v11.0.3
I've also tried deleting the bin/obj folders to no avail.
Might anyone be able to confirm that the Xamarin toolchain is compatible with iOS v11.0.3, and if so are there any special steps that need to be taken to make the toolchain recognize the version?
I can potentially downgrade my device to v11.0.1, but before I do I'd like to know if the toolchain is indeed incompatible.
Please let me know if there is more information that I can provide.
Apple ships some extra development code for devices when it release Xcode (an additional disk image to be loaded by the operating system).
In general Xcode ships them for everything it support at that point of time. Which means that when a newer version of iOS is shipped after the Xcode release the missing disk image might be unavailable until an updated Xcode is released (Apple can't guarantee future compatibility of the disk image).
E.g. for Xcode 9.0 (I don't have 9.0.1 installed)
/Applications/Xcode9.app/Contents//Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0 (15A372)/DeveloperDiskImage.dmg
Xamarin.iOS tries to load the image based on the device version. If it cannot find it it will report the MT1108 error. A potential workaround would be to rename (or copy) the disk image to match your iOS version number. YMMV depending on the changes that Apple introduced in that iOS update.
Note that Xamarin.iOS does not need the disk image for most features. The most visible one, where it's required, is to automatically start the application on devices.
As you found out the deployment works and you can manually start the application and the debugger will connect. I'll update the documentation to include this information.
Update
There was no further Xcode 9.0.x release after iOS 11.0.3. However the next Xcode release (9.1) included support for all 11.0.x versions.
/Applications/Xcode91.app/Contents//Developer/Platforms/iPhoneOS.platform/DeviceSupport/11.0/DeveloperDiskImage.dmg
The shasum of both images are identical so you can assume the one from Xcode9.0 could be renamed/copied without any issue.
Navigate to project folder and delete folders named bin & obj. That should fix the problem.

How can I specify Xamarin version in Appveyor build process?

We use Appveyor for our continuous integration and it automatically includes the latest Xamarin version when creating the build vm.
However, all developers and the mac host for building the iOS app are using the previous version. We are unwilling to upgrade at this point as multiple projects are due to be released within the next few weeks and these big upgrades invariably add days of delay.
As such, it would be great if someone could show me how I can specify the Xamarin version when creating the build Vm. Thanks!
I sent an email to appveyor support and they replied with this partial solution:
I’m afraid we can’t have multiple versions of Xamarin as it ties pretty hard into Visual Studio environment. Maybe in the future they will do it more portable.
You can rollback to the previous build worker image for now. Add image: Previous Visual Studio 2015 to your appveyor.yml or select it on UI (Environment tab of project settings) if you don’t use yml. Of course, it’s not a long term solution as current image will become previous during the next update. It maybe Xamarin issue or the app should be upgraded to Xamarin Latest version.

Xcode side-by-side install. Is it fine to use?

Xcode offers side-by-side install. However, I haven't tried it but now I'm being pressured to test the new beta SDK (for future projects) while keeping my current SDK environment (for current production). So I'm considering a side-by-side install.
Currently Xcode 4 is not stable enough, but before to install, I want to know possible issues with a side-by-side installation. I'm preparing Xcode 3.x (legacy) and Xcode 4.2 (beta) addition to current 4.0.x.
You shouldn't have any difficulties. I've been running side-by-side installations of Xcode for years now, no problems.
Helpful hint: Modify the icons for the different Xcode installations to differentiate between SDK versions. Mixing up beta and production environments has caused issues for me in the past. Cached link to my post on the subject, since my blog is currently down.

Resources