2.8 KiB
Xamarin iOS Build
Follow these steps to create a VSTS build for your eShopOnContainers app (iOS)
Note: This document assumes basic knowledge about creating builds and configuring external VSTS connections
Creating the build
Despite the "Get Sources" task there are three tasks more in the build:
- Build Xamarin iOS Project
- Copy generated packages
- Publish the build artifact.
Let's discuss each of them.
Build the project
Add a "Xamarin iOS" task with following configuration:
eShopOnContainers-iOS.sln
in "Solution". This solution has been created ex professo for the build.- Ensure that the "Create App Package" checkbox is enabled
About signing & Provisioning section
In order to deploy your app to a physical device you must sign it using a certificate with a provisioning profile. Refer to this blog post of the Xamarin team for more info.
Basically you have three options for setting the certificate (p12 file) and the provisioning profile:
- Use MacInCloud VSTS agent and setup the p12 file and provisioning profile in the setup https://blogs.msdn.microsoft.com/visualstudioalm/2015/11/18/macincloud-visual-studio-team-services-build-and-improvements-to-ios-build-support/
- Use a custom mac machine with the certificate and provisioning profile installed. In this case you don't have to do anything else.
- Have the p12 file and the provisioning profile reachable on somewhere
If you choose option 3, you need to download the certificate and the provisioning profile into the build agent (using a previous build task). Once downloaded two files, you have to specify the location of both in the "Signing & Provisioning Section".
Copy generated files to output folder
Add a "Copy files" task with following configuration:
src/Mobile/eShopOnContainers/eShopOnContainers.iOS/bin/iPhone/$(BuildConfiguration)
in "Source Folder"**/*.ipa
in "Contents"$(Build.ArtifactStagingDirectory)
in "Target Folder"- Ensure that "Clean Target folder" (under "Advanced" section) is checked
This way we copy the generated IPA in the Build.ArtifactStagingDirectory folder (and remove any previous IPA generated by a previous build).
Publishing build artifact
Add a "Publish Build Artifacts" task, with following configuration:
$(Build.ArtifactStagingDirectory)
in "Path to publish"drop
in "Artifact Name"Server
in "Artifact Type"