locked
How can I pass a certification of an App having in Solution multiple projects?

    Question

  • Hi,

    If a solution has multiple projects the dll will be 3(for x86,x64 and ARM) for
    each and when you add the reference I have only one choice.
    That means I can't pass the certification for solutions with multiple projects

    Thanks


    ADRIAN DIBU

    Sunday, March 2, 2014 12:54 AM

Answers

All replies

  • You can compile your app for the 3 processor types and submit it.  I am not sure what you are asking here
    Sunday, March 2, 2014 2:08 PM
  • Hi,

    To be more specific:

    The app are using SQLite so I suppose to built 3 times for(x86, x64 and ARM)

    I use secondary tile and badge so I needed to add a project NotificationsExtensions (Windows 8.1).

    When I build Solution I did it for each platform and for NotificationsExtensions (Windows 8.1)

    I selected AnyCPU because it was only way don't have error when I build. Maybe this is the problem.

    I can't pass the certification and the testers don't want to write about what Windows RT device used

    Intel or ARM or the error found in report.

    Thanks


    ADRIAN DIBU

    Tuesday, March 4, 2014 3:04 PM
  • Hi,

    I build NotificationsExtensions for each platform
    I build the Solution for each platform and I changed reference
    NotificationsExtension every time I added according to platform.

    When I tryed the WACK3.2 I have mismatch even when I build for
    x86 I used for NotificationsExtension the build for x86 not ARM.

    The error in WACK3.2
    There was a mismatch between the processor architecture of the project being built "x86" and the processor
     architecture of the reference "NotificationsExtensions, Version=1.0.0.0, Culture=neutral,
    processorArchitecture=x86", "ARM".
    This mismatch may cause runtime failures.
    Please consider changing the targeted processor architecture of your project through the
    Configuration Manager so as to align the processor architectures between your project and references,
     or take a dependency on references with a processor architecture that matches the targeted processor
     architecture of your project. Check Eat
    Thanks


    ADRIAN DIBU

    Tuesday, March 4, 2014 4:06 PM
  • Hi,

    I removed NotificationsExtensions now I have only one project in Solution.

    I am trying to pass certification an app made with VS 2013 storing data into SQLite
    database.
    It passes the test with WACK3.2.
    I made a package for each platform x86, x64 and ARM.
    Testers decision.
    Using the Windows App Certification Kit on a Windows RT system with this app, we couldn't get passing results when tested.
    I tested on x86 and x64 and it works perfect.

    I added references:
    Microsoft Visual C++ 2013 Runtime Package for Windows
    SQLite for Windows Runtime(Windows 8.1)

    In Nuget Pckeges I have:
    SQLite wrapper Windows 8.1 and Windows Phone 8
    sqlite-net
    SyncClient SQLite Toolkit
    WinRT XAMAL Toolkit

    Please help me. Testers don't want  to send me the result of
    generated report.

    Thanks


    ADRIAN DIBU

    Thursday, March 6, 2014 10:03 PM
  • Hi,

    The app is with trial.

    This is the code. (I don't know if it can be the cause of failed certification. )

        #region Trial Plumbing
            //This function will not be called for the release
            //Its only purpose is to get the proxy file for debugging purposes
     #if DEBUG 
            private async Task LoadTrialModeProxyFileAsync()
          {

                licenseChangeHandler = new LicenseChangedEventHandler(UpdateTrialStatusPanel);

            //    StorageFolder proxyDataFolder = await Package.Current.InstalledLocation.GetFolderAsync("Data"); //REMOVE FOR RELEASE
            //   StorageFile proxyFile = await proxyDataFolder.GetFileAsync("trial-mode.xml");  //REMOVE FOR RELEASE
            //    CurrentAppSimulator.LicenseInformation.LicenseChanged += licenseChangeHandler;  //REMOVE FOR RELEASE
           //     await CurrentAppSimulator.ReloadSimulatorAsync(proxyFile);  //REMOVE FOR RELEASE
      
           }
     #else

            // Do Nothing
    #endif
            //Show the state of the license in the status panel
            private void UpdateTrialStatusPanel()
            {
    #if DEBUG
                LicenseInformation licenseInformation = CurrentAppSimulator.LicenseInformation;
    #else
                LicenseInformation licenseInformation = CurrentApp.LicenseInformation; 
    #endif
                if (licenseInformation.IsActive)
                {
                    if (licenseInformation.IsTrial)
                    {
                        //Current license mode: Trial license
                        TrialStatusPanel.Visibility = Visibility.Visible;
                        BorderTrialStatusPanel.Visibility = Visibility.Visible;
                      
                        var remainingTrialTime = (licenseInformation.ExpirationDate - DateTime.Now).Days;
                        RemainingTime.Text = "Expires in " + remainingTrialTime + " days";
                        panelApp.Visibility = Visibility.Collapsed;
                        bottomAppBar.Visibility = Visibility.Collapsed;
             
                    }
                    else
                    {
                        //Current license mode: Full license
                        BorderTrialStatusPanel.Visibility = Visibility.Collapsed;
                        TrialStatusPanel.Visibility = Visibility.Collapsed;
                      
                        panelApp.Visibility = Visibility.Visible;
                        bottomAppBar.Visibility = Visibility.Visible;

                    }
                }
                else
                {
                    //Current license mode: Inactive license
                    TrialStatusPanel.Visibility = Visibility.Visible;
                    BorderTrialStatusPanel.Visibility = Visibility.Visible;
                      
                    var remainingTrialTime = (licenseInformation.ExpirationDate - DateTime.Now).Days;
                    RemainingTime.Text = "Trial has expired.";
                    RemainingTime.Foreground = new SolidColorBrush(Colors.Red);
                    panelApp.Visibility = Visibility.Collapsed;
                    bottomAppBar.Visibility = Visibility.Collapsed;
                    ContinueTrial.Visibility = Visibility.Collapsed;
             
                }
            }


            //Attempt to purchase app in the application
            async void PurchaseApp_Click(object sender, RoutedEventArgs e)
            {
    #if DEBUG
                LicenseInformation licenseInformation = CurrentAppSimulator.LicenseInformation;
    #else
                LicenseInformation licenseInformation = CurrentApp.LicenseInformation;
    #endif
                RemainingTime.Text = "Buying the full license...";
                if (licenseInformation.IsTrial)
                {
                    try
                    {
    #if DEBUG
                        await CurrentAppSimulator.RequestAppPurchaseAsync(false);
    #else
                        await CurrentApp.RequestAppPurchaseAsync(false);
    #endif
                        if (!licenseInformation.IsTrial && licenseInformation.IsActive)
                        {
                            RemainingTime.Text = "Thank you.";
                         //   SayHello();  //Optional do something in app to show it works again
                           // loadPanelData();
                            panelApp.Visibility = Visibility.Visible;
                            bottomAppBar.Visibility = Visibility.Visible;

                        }
                        else
                        {
                            RemainingTime.Text = "You still have a trial license for this app.";
                            ContinueTrial.Visibility = Windows.UI.Xaml.Visibility.Visible;
                        }
                    }
                    catch (Exception)
                    {
                        RemainingTime.Text = "The transaction failed.";
                    }
                }
                else
                {
                    //Should not reach this because the Purchase button would not be displayed
                    RemainingTime.Text = "You have already purchased this app.";
                }
            }
            #endregion

            private void ContinueTrial_Click(object sender, RoutedEventArgs e)
            {
                loadPanelData();
         
            }
            private void loadPanelData()
            {
                panelGlobalTrial.Visibility = Visibility.Collapsed;
                panelApp.Visibility = Visibility.Visible;
                bottomAppBar.Visibility = Visibility.Visible;

              
            }

            private void loadPanelTrial()
            {
                panelGlobalTrial.Visibility = Visibility.Visible;
                panelApp.Visibility = Visibility.Collapsed;
                bottomAppBar.Visibility = Visibility.Collapsed;
             
            }

    Thanks


    ADRIAN DIBU


    • Edited by adibu Friday, March 7, 2014 12:14 AM Error
    Friday, March 7, 2014 12:13 AM
  • What are YOUR results testing on ARM?

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, March 7, 2014 3:15 PM
    Moderator
  • Hi,

    Thanks for answers.

    I don't have ARM device. This is my problem.

    I begged testers to send me the report of failure to figure if is

    SQLite the trial part of software or other reasons.

    They are acting like not reading the note from developer or wanting to help.

    With Windows 8 I passed 2 apps with SQLite.

    With WACK3.2 (VS 2013 and program) I passed the test.

    Thanks


    ADRIAN DIBU

    Friday, March 7, 2014 4:32 PM
  • If you don't have an ARM device I would not submit for ARM since you have not tested this adequately yourself.

    You could open a technical support case to drill into this further (just to see what the WACK problem may be on ARM).


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, March 7, 2014 4:36 PM
    Moderator
  • Hi,

    Thanks for answer.

    I have a question.

    If I pass the test with WACK3.2 on local

    machine and testers don't pass on RT kit is possible to run on

    Intel RT device and not on ARM device, because they don't to tell

    even on what type of processor they tested and fail.

    Thanks


    ADRIAN DIBU

    Friday, March 7, 2014 6:01 PM
  • No such thing as a Intel RT device.  I am not sure what you are asking?  If you open a support case we can help you look at your failure report etc...

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Friday, March 7, 2014 7:22 PM
    Moderator
  • Hi,

    Thanks for prompt answer.

    In my mind Microsoft Tablet Surface is an ARM device and

    Surface2 is an Intel device.

    So if I passed WACK3.2 on x86 I expect to don't have problems

    with a Surface2 on RT test kit and the problem is on ARM.

    What is a support case?

    Thanks


    ADRIAN DIBU

    Friday, March 7, 2014 11:44 PM
  • Windows RT always runs on ARM. The Surface 2 runs Windows RT 8.1 on an ARM processor.

    Surface Pro and Surface Pro 2 run Windows 8 or 8.1 on Intel processors.

    AnyCpu works only for purely managed code. You cannot use native components (such as SQLite) in an AnyCpu build. Native components are specific to the architecture they are compiled for (ARM, x86, or x64) and can only be used in a project targeting that architecture. If you want to run on ARM then you need to build targeting ARM and include an ARM version of SQLite. If you want to run on x86 then you need to build targeting x86 and include an x86 version of SQLite.

    If you install SQLite as recommended in the SQLite topic then it will set up the solution to include the correct version of SQLite for the target you are using.

    As Jeff said, you can open a support case at http://aka.ms/storesupport to work one-on-one with somebody to understand and solve your issue.

    --Rob

    Saturday, March 8, 2014 12:12 AM
    Owner
  • Hi,

    I built for every platform still not luck.

    Thanks


    ADRIAN DIBU

    Saturday, March 8, 2014 12:40 AM
  • Hi,

    I can't understand the hostile attitude of testers.

    I beg them to send the result of their kit test.

    They act like not reading developer note.

    I think we are a  team and we must do our best

    to pass the certification because they will take

    33% from product's sale.

    Any explanation why they acting like that and

    what can be done to be fixed

    Thanks


    ADRIAN DIBU

    Saturday, March 8, 2014 2:39 PM
  • I don't understand what you mean by Hostile Attitude of testers?  All your testing information is on your dashboard and this is where the email you get is pointing you to.  It has the entire report.  Can you email me privately and tell what precisely is hostile (they should not be communicating with you directly and don't have your email address etc..).  You can contact me here with that information http://blogs.msdn.com/jpsanders/contact.aspx.

    Also just a side note, they aren't testing your app, just ensuring it passes certification.  If something is not passing, then you get an email and note on your dashboard telling your what portion could not pass certification.  You are in error about the % as well.  It is 30% not 33% and then goes to 20% when you hit the threshold.

    Finally Rob did a really good job of explaining how to get SQLite working.  Have you followed everything suggested?  If you have and still are having trouble go here:   http://aka.ms/storesupport

    Jeff


    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Monday, March 10, 2014 12:55 PM
    Moderator
  • Hi Jeff,

    Thanks for answer.

    I worked months to do the app and it passes WACK3.2.

    I bagged testers to send the report with failed test, but they don't

    want to do it or even to write a few words about.

    I tried to fixed several time and they gave the same answer and I am

    skeptic they had the same error.

    I am extremely sad.

    If you want I will send a zip file with the app attached to an e-mail if you give me the address.

    Thanks


    ADRIAN DIBU

    Monday, March 10, 2014 5:03 PM
  • The bottom line is if you want to pass ARM certification then you need to invest in a ARM device for your own WACK testing before submitting for certification. The original Surface RT is down to fire sale prices and works just fine for this purpose.

    Monday, March 10, 2014 6:40 PM
  • Hi,

    I have the same invariable answer:

    Using the Windows App Certification Kit on a Windows RT system with this app, we couldn't get passing results when tested.      

    I tested and it worked.

    I am sure tester don't test.

    How can I find a prove?

    Best regards                          

    <form action="/StorePortals/en-us/Developer/Catalog/CreateNewRelease?productGuid=67213d15-804f-4305-8335-86eab090836c" id="ws_NewReleaseForm" method="post"><input name="__RequestVerificationToken" type="hidden" value="YTGtb6btdnXYVm+sNSmG9Ny/NDLdZF10g1of9V0Hx/UV0sA1d74QZXMnZ2qrPyLZAihM+Rh3DNTMpDyZjxglTOUnyG5OxixxRUBCdkMnIG5kWivT/9BvFvId9+PPJBzy/iyMjXqCamRBuznlu2O+eRDVwwWPOkTv7hMkCr22WqVCjc9+" />      </form>

    ADRIAN DIBU

    Monday, March 10, 2014 8:40 PM
  • Hi,

    Now is worse.

    I think the testers read the post and instead of giving me

    an answer how I beg them, they acted the same.

    I suspect, they did not want to look at app to punish me.

    It was created a new SQLite.ddl and I update the app.

    They give me the same answer in less than 1 hour.

    What did I do wrong to make them to act like that.

    Best regards


    ADRIAN DIBU

    Tuesday, March 11, 2014 1:19 AM
  • You are wrong.  You need to follow our advice.  Rob, Jim and I all gave you advice which you have not followed.

    Jeff Sanders (MSFT)

    @jsandersrocks - Windows Store Developer Solutions @WSDevSol
    Getting Started With Windows Azure Mobile Services development? Click here
    Getting Started With Windows Phone or Store app development? Click here
    My Team Blog: Windows Store & Phone Developer Solutions
    My Blog: Http Client Protocol Issues (and other fun stuff I support)

    Tuesday, March 11, 2014 11:53 AM
    Moderator
  • Hi,

    Thanks for answers.

    You think I am wrong, maybe, but it is impolite to don't

    answer when asked.

    Please remove the testers note to don't give false hopes.

    I am desperate because I tried so many time and no

    chance to pass.

    It seams to be a problem with SQLite running on

    Windows rt and VS 2013.

    I am hopeless I will find a way.

    Thanks


    ADRIAN DIBU

    Tuesday, March 11, 2014 1:26 PM