microsoft/remotebuild

Breakpoints don't hit when debugging a local IOS 10.2 device

Opened this issue · 17 comments

Hello,

When running a locally connected iPhone 5 running IOS 10.2 in VS2015 the breakpoints don't hit. Here are the details:

  • Using Cordova CLI 6.1.1
  • I can build, deploy, and run on the iPhone
  • I can set valid breakpoints (ie they can only be set on valid lines of Javascript)
  • I can interact with the app by running commands in the JS Console (ie I can set the background color using document.body.style.background = "red"
  • I have tried resetting the app using window.location.reload() but am still unable to break

Any ideas?
Thanks

Just to be sure: this is happening with a JS app (not using typescript or some other language that compiles to JS)?

Actually, I may have an idea what is happening here... If I remember correctly, I believe that in one of the 10.x iOS versions, the webview does not initially pay attention to breakpoints, and the debugger frontend (e.g. visual studio) needs to explicitly enable it. I'll have to double check that this is what is going on, but if that's the case then I believe we've fixed this in VS2017, but I'm not sure what the status with VS 2015 is. I'll verify that this is the issue, and if that's it I'll bring it up with the debugger team.

To answer your question, for me this is happening with a Cordova JS app.

I've just verified that this is fixed in VS2017 and not in VS2015. I don't believe that there are currently plans to backport the fix to VS 2015 at this stage unfortunately. If you use the current VS2017 RC then it should work as expected though.

We are also experiencing the same issue and tried VS2017 RC, but it crashes opening our existing project. We are using Ionic and even tried a new clean project and it also crashed VS2017 RC so this isn't really an option for us at the moment. Hopefully the production release of VS2017 won't be too far away...

Can you please elaborate on how VS crashed when opening the project? That shouldn't be happening.

The first issue we get is that it won't open the JS project. It's fine for a blank cordova app, but we are using the Ionic templates from VS2015 and they fail to open saying Illegal characters in path, but there isn't anything obvious in the diagnostic log (attached).
step3
VsProjectFault_d356334f-f963-4732-9cac-2c7651d6d21a.failure.txt

As for the crash, I'll have to go back and try again before I can provide more detail.

I couldn't reproduce the crash today and I've managed to debug iOS on a local device in VS2017RC using a blank cordova app. The first thing to note is that Cordova version 6.3 didn't work and failed with 'unable to find app installed on device', but version 6.5 was fine.

The problem we have now is opening Ionic based projects in VS2017RC as mentioned in my previous post.

Thanks for reporting back. I believe that I know the cause of the "illegal characters in path" error, and if so then the next release of VS 2017 should have it fixed. I'll see if I can verify that next week.

I just successfully opened an Ionic template in VS2017, though I am using a later build than RC3. It should work in the next release if not the current one.

I've update VS2017 and can now open my Ionic project, but it fails to build with the following error:

Error MSB4018 The "VsTac" task failed unexpectedly.
System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

I assume this is to do with node_modules but not sure.

Looks like you're right about hitting an issue. I didn't get that exact issue, but another path-related one. I have a workaround for the error that I encountered, which may also assist with yours:

Open up the jsproj (e.g. ionic-typescript-tabs1.jsproj) in a text editor, and find where a set of paths are excluded:

<Content Include="**\**" Exclude="**\platforms\**;**\bin\**;**\bld\**;**\node_modules\**;**\simulation\**;;.gitignore;ionic-typescript-tabs1.*" />

To that list, add **\tests\**, e.g.

<Content Include="**\**" Exclude="**\platforms\**;**\bin\**;**\bld\**;**\node_modules\**;**\simulation\**;**\tests\**;.gitignore;ionic-typescript-tabs1.*" />

With that change, we ignore anything in a path containing tests, which in this case includes plugins\cordova-plugins-splashscreen\tests\ios\CDVSplashScreenTest\... which has a long path and causes issues on windows.

@Talen, I'm seeing the same error as you when trying to build on iOS with VS2017.

Cordova 6.3.1
------ Platform ios already exists
 ____                      _       _           _ _     _ 
|  _ \ ___ _ __ ___   ___ | |_ ___| |__  _   _(_) | __| |
| |_) / _ \ '_ ` _ \ / _ \| __/ _ \ '_ \| | | | | |/ _` |
|  _ <  __/ | | | | | (_) | ||  __/ |_) | |_| | | | (_| |
|_| \_\___|_| |_| |_|\___/ \__\___|_.__/ \__,_|_|_|\__,_|
                                                          
-----------------------------------------------------------------------------
Sending the build to the remote build server
-----------------------------------------------------------------------------
------ Incremental Build: False
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: The "VsTac" task failed unexpectedly.
1>C:\Program Files (x86)\Microsoft Visual Studio\2017\Professional\MSBuild\Microsoft\VisualStudio\v15.0\ApacheCordovaTools\vs-mda-targets\Microsoft.MDA.FileMirroring.targets(256,5): error MSB4018: System.IO.PathTooLongException: The specified path, file name, or both are too long. The fully qualified file name must be less than 260 characters, and the directory name must be less than 248 characters.

Did what @MSLaguana suggest work for you?

Is there any way to identify which file paths are too long?

We haven't had time to go back and try this yet, nor have had time to install the latest version of VS2017.

Our first attempt at upgrading and building an existing project still has the same error and the suggested fix did not work.

I have te same problem !!

any solution ?