Thursday, June 16, 2016

How to Setup and Test WhiteLabel-iOS App Provided by Sitecore Mobile SDK Team On Xamarin Studio on Mac

Recently, I need to try out the WhiteLabel-iOS mobile application provided by Sitecore Mobile SDK GitHub repository. Even though it was not hard to setup and test this, I had to solved few minor issue which I thought might help someone in future.

So, following are the steps you need to do in order to setup and run WhiteLabel-iOS mobile app on your Macbook with Xamarin Studio.

Note: I assume that you have already installed Xcode and Xamarin Studio into you Macbook

Step 1: Setup Sitecore instance

In this case, I am using Windows with Parallels software on my macbook. So, I setup Sitecore Habitat website instance in my windows VM with the host name of "habitat.local"


Step 2: Configure access to Sitecore instance from Macbook

You can see full setup instruction of a normal .NET website with access from mac from following url
https://www.getdonedone.com/accessing-your-windows-development-environment-from-osx/

Some of the main steps that I did was,
Disabled the Firewall in Windows
Added the host entry into Macbook /private/etc/hosts file


So, now I can visit "http://habitat.local" from my Macbook Pro.



Step 3: Clone Sitecore Mobile SDK for Xamarin repository

Open a Terminal window and clone the github repo
https://github.com/Sitecore/sitecore-xamarin-pcl-sdk


Step 4: Open WhiteLable-iOS solution from Xamarin Studio and run Simulator

After cloning the github repository, open "/sitecore-xamarin-pcl-sdk/solutions/WhiteLabel-iOS.sln"  solution file from Xamarin Studio and run Simulator

At this point, you will receieve an error message with Simulation failing



Error : /Library/Frameworks/Mono.framework/External/xbuild/Xamarin/iOS/Xamarin.iOS.Common.targets: Error: No installed provisioning profiles match the installed iOS signing identities. (WhiteLabel-iOS)


Solution :
To solve above issue, you need to manuall edit the related .csproj file (i.e. "/sitecore-xamarin-pcl-sdk/app/WhiteLabel/iOS/WhiteLabel-iOS/WhiteLabel-iOS.csproj") and remove following tags from that file
<CodesignEntitlements>Entitlements.plist</CodesignEntitlements>
Reference :
http://forums.xamarin.com/discussion/39534/cant-build-ios-in-xamarin-studio-5-7-1-through-5-9
http://stackoverflow.com/questions/30724551/no-installed-provisioning-profiles-match-the-installed-ios-code-signing-keys-in


After that, I was successfully able to launch WhiteLabel-iOS app from Xamarin Studio and run Simulator on it.



Step 5: Configure App Settings

As final step, I clicked on the "Edit" icon in top right corner of the application to visit Settings page of the application. There I gave "http://habitat.local" (which is my windows installed Sitecore instance) as my hostname for the website.



Now, I can run the application and test the operations/functionality in that application.


Happy Sitecore + Xamarin !  :-)

Monday, June 13, 2016

Issue While Trying to Add Sitecore Mobile SDK NuGet Packages into Shared Portable Xamarin Project

Recently, I tried to create a new Xamarin Forms solution to test Sitecore Mobile SDK.

First I creating Xamarin Forms solution in Visual Studio.



Then I tried to add following NuGet Package into the Shared Portable Forms project.


Sitecore Mobile SDK for Xamarin NuGet Packages

Once I tried to Install the "Sitecore.MobileSDK.Xamarin" NuGet packages into the project, it failed the installation with following error message.

Error : Could not install package 'Sitecore.MobileSDK.Xamarin 1.0.1'. You are trying to install this package into a project that targets '.NETPortable,Version=v4.5,Profile=Profile111', but the package does not contain any assembly references or content files that are compatible with that framework. For more information, contact the package author.

I reported this behaviour to the team who handles Sitecore Mobile SDK development and they are very helpful and came back to me with the issue.

Reason for above mention issue was that current Sitecore Mobile SDK for Xamarin build assemblies does not support ASP.NET Core 1.0 yet (as of 13/06/2016).




Sitecore Mobile SDK team will work on this issue and will release assemblies in coming few days.


As a workaround, the team suggested to use their source code and build the libraries locally.

You can find the Sitecore Mobile SDK from following Git repository
https://github.com/Sitecore/sitecore-xamarin-pcl-sdk


NOTE: Adding these Sitecore Mobile SDK NuGet packages into Xamarin Studio does work without any issues.


UPDATE : 25/07/2016
    Sitecore Mobile SDK team has provided a update for there NuGet feeds, which has solved the above mention issue:
        Sitecore.MobileSDK.Xamarin 1.0.2-beta1
        Sitecore.MobileSDK.PasswordProvider 1.0.3-beta1