This post documents an issue I have been getting with the uploading of Apps to the Windows Store.
1. WACK process completes successfully:
Upload in progress:
Produces this error:
NB I am using the latest builds of Windows and Visual Studio available.
If anyone else is getting this issue please add a note in the comments below.
With the announcement of BUILD 2012 I thought I would put together a list of tips – mainly aimed at fellow developers from the UK but there may be something here for everyone!
If you are on a tight budget and can book early try the Homestead Suites. It is next to the Microsoft Campus and very reasonably priced (especially if you can book for a week).
I have also stayed at the Extended Stay America – there are a couple within a short drive of the Campus, again cheaper if you stay for at least 7 days.
Both the above are self catering and include a basic Kitchen complete with utensils/cutlery/fridge/hob & cooker (and WiFi access).
NB Don’t be tempted to go ‘real cheap’ and stay too far away from Redmond / BelleVue. The traffic gets really bad around Seattle and you may live to regret it – especially if you are a little jet lagged! (I speak from experience!)
Try and find a friendly Softee to show you around. I have been lucky in the past and have seen a few ‘geek treasures’ that I would never have found (or had access to) myself.
(Work in Progress)
Just documenting an issue I have been having this morning when firing up the Windows 8 Store.
At first I get the familiar splash screen: “Getting the store ready for you”
But then after a few more seconds I am presented with “This might take a while longer”:
Before finally being hit with “We weren’t able to connect with the store”:
This looks to be some sort of connectivity issue but the rest of the internet seems to be behaving itself.
Is anyone else experiencing the same issue or have an explanation?
I am based in the UK.
(Needless to say I have already tried this several times this morning after ‘waiting a few minutes’)
Gives an answer to the question: How / Why was your App launched?
Launch | launch The user launched the app or tapped a content tile.
Search | search The user wants to search with the app.
ShareTarget | shareTarget 
The app is activated as a target for share operations.
File | file 
An app launched a file whose file type this app is registered to handle.
Protocol | protocol 
An app launched a URL whose protocol this app is registered to handle.
FileOpenPicker | fileOpenPicker 
The user wants to pick files or folders that are provided by the app.
FileSavePicker | fileSavePicker 
The user wants to save a file and selected the app as the location.
CachedFileUpdater | cachedFileUpdater 
The user wants to save a file that the app provides content management for.
ContactPicker | contactPicker 
The user wants to pick contacts.
Device | device 
The app handles AutoPlay.
PrintTaskSettings | printTaskSettings 
The app handles print tasks.
CameraSettings | cameraSettings 
The app captures photos or video from an attached camera.
“High level breakdown of disciplines required for this exam”
Design Metro style Apps (19%)
- Design the UI layout and structure.
- Design for separation of concerns (SOC).
- Apply the MVVM pattern to your app design.
- This objective may include but is not limited to: design and implement the appropriate data model to support business entities; design your viewmodel to support your view based on your model; develop a view to meet data-binding requirements; create view models using INotifyPropertyChanged, ObservableCollection, and CollectionViewSource
- Design and implement Process Lifetime Management (PLM).
- This objective may include but is not limited to: choose a state management strategy; handle the suspend event; prepare for app termination; handle the Resume event; handle the OnActivated event; check the ActivationKind and previous state
- Plan for an app deployment.
Develop Metro style Apps by Using WinRT (19%)
- Access and display contacts.
- This objective may include but is not limited to: call the ContactsPicker class; filter which contacts to display; display a set number of contacts; create and modify contact information; select specific contact data
- Design for charms and contracts.
- This objective may include but is not limited to: choose the appropriate charm based on app requirements; design your app in a charm- and contract-aware manner; configure app manifest for correct permissions
- Implement search.
- This objective may include but is not limited to: provide search suggestions using the SearchPane class; search for and launch other apps; provide and constrain search within an app, including inside and outside of Search charm; provide search result previews; implement activation from within search
- Implement Share in an app.
- This objective may include but is not limited to: use the DataTransferManager class to share data with other apps; accept sharing requests by implementing activation from within Share; limit the scope of sharing using the DataPackage object; implement in-app Share outside of Share charm
- Manage app settings and preferences.
- This objective may include but is not limited to: choose which app features are accessed in AppSettings; add entry points for AppSettings in the Settings window; create settings flyouts using the Popup control; add settings to Popup; store and retrieve settings from the roaming app data store
Create the User Interface (21%)
- Create layout aware apps to handle view states.
- This objective may include but is not limited to: handle view state events from ViewStateManager; choose between style patterns for the different view states; set app orientation in the manifest
- Implement layout controls.
- This objective may include but is not limited to: implement the Grid control to structure your layout; set the number of rows/columns and size; enable zoom and scroll capabilities in layout controls; manage text flow and presentation
- Design and implement the app bar.
- This objective may include but is not limited to: determine what to put on the app bar based on app requirements; style and position app bar items; design the placement of controls on the app bar; handle AppBar events
- Design and implement data presentation.
- This objective may include but is not limited to: choose and implement data controls to meet app requirements (e.g., ListView, GridView, and FlipView); create data templates to meet app requirements
- Create and manage XAML styles and templates.
- This objective may include but is not limited to: implement and extend styles and templates; implement gradients; modify styles based on event and property triggers; create shared resources and themes
Program the User Interaction (21%)
- Create and manage tiles.
- This objective may include but is not limited to: create and update tiles and tile contents; create and update badges (TileUpdateManager class); respond to notification requests; choose an appropriate tile update schedule based on app requirements
- Notify users by using toast.
- This objective may include but is not limited to: enable an app for toast notifications; populate toast notifications with images and text using the ToastUpdateManager class; play sounds with toast notifications; respond to toast events; control toast duration
- Manage input devices.
- This objective may include but is not limited to: capture Gesture library events; create custom gesture recognizers; listen to mouse events or touch gestures; manage Stylus input and inking
- Design and implement navigation in an app.
- This objective may include but is not limited to: handle navigation events, check navigation properties, and call navigation functions by using the Navigation framework; design navigation to meet app requirements; Semantic Zoom
Manage Security and Data (20%)
- Choose an appropriate data access strategy.
- This objective may include but is not limited to: choose the appropriate data access strategy (file based, web service, remote storage, including Windows Azure storage) based on requirements
Retrieve data remotely.
- This objective may include but is not limited to: use HttpClient to retrieve web services; set the appropriate HTTP verb for REST; consume SOAP/WCF services; use WebSockets for bi-directional communication; handle the progress of data requests
- Implement data binding.
- This objective may include but is not limited to: choose and implement data-bound controls; bind collections to items controls; implement the IValueConverter interface; create and set dependency properties; validate user input; enable filtering, grouping, and sorting data in the user interface
- Manage Windows Authentication.
- This objective may include but is not limited to: retrieve a user’s roles or claims; store and retrieve credentials by using the PasswordVault class; implement the CredentialPicker class
- Manage Web Authentication.
- This objective may include but is not limited to: use the Windows.Security.Authentication.Web namespace; set up oAuth2 for authentication; implement the CredentialPicker class; set up single sign-on (SSO); implement credential roaming; implement the WebAuthenticationBroker class
(work in progress)
When it comes to submitting your Windows 8 Apps there is quite a list of marketing graphics that you can submit:
Click the image to Enlarge
The only mandatory one is the 416×180. It occurred to me that this size would be great on a T-Shirt. Happily Vistaprint in the UK are currently doing an offer to get a T printed for 99p Plus P&P (So if nothing else check out the virtual T-Shirt design for free! )
The next step involves being seen with your T Shirt. I was lucky enough to be offered the chance to go on the ‘Gadget Show Tech tour of London’ yesterday and the crew were a really friendly bunch (Polly Woodward & Jason Bradbury)
(Look out for me wearing the shirt on the Gadget Show later this Summer*)
The Tile Browser App for windows 8 can be downloaded here (it is a free app)
* Or at the very least the back of my head …
“They did a Ryan Air on me”
So much for the 99p T-Shirt:
One of the most popular Apps on Windows phone now comes to Windows 8 …
Making striking use of the unique opportunities of the Windows 8 interface one of this Apps nicest features is enabling users to choose not only the style of their Live Tiles but also the sporting content :
The next release of “Live Tile Sport” will be a free upgrade enabling an additional 8 sporting categories along with the option to choose which categories are of interest as well as also where they are positioned in the panorama.).
This App does not collect, store or share any personal information, or anything related to your device. We do not collect any statistics, trends or track user movements.
The app provides share functionality that allows you to share newsworthy information with any third party application. The App allows you to open Web URLs from the application. The internet urls might be saved by the web browser on your device. For further information on this consult your web browsers own documentation.
When submitting an App to the Windows 8 store I am repeatedly getting an error that relates to the failure of the native image generator.
There are a number of suggestions around this issue in this article which having worked through, and submitted an issue via Connect (see here) I have finally implemented the suggested workaround:
As a last resort, you can disable automatic native image generation for your app by including a file that is named "nongen.txt" in your app package. Be aware that doing this may adversely affect startup and execution times for your app. Make sure that you file a Connect bug before you take this step.
This then resulted in an overall WACK pass:
NB The full failure report looks like this:
Windows App Certification Kit – Test Results
Microsoft Windows 8 Release Preview (6.2.8400.0)
Overall result: FAILED
Crashes and hangs test
App launch tests
Crashes and hangs
App manifest compliance test
Windows security features test
Supported Metro style API test
Error Found: The performance launch test collected the following results:.
- The Native Image Generator failed
Impact if not fixed: Application launch time is important for creating a fast and fluid experience for the user. This app will not be accepted by the Windows Store.
How to fix: You should ensure that your app’s performance is consistent across different machine configurations and does not exceed the minimum requirements or it will potentially fail during Windows store onboarding. The informational metrics can provide insight into areas that could help improve your app’s performance, but do not impact your apps acceptance by the Windows Store. See link below for more information:
Performance Best Practices
App manifest resources test
App resources validation
Debug configuration test
UTF-8 file encoding
After around 10 days in the submission process my first Windows 8 App has failed with the following report:
6.11 The app’s category and subcategory must correspond to the character or purpose of your app
Presently the Apps’ category and sub-category are:
Which is as I intended (there is no sub category for ‘Productivity’ Apps).
My thinking was that this App helps you be more productive with your Windows Phone and I must admit, looking at the other options this still looks to be the best in my opinion. It is a shame that there was not a sentence indicating the thinking behind the reason for failure or perhaps a suggestion as to where Microsoft thinks my App should live?
I found it a little disappointing that any other ‘issues’ with the App are not listed (or alternatively there is a section that states that ‘no other issues were found’) as this would be useful as well as giving us an indication of whether this process is ‘fail at the first hurdle’ or is more comprehensive.