After this year’s build, I thought I would take a weekend to upgrade the Windows Phone version of Modern Delicious to 8.1. The new OS version added the ability to add the app to the Share Page option in mobile IE, a feature that it was badly lacking. Without this, the app was badly crippled in comparison to the Windows 8 version. As with anything that still is in a pre-release state, there were a few bumps in the road, so 1 weekend of work turned into 6.
Issues I Found
Share Contracts and JumpListItem Converters in the Emulator
There is a bug in the emulator that will cause it to hang if you add the Share Contract capability to the app and use a JumpListItemBackgroundConverter or JumpListItemForegroundConverter on any page in the app. Those converters are used in the new shared style, universal app phone projects to make Listviews in a Semantic Zoom control behave like the LongListSelector. These are completely unrelated to the share contract bits, so it was two solid weekends just to figure this out. However, these will work together just fine (as they should) on a physical device. It just makes testing kind of a pain, but luckily I do have a device to test on.
Associating App with the Windows Store Version
Developer portals are the bane of my existence lately. When submitting the new 8.1 version in the Phone developer portal, I went through all of the steps - added a the new appx package, added the description (again), added the submission notes (again), added the images and screenshots (again) and submitted. A button or checkbox to copy all of those things I had to do a second time would have been a big improvement since they were all basically identical to the 8.0 version, but I digress. After submitting, a head-scratching error occurs.
I had no idea what this was supposed to mean. Package name and language are empty, and the error reads, “The update is missing a package identity association: ”“. At the bottom of the page, there is a big button that says, "Go back and edit,” which of course I clicked. This was wrong, you actually need to click the tiny Edit link to the right of the error, which you can see in the image above.
While I was creating the appx package in Visual Studio, the step where you select the app name lists all of your apps - including Windows. So when I selected Modern Delicious there, it was actually linking the new phone 8.1 version of the app with the Windows 8.1 version of the app. This was good actually, it’s what I wanted in order to hopefully get the universal app icon in the store, it just wasn’t obvious what it was doing there. What the portal is saying is there a portal portion to this linking process that I needed to complete. When you click the edit link, it takes you to a page where you finish this process by selecting the Windows Store app again and clicking an “Associate” button to link the two.
The portal knew what needed to happen, but it didn’t communicate it well. I wish it would have just put that associate page in front of me rather than dump me onto the general submission error page without any useful instructions.
Links that Helped the Upgrade Process
All of these links were critical to me being able to upgrade Modern Delicious to Windows Phone 8.1. Without these, it would have taken me much longer than it already did.