We used App Centre a lot to do the Xamarin build and distribution. It’s very easy to setup and easily delivers to customers. We all happy with that until we met a build problem recently.
The customer wants to the feature user can select an image from Photos App and share to our App. After iOS 11, we need to implement that as an App Extension. Implement the Extension is not hard, the hard part is the Extension need another provision profile. But App Centre only supports one provision profile in Xamarin.iOS project.
Install a provisioning profile is not hard, just need to copy the UUID inside the profile and copy to ~/Library/MobileDevice/Provisioning Profiles
I tried this on pre-build script but not work, it seems that pre-build script doesn’t have the access to ~/Library folder of the build agent.
So it means if App Centre doesn’t fix that we don’t have any workarounds https://github.com/microsoft/appcenter/issues/30
Then we move to Azure DevOps, cause DevOps can add two provision profile pipeline and then we setup everything, the problem solved.
Let go back to the topic, does this mean Azure DevOps is better than App Centre, I would say not exactly.
I think App Centre is more facing to customers then Azure DevOps. With App Centre, we can easily to distribute App to customers and we can get the crashing report, analytics etc which Azure DevOps cannot provide us instantly.
In the App Centre road map, it will add more services like Auth, data, file Storage and push notification. It means we can build server less App just depend on App Centre in future. It will have basic login, database and push notification. It’s enough for an App with small business.
Azure DevOps is more facing developer and project managers, it has board, repo and test plan, it is a whole dev environment. With the power of Pipelines, you can build Web, iOS/Android native, Xamarin, WPF, Nuget and etc, as App Centre only can build Mobile Apps. There’re also lots of plugins you can use to help you build your project. But the pipeline setup is not easy as App Centre.
App Centre will help you to deliver App to customers, but the CI feature is not power as Azure DevOps.
Azure DevOps has powerful build feature, but it still needs App Centre to distribute.
If you use Azure DevOps + App Centre, you will have the whole development environment and you don’t need Jira, Github/Bitbucket..