Titanium JIRA Archive
Titanium SDK/CLI (TIMOB)

[TIMOB-20192] [Windows Phone 8.1] Certification reject - This API is not supported for this application type - Api=OutputDebugStringA. Module=api-ms-win-core-debug-l1-1-1.dll

GitHub Issuen/a
TypeBug
PriorityCritical
StatusClosed
ResolutionFixed
Resolution Date2016-01-05T19:06:04.000+0000
Affected Version/sRelease 5.1.1
Fix Version/sRelease 5.2.0, Release 5.3.0
ComponentsWindows
Labelsn/a
ReporterMarian Kucharcik
AssigneeKota Iguchi
Created2015-12-22T08:30:22.000+0000
Updated2016-02-22T17:59:26.000+0000

Description

Hi guys, I created an Windows Phone 8.1 app, it's ready to publish and it's working fine. The problem is, that when I try to release it on the Store, it cannot pass certification process. I talked to MS Tech support and they pointed me to test it through WACK(Windows App Certification Kit). WACK throws me this error message: {color:#d04437}MESSAGE TEXT="This API is not supported for this application type - Api=OutputDebugStringA. Module=api-ms-win-core-debug-l1-1-1.dll. File=EDUCentrum.exe." /> < MESSAGE TEXT="This API is not supported for this application type - Api=OutputDebugStringA. Module=api-ms-win-core-debug-l1-1-1.dll. File=HAL.dll." /> < /MESSAGES> {color} I found this thread on community.appcelerator.com with same problem(but no answer/solution): [link https://community.appcelerator.com/topic/3691/windows-phone-store-app-reject/2](https://community.appcelerator.com/topic/3691/windows-phone-store-app-reject/2) Can you guys please look at it and fix it? I really need to release this app... Thank you

Comments

  1. Kondal Kolipaka 2015-12-22

    [~cwilliams] Any pointers for this?
  2. Marian Kucharcik 2015-12-26

    Hi guys, any news/solution on this bug? I received email from MS support, from Amanda, MS Tech Talk: .... I talked with my internal team and I wanted to pass along this information should it prove helpful. For < MESSAGE TEXT="This API is not supported for this application type - Api=OutputDebugStringA. Module=api-ms-win-core-debug-l1-1-1.dll. File=HAL.dll." /> < /MESSAGES> It should be using Output DebugStringW instead. ... Can you please try to change DebugStringA to DebugStringW? Thank you
  3. Kondal Kolipaka 2015-12-28

    [~max87] Hi, [~cwilliams] will get back to you soon. As this is the Christmas holiday season you can expect some delay in the response. [~pinnamuri] Do you know anything about it.
  4. Christopher Williams 2016-01-04

    Looks like we're not skipping debug log output in our release builds somehow, causing the Api to be used in production builds and fail app certification!
  5. Kota Iguchi 2016-01-05

    https://github.com/appcelerator/titanium_mobile_windows/pull/521
  6. Kota Iguchi 2016-01-05

    Seems like JavaScriptCore.lib contains OutputDebugStringA too. Working on it...
  7. Christopher Williams 2016-01-05

    Pushed fixes to master branch (which is currently the 6.0 target branch)
  8. Enea 2016-01-07

    Hi guys, I don't understand how can I implement these changes in my project for resolve the certification of windows phone store. * What files should I update? * What are the paths for this file?
  9. Christopher Williams 2016-01-07

    [~e2na] and [~max87] We're still working on this issue. It turns out that both our code and JavaScriptCore made use of a debug logging function that causes apps to fail their certification tests. So we're updating both to remove that, as well as looking into other issues that can cause failure to pass their certification tests (specifically right now we're re-enabling safe exception handling on x86 builds, but that requires us to make changes to the threading model used by our JavaScriptCore port on Windows 10). Hopefully soon you'll be able to grab a new build of our SDK off master branch branch (appc ti idk install -b master) and just have to run another build to get all the fixes.
  10. Christopher Williams 2016-01-07

    Actually [~e2na] and [~max87] now that this issue is fixed and you're doing Windows 8.1 development, you should be able to grab a build off master now and test the fix (the other issues are specific to Windows 10 certification/builds). Basically just do a appc ti idk install -b master, then update the trap.xml of the project and redo the build. It _should_ pass certification then.
  11. Enea 2016-01-08

    Hi Chris, thanks to the timely response. I installed the new SDK as you explained. The installation is successful and the compile also, but the error persists. I am attaching the log of the Windows app certification kit. {color:#d04437}â—¦The API is not supported for this type of application - Api=OutputDebugStringA. Modulo=api-ms-win-core-debug-l1-1-1.dll. File=HAL.dll.{color}
  12. Kota Iguchi 2016-01-09

    I think today's CI build fixed the issue. Would you try latest 6.0.0.v20160108152551? (appc ti idk install -b master)
  13. Enea 2016-01-09

    You are right, I installed the environment so clean and the error is fixed. Thank you for your work.
  14. Marian Kucharcik 2016-01-12

    Hi guys, I installed SDK 6.0.0 and I pass WACK certification. However, I can't release the app - I stuck on Submission screen, that tells me, that my last submission failed certification, When I resend the appx, it stucks on certification process for a long time(after reload it redirects me to previous screen). I have another problem - after I installed new SDK 6.0.0 when I want do distribute app from Appc Studio(Publish - Windows Phone distribution), the process goes well but at the end there is no file output in targeted folder - it shows me notification in right bottom corner, but when I go to that folder, is empty. So I go to build folder of app(..\build\windows\phone.ARM\Release\MyApp_1.0.0.0_Bundle.appx) and upload this file. Can this cause the problem with certification? Thank you.
  15. Marian Kucharcik 2016-01-13

    Hi guys, since yesterday, when I build our app to device, build success, but when app starts, it shows Splash screen and then crash. Throws this error: {color:#d04437}[ERROR] : The remote procedure call failed. [ERROR] : Error: The remote procedure call failed. at ChildProcess. (C:\ProgramData\Titanium\mobilesdk\win32\6.0.0.v20160110233608\node_modules\windowslib\lib\wptool.js:632:10) at ChildProcess.emit (events.js:110:17) at maybeClose (child_process.js:1015:16) at Process.ChildProcess._handle.onexit (child_process.js:1087:5) 2016-01-13T07:49:10.352Z | TRACE | titanium exited with exit code 0 2016-01-13T07:49:10.354Z | TRACE | Sending exit signal to titanium process: 3628{color} I tried to switch SDK to 5.2.0 and it runs normally with this SDK. Then I switch to 6.0.0.v20160110233608 and it crash again. Please look at it. Thank you. Edit: I updated to SDK 6.0.0.v20160112093414 and same error.
  16. Christopher Williams 2016-01-13

    [~max87] The issue regarding the apps not getting copied over is addressed with TIMOB-20172 Grabbing the file from that location should have been fine, and shouldn't cause any issue. Not sure why the certification process is acting wacky for you. As far as the "crash" when installing to device, that's a generic error message and basically just means "something went wrong installing and launching the app". But you're saying the same app with no changes installs fine with 5.2.0, but not 6.0.0 builds? That's disconcerting as it may mean that we've introduced the bug in the SDK that's causing the crash... Is the app loading it's splash screen? Does it work on emulator? Does the default titanium app work?
  17. Marian Kucharcik 2016-01-13

    Hi Chris, _same app with no changes installs fine with 5.2.0, but not 6.0.0 builds_ yes, that's right, when I swiych SDK to 5.2.0 it runs normally(no other changes) I tried to run this app on emulator and it's not working - same error. When I switch SDK to 5.2.0 it's working fine in emulator, so I think this is new bug in 6.0.0 Thank you
  18. Kota Iguchi 2016-01-15

    For the "crash at splash screen" issue, we have created a ticket TIMOB-20197. I think we want move there if we have further discussion about the crash.
  19. Marian Kucharcik 2016-01-15

    Hi Kota, thanks for all help and work on this ticket/bug. I added myself as watcher in TIMOB-20197, I'm looking forward for fix. Thank you
  20. Parmeet Singh 2016-02-12

    HI Kota, Chris, I am facing same issues recently while uploading my app on Windows store * File HAL.dll has failed the SafeSEHCheck check. * API OutputDebugStringA in kernel32.dll is not supported for this application type. HAL.dll calls this API. * API OutputDebugStringA in kernel32.dll is not supported for this application type. CCEmployee.exe calls this API. I have tried updating the sdk as you instructed previously but I am still facing the same issues again. I have to upload this app asap pl help.
  21. Christopher Williams 2016-02-12

    [~paramsb] What version of the SDK did you update to? You need to grab a master build of the SDK and make sure the app tiapp.xml is pointing at it as well. ti sdk install -b master -d to grab a 6.0.0 master branch build of the SDK...
  22. Marian Kucharcik 2016-02-15

    Hi Chris, I tried also latest 5.2.0 SDK from 5.2.x branch(http://builds.appcelerator.com.s3.amazonaws.com/index.html#5_2_X) but it seems, that this bug is not fixed in it - my app runs fine, but cannot pass the certification. In other hand, when I install 6.0 SDK, app keeps crashing and has problem with JSON(no problem with 5.2.x, same data). Thanks
  23. Marian Kucharcik 2016-02-16

    Hi Chris, I noticed that you edited "Fix version" and added 5.2.0. Will be this fix included in today's/tommorows continous release of 5.2.0? Thank you for your answer.
  24. Christopher Williams 2016-02-16

    [~max87] Assuming all the builds go smoothly, yes there should be a new build of the SDK on the 5_2_X branch with the fix in a few hours. ti sdk install -b 5_2_X
  25. Marian Kucharcik 2016-02-16

    That's great news, thank you Chris.
  26. Parmeet Singh 2016-02-16

    @Chris Williams I have upgraded my SDK to 6.0.0, and now I am able to pass the Windows Security Certification and API check, but now this upgraded SDK has affected my apps layout as .tss files are not working and also app gets crashed frequently.
  27. Marian Kucharcik 2016-02-17

    Hi Chris, I succesfully build my app with 5.2.0.v20160216202526 SDK, I passed WACK certification but can't pass Submission certification. It throws Error 2001(https://msdn.microsoft.com/en-us/library/windows/apps/mt445539.aspx). I tried recompile as it states on that site, but no change. Can you please advice me what I have to change to pass Submission certification? Thank you
  28. Christopher Williams 2016-02-17

    Ugh, that error could mean one of several different issues apparently. Does it give no further details? The page lists the following possible causes: - -*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. Of those, some just shouldn't apply/happen (the ones I struck out). We only do native code (C++/CX), so there's no mixed-mode code, and only managed code (VB/C#) uses strong name signing. We don't do anything special to obfuscate code either. So I'm guessing somehow we're generating an invalid .winmd with no public entry point; or maybe a method is exceeding 256KB of IL? We'll have to take a deeper dive to see what the heck is going on here... cc [~kota] and [~gmathews]
  29. Marian Kucharcik 2016-02-17

    Hi Chris, I've got only Error Code 2001(this is also step forward from MS, in the past when I tried to pass certification it throws that there was some error and I'm supposed to correct it and try again, but no sign of what is wrong...) Anyway, thank you for your support and I'm looking forward for your answer. Thank you. Best regards
  30. Kota Iguchi 2016-02-17

    Make sure your .winmd file has at least one public entry point sounds most likely the issue. This sounds it means each winmd should have at least public entry point, which means each winmd should have had at least one public ref class. As far as I remember only few winmd have public ref class in Titanium.
  31. Kota Iguchi 2016-02-18

    https://github.com/appcelerator/titanium_mobile_windows/pull/563
  32. Parmeet Singh 2016-02-18

    HI Chris, After installing this new update the app is crashing repetedly, Also I tried to package the app using Windows Phone option and uploaded it to the Windows App Store I am encountering Error 2001.
  33. Christopher Williams 2016-02-18

    [~max87] The fix from [~kota] has landed on master branch (6.0.0) for adding one entry point to each winmd file. I'll backport it to 5.2.0 branch as well now.
  34. Ewan Harris 2016-02-19

    Verified using: Windows 10 Pro VS 2015 Update 1 Appc NPM: 4.2.3-2 Appc Core: 5.2.0-269 Ti SDK: 5.2.0.v20160219124528 Appc Studio: 4.5.0.201602170821 Verified using the following steps:

    Using Ildasm.exe on each .winmd file to ensure they all have at least one public entry point

    Using Windows App Certification Kit on Alloy and Classic apps packaged for both dist-phonestore and dist-winstore using 8.1 SDK to check for unsupported APIs

    Using Windows App Certification Kit on Alloy and Classic apps packaged for both dist-phonestore and dist-winstore using 10.0 SDK to check for unsupported APIs

    All of the above checks are successful. I will wait to close this ticket until it is verified that https://github.com/appcelerator/titanium_mobile_windows/pull/563 fixes Error 2001 as seen by [~max87] and [~paramsb].
  35. Marian Kucharcik 2016-02-22

    Hi guys, I can confirm, that my app builded with SDK 5.2.0.v20160220080449 successfully passed all stages of MS certification and finally is being published to the Store! Very big thanks to all of you for your hard work.
  36. Parmeet Singh 2016-02-22

    Hi Evan, I am sorry but I am facing some other issues in my project, so can't verify right now. Will ensure you asap. Thanks
  37. Wilson Luu 2016-02-22

    [~max87], Thanks for the confirmation. [~paramsb], For now, I will close this ticket as fixed. If you still encounter this issue, please feel free to reopen this ticket.

JSON Source