I package the app with Appcelerator Studio and i submit the package to windows store but the windows store certification process failed with *2001 error code*.
I try to test the package with tool *Windows App Cert Kit* and the certification process failed for this errors:
{quote}
*Error Found: The supported APIs test detected the following errors:*
This API is not supported for this application type Api=SuspendThread. Module=apimswincoreprocessthreadsl112.dll. File=HAL.dll.
This API is not supported for this application type Api=ResumeThread. Module=apimswincoreprocessthreadsl112.dll. File=HAL.dll.
This API is not supported for this application type Api=Sleep. Module=apimswincoresynchl120.dll. File=TitaniumWindows.dll.
*Impact if not fixed:* Using an API that is not part of the Windows SDK for Windows Phone Store apps violates the Windows Phone Store certification requirements.
*How to fix:* Review the error messages to identify the API that is not part of the Windows SDK for Windows Phone Store app. Please note, C++ apps that are built in a debug configuration will fail this test even if they only use APIs from the Windows SDK for Windows Phone Store apps.
[Alternatives to Windows APIs in Windows Phone Store apps.](
http://go.microsoft.com/fwlink/?LinkID=324326)
{quote}
Can you help me?
Thank you in advance
I can reproduce the issue in the below environment Windows 8.1 Visual Studio 2013 Ti SDK 6.0.1.GA
Steps to reproduce on above configuration
Create an app using
appc new/ti create
Package the app for Windows Phone 8.1 using
appc run/ti build -p windows -T dist-phonestore
Validate the app using Windows App Certification Kit
However, *I am unable to reproduce in the following environment* Windows 10 Visual Studio 2015 with 10 and 8.1 sdk Ti SDK 6.0.1.GASteps on above configuration
Create a new app
appc new/ti create
Package for Windows Phone 8.1 with
appc run/ti build -p windows -T dist-phonestore --wp-sdk 8.1
Validate the app using Windows App Certification Kit
*Notes* Taking the appxbundle produced with Windows 8.1/VS 2013 and running WACK on Windows 10 (WACK version 10.0.14393.33) does not produce the failure.Dear Ewan, you sugget to upgrade my OS to Windows 10 to solve the Microsoft Certification problem?
I am not quite convinced why Windows App Certification Kit fails for following functions even when they are marked "*Supported on Windows Phone 8.1*" :( I remember we haven't been failing this tests even we target WP 8.1, so I expect Microsoft changed its behavior at some point of the SDK update... * [SuspendThread](https://msdn.microsoft.com/en-us/library/windows/desktop/ms686345(v=vs.85).aspx) * [ResumeThread](https://msdn.microsoft.com/en-us/library/windows/desktop/ms685086(v=vs.85).aspx) * [Sleep](https://msdn.microsoft.com/en-us/library/windows/desktop/ms686298(v=vs.85).aspx)
I was not reproduce this issue when I use Windows 10 & Visual Studio 2015 with 10 and 8.1 SDK on my end, so I would think upgrading to them solve this certification problem.
Dear Kota, with Windows App Certification Kit of Windows 10 the option "Windows Phone 8.1" is been deleted there is only option "Validate Store App". If i selected "Validate Store App" option *the certification test passed*. But when i submit the package (that have passed certification) to Windows Store, the windows store certification process failed with this error message: *This submission failed with error code(s) 2001. More info about the error(s) can be found here* Where here is a page with this description: {quote} You may see error 2001 when problems with Windows Phone packages are detected during preprocessing. In most cases, you will need to rebuild your app's package to correct the error. Once you've done that, replace the old package with the new one on the Packages page of the submission before you click Submit to the Store again. There are a number of issues that may cause this error. Review the list below to determine which might apply to your packages. One or more assemblies in the package are obfuscated incorrectly: Use a different tool to perform the obfuscation, or remove the obfuscation. The compile process optimizes the obfuscated assemblies, but occasionally some assemblies are obfuscated using a tool that modifies the MSIL in an unsupported way that will cause an error. The size of one or more methods in the app exceeds 256 KB of IL: Refactor the offending method into smaller functions. The size of MSIL for methods in an assembly can be determined by using the ILDASM tool. The strong name signature validation failed for one or more assemblies: This error typically occurs when the strong name signing was performed using a key different than the one expected in the assembly metadata. Sign with the correct key, or remove strong name signing. The package contains mixed-mode (with managed and native code) assemblies: Mixed-mode assemblies are not supported on Windows Phone. Remove the mixed-mode assemblies from the package and resubmit the app. A Windows Phone 8.1 XAP or appx/appxbundle assembly is not valid: Make sure your .winmd file has at least one public entry point. You can use any decompiler application to review the code and check for public entry points if needed. {quote}
Let me check, but [~luk3luk3] could you try latest nightly sdk?
appc ti sdk install --branch master 6.1.0.v20170118152304
You might also need to clean your projectappc ti clean
then.Dear Kota, i have tried to build with SDK 6.1.0.v20170118152304, Windows 10 *ti build -p windows -T dist-phonestore --wp-sdk 10.0* (--wp-sdk 8.1 encounter same certification problem) and i submitted the appxbundle to windows store. Now Device Family supported are only Windows 10 Desktop, Windows 10 Mobile, Windows 10 Holographic (Windows 8.1 are not supported). The certification process passed the *Pre-processing* step where the previous build 8.1 stop with 2001 error. The problems on wp10 and titanium SDK 6.1.0.v20170118152304 respect wp8.1 are several. First: the app random crash. Second: the visual element as textfield, label, button and other elements have a different behavior with same tss style file. Example: textfield background color property don't work, label ti.Ui.Size don't work. Summarizing: wp8.1 app is much stable and stylish of wp10, but not pass certification process (*Pre-processing* step ) for not supported API. About Not supported API (SuspendThread, ResumeThread, Sleep) it is difficult to patch?
{quote} About Not supported API (SuspendThread, ResumeThread, Sleep) it is difficult to patch? {quote} [~luk3luk3] I'm pushing fixes for them. I have create a patch, could you try [^TIMOB-24318-patch.zip] ?
Go to
C:\ProgramData\Titanium\mobilesdk\win32\6.1.0.v20170118152304\windows\lib
Rename
HAL
folder to_HAL
(Just in case to restore them later)Rename
TitaniumWindows
folder to_TitaniumWindows
(Just in case to restore them later)Copy
HAL
andTitaniumWindows
folder from [^TIMOB-24318-patch.zip]Copy
_HAL/win10
toHAL
folderCopy
_TitaniumWindows/win10
toTitaniumWindows
folderThen go to your project folder,
appc ti clean
and build your projectDear Kota, First thank you for support! i download and applied your fix. Step 1 OK Step 2 OK Step 3 OK Step 4 OK Step 5 and Step 6 not applied on WP8.1 beacuse win10 folder not exists. Step 7 OK If i start package dist with wp8 and i receive an error because in the HAL folder there was no include dir. I resolved copying the include folder from old HAL_ folder. Finally when i submit the appxbundle to App Certification Kit 3.3 of Windows 8.1 *the result test is PASSED*. But if i submit the appxbundle to Windows Store after 2 minutes i *receive the 2001 error in Pre-Processing step* (I have already written to Microsoft support to help me on this problem). For now only appxbundle based on WP10 have passed the *Pre-Processing step* on Windows Store (But on WP10 as reported in previous comment the app random crash, and the visual element as textfield, label, button and other elements have a different behavior with same tss style file. Example: textfield background color property don't work, label Ti.Ui.Size don't work).
This is reply from Microsoft Support Team about 2001 error code: {quote} Hello, I appreciate your response. I reached out to the certification team and they were not able to narrow down the error or the cause of it. Due to the 2001 error that you received on the submission, you will need to troubleshoot with the suggestions below. "You may see error 2001 when problems with Windows Phone packages are detected during preprocessing. In most cases, you will need to rebuild your app's package to correct the error. Once you've done that, replace the old package with the new one on the Packages page of the submission before you click Submit to the Store again. There are a number of issues that may cause this error. Review the list below to determine which might apply to your packages. One or more assemblies in the package are obfuscated incorrectly: Use a different tool to perform the obfuscation, or remove the obfuscation. The compile process optimizes the obfuscated assemblies, but occasionally some assemblies are obfuscated using a tool that modifies the MSIL in an unsupported way that will cause an error. The size of one or more methods in the app exceeds 256 KB of IL: Refactor the offending method into smaller functions. The size of MSIL for methods in an assembly can be determined by using the ILDASM tool. The strong name signature validation failed for one or more assemblies: This error typically occurs when the strong name signing was performed using a key different than the one expected in the assembly metadata. Sign with the correct key, or remove strong name signing. The package contains mixed-mode (with managed and native code) assemblies: Mixed-mode assemblies are not supported on Windows Phone. Remove the mixed-mode assemblies from the package and resubmit the app. A Windows Phone 8.1 XAP or appx/appxbundle assembly is not valid: Make sure your .winmd file has at least one public entry point. You can use any decompiler application to review the code and check for public entry points if needed." {quote}
Hmm, so basically Microsoft provides no useful information, right...? :( So 2001 error code indicates some possibilities but as far as I can see we don't have issues with it (We once saw it in TIMOB-20192, and we resolved it). - We only do native code (C++/CX), so there's no mixed-mode code - Only managed code (VB/C#) uses strong name signing. - We don't do anything special to obfuscate code either. - All .winmd has at least one public entry point (Can be determined by ILDASM tool) - Assemblies are not exceeding 256 KB 256KB of IL (Can be determined by ILDASM tool)
Yes, Kota is third email to Microsoft Support Center but no useful reply i have received. I have asked to Microsoft the log of certification process of my app (as the log that you can produce with Microsoft App Certification Kit), now i am waiting for reply. If i port my app on Windows Mobile 10 the certification process pass. I don't know where is the problem on Windows Mobile 8. Why I have to limit the application to Windows Mobile 10 smartphones when the app can be installed also on older smarphone given that does not require special feautures of WP10? No reply of Microsoft...
Closing this, I would consider this is not our bug (even Microsoft was not able to resolve this) and also Microsoft no longer supports Windows Phone 8.1.
Closing as "not our bug". If you disagree, please reopen.