locked
Supported API test FAIL (D2D1)

    Question

  • Hi

    I was trying to submit an update of a beta app through the Windows Phone Dev Center (Windows Runtime app). The app uses DirectX and Direct2D through SwapChainPanels. The previous version was accepted and successfully published to the beta testers. This update passes the certification test locally on my machine but once it's uploaded to the store I get a certification FAIL:

    • This API is not supported for this application type - Api=12. Module=d2d1.dll. File=MyApp.dll.

    I chatted with the developer support but they could not help me and sent me here. In this update I am using some more Direct2D (D2D1) features than before but I cannot figure out which feature is not supported. I cross checked manually with the MSDN reference but so far could not find any feature which is not available to Windows Runtime apps on Windows Phone 8.1.

    Is there any way to find out what "Api=12" means, which could bring me closer to find the function which I am not supposed to use?

    Thanks

    EDIT:

    I could finally narrow down the problem. Api=12 points to the function in d2d1.dll with ordinal 12. Unfortunately I could not find any easy way to find which function is meant. After a lot of try-and-error it became clear that D2D1ComputeMaximumScaleFactor seems to be the function with ordinal 12. I do not call this function anywhere but I was using D2D1::ComputeFlatteningTolerance of d2d1_2helper.h, which seems to rely on D2D1ComputeMaximumScaleFactor. Looking up this function on MSDN reveals that this function is available for Windows Runtime apps on Windows Phone 8.1, which is what I am targeting (http://msdn.microsoft.com/en-us/library/windows/desktop/dn280381(v=vs.85).aspx). 

    So the question remains: Why does app certification fail even though this function is available according to MSDN and works on phones?

    • Edited by ubdev Monday, December 01, 2014 7:10 PM Narrowed down problem
    Monday, December 01, 2014 4:24 PM

All replies