jonathanpeppers/boots

How to get the right iOS Links

Closed this issue · 4 comments

I heard about boots on Merge Conflict and it sounded useful. I just want to understand the process of collecting the correct links to pass to the azure pipeline task and will do a PR on the readme once I understand better as collecting the link for iOS was quite confusing (at least to me).

From the readme:

I got each URL from:

[Mono Downloads](https://www.mono-project.com/download/stable/#download-mac)
[Xamarin.Android README](https://github.com/xamarin/xamarin-android)
[Xamarin.iOS Github Status](https://github.com/xamarin/xamarin-macios/commits/d16-4)

For me it's quite clear what to do for the mono & android links.

Mono Link

You just copy the address for the big download button
get the mono link

Android Link

The devs have been very nice and put the links in a table, very clear what to do here. In my case I have d16-6 installed on my mac so I chose that link.

get the android link

iOS Link

Now this one is definitely getting me confused and I have no idea if I am doing the right thing to get the link.

On my development machine (mac) I'm running the following Xamarin.Mac & Xamarin.iOS versions:

Xamarin.Mac
Version: 6.20.2.2 (Visual Studio Professional)
Hash: 817b6f72a
Branch: d16-7
Build date: 2020-07-18 18:44:59-0400
Xamarin.iOS
Version: 14.0.0.0 (Visual Studio Professional)
Hash: 7ec3751a1
Branch: xcode12
Build date: 2020-09-16 11:33:15-0400

The link on the boots docs takes us to the commits for xamarin-macios, branch d16-4. I clicked on a commit and you can see the xamarin-release-manager bot commenting on the commits. The bot is commenting the following (commit):

xamarin-release-manager bot comment

Inspecting the 'xamarin.ios-13.8.2.9.pkg (Not notarized)' link reveals a link that looks familiar to the links cited in examples for boots:
Bot link:
https://bosstoragemirror.blob.core.windows.net/wrench/jenkins/d16-4/917041448ecb1387068c6db0e7fea9f0ff3088fd/35/package/xamarin.ios-13.8.2.9.pkg

Boots Example Link:
https://download.visualstudio.microsoft.com/download/pr/5a678460-107f-4fcf-8764-80419bc874a0/3f78c6826132f6f8569524690322adba/xamarin.ios-13.8.1.17.pkg

I'm fairly certain this is the correct link I need to be using, however I'm currently running Xamarin.iOS 14.0.0.0 locally and can't seem to find the right package. I went to branch xcode12 to have a look for a 14.x.x.x version, I found the commit that bumped the version to 14.0.0.0 (link). Can I be sure that this is the correct link to use? Looks like some of the tests failed and the build was cancelled partway through. Is this the actual release version pkg that I have installed on my local machine.
Finally is there a nicer way of finding this link without crawling through branch commits?

In my Azure Pipeline I'm using the YAML:

- task: Boots@1
    inputs:
    uri: 'https://download.mono-project.com/archive/6.10.0/macos-10-universal/MonoFramework-MDK-6.10.0.104.macos10.xamarin.universal.pkg'
- task: Boots@1
    inputs:
    uri: 'https://bosstoragemirror.blob.core.windows.net/wrench/jenkins/xcode12/7ec3751a1077e5d77d7375ef61182538d9d11f8d/234/package/xamarin.ios-14.0.0.0.pkg'

The app is building and everything works properly so I'm assuming I have the process correct, if so I'll make a PR elaborating on this process because I found it a little cumbersome getting the right links for iOS 😅

@Axemasta I think what you listed here is great. Would you mind opening a PR to add a new docs/HowToFindBuilds.md? I could copy it, but this would be a great contribution.

I think you can get Xamarin.iOS 14.x from the d16-8 branch: https://github.com/xamarin/xamarin-macios/commits/d16-8

d16-8 is equivalent to what ships in 16.8 for Visual Studio or 8.8 VS Mac.

The latest commit has:

https://bosstoragemirror.blob.core.windows.net/wrench/jenkins/d16-8/8f623bae3546670c013fcba6c7cd9cc00edaa811/37/package/notarized/xamarin.ios-14.4.0.13.pkg

Another option is to use --stable or --preview:

boots --stable Mono
boots --stable Xamarin.Android
boots --stable Xamarin.iOS
boots --stable Xamarin.Mac

I don't know if you've seen this feature. It uses the Visual Studio updater manifests to locate the official packages.

Alright good stuff, I've made a fork and will make a PR at some point tomorrow.

In the meantime, is that boots option available everywhere? can I use it in an azure pipeline etc?

I actually use boots to provision the build for boots on an Azure pipeline. 🤯

You need at least boots 1.0.2.x installed for --stable and --preview to work.

I think we can close this and #48 will help a lot, thanks!