<!doctype html> <html> <head> <title>Debugging | Joplin</title> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <link rel="stylesheet" href="https://joplin.cozic.net/css/bootstrap.min.css"> <link rel="shortcut icon" type="image/x-icon" href="favicon.ico"> <link rel="stylesheet" href="https://joplin.cozic.net/css/fontawesome-all.min.css"> <script src="https://joplin.cozic.net/js/jquery-3.2.1.slim.min.js"></script> <style> body { background-color: #F1F1F1; color: #333333; } table { margin-bottom: 1em; } td, th { padding: .8em; border: 1px solid #ccc; } h1, h2 { border-bottom: 1px solid #eaecef; padding-bottom: 0.3em; font-family: -apple-system, BlinkMacSystemFont, "Segoe UI", Helvetica, Arial, sans-serif, "Apple Color Emoji", "Segoe UI Emoji", "Segoe UI Symbol"; font-weight: 600; font-size: 2em; margin-bottom: 16px; } h2 { font-size: 1.6em; } h3 { font-size: 1.3em; } code { color: black; background-color: #eee; border: 1px solid #ccc; font-size: .85em; } pre code { border: none; } pre { font-size: .85em; } #toc ul { margin-bottom: 10px; } #toc { padding-bottom: 1em; } .title-icon { height: 2em; } .sub-title { font-weight: bold; font-size: 1.5em; } .container { background-color: white; padding: 0; box-shadow: 0 10px 20px #888888; } table.screenshots { margin-top: 2em; margin-bottom: 2em; } table.screenshots th { height: 3em; text-align: center; } table.screenshots th, table.screenshots td { border: 1px solid #C2C2C2; } img[align="left"] { margin-right: 10px; margin-bottom: 10px; } .mobile-screenshot { height: 40em; padding: 1em; } .cli-screenshot-wrapper { background-color: black; vertical-align: top; padding: 1em 2em 1em 1em; } .cli-screenshot { font-family: "Monaco", "Inconsolata", "CONSOLAS", "Deja Vu Sans Mono", "Droid Sans Mono", "Andale Mono", monospace; background-color: black; color: white; border: none; } .cli-screenshot .prompt { color: #48C2F0; } .top-screenshot { margin-top: 2em; text-align: center; } .header { position: relative; padding-left: 2em; padding-right: 2em; padding-top: 1em; padding-bottom: 1em; color: white; background-color: #2B2B3D; } .header a h1 { color: white; } .content { padding-left: 2em; padding-right: 2em; padding-bottom: 2em; padding-top: 2em; } .forkme { position: absolute; right: 0; top:0; } .nav-wrapper { position: relative; width: inherit; } .nav { background-color: black; display: table; width: inherit; } .nav.sticky { position:fixed; top: 0; width: inherit; box-shadow: 0 0 10px #000000; } .nav a { color: white; display: inline-block; padding: .6em .9em .6em .9em; } .nav ul { padding-left: 2em; margin-bottom: 0; display: table-cell; min-width: 250px; } .nav ul li { display: inline-block; padding: 0; } .nav li.selected { background-color: #222; font-weight: bold; } .nav-right { display: table-cell; width: 100%; text-align: right; vertical-align: middle; line-height: 0; } .nav-right .share-btn { display: none; } .nav-right .small-share-btn { display: none; } .footer { padding-top: 1em; border-top: 1px solid #d4d4d4; margin-top: 2em; color: gray; font-size: .9em; } @media all and (min-width: 400px) { .nav-right .share-btn { display: inline-block; } .nav-right .small-share-btn { display: none; } } </style> </head> <body> <div class="container"> <div class="header"> <a class="forkme" href="https://github.com/laurent22/joplin"><img src="https://joplin.cozic.net/images/ForkMe.png"/></a> <a href="https://joplin.cozic.net"><h1 id="joplin"><img class="title-icon" src="https://joplin.cozic.net/images/Icon512.png">oplin</h1></a> <p class="sub-title">An open source note taking and to-do application with synchronisation capabilities.</p> </div> <div class="nav-wrapper"> <div class="nav"> <ul> <li class=""><a href="https://joplin.cozic.net/" title="Home"><i class="fa fa-home"></i></a></li> <li><a href="https://discourse.joplin.cozic.net" title="Forum">Forum</a></li> <li><a class="help" href="#" title="Menu">Menu</a></li> </ul> <div class="nav-right"> <!-- <iframe class="share-btn" src="https://www.facebook.com/plugins/share_button.php?href=http%3A%2F%2Fjoplin.cozic.net&layout=button&size=small&mobile_iframe=true&width=60&height=20&appId" width="60" height="20" style="border:none;overflow:hidden" scrolling="no" frameborder="0" allowTransparency="true"></iframe> <iframe class="share-btn" src="https://platform.twitter.com/widgets/tweet_button.html?url=http%3A%2F%2Fjoplin.cozic.net" width="62" height="20" title="Tweet" style="border: 0; overflow: hidden;"></iframe> --> <iframe class="share-btn share-btn-github" src="https://ghbtns.com/github-btn.html?user=laurent22&repo=joplin&type=star&count=true" frameborder="0" scrolling="0" width="100px" height="20px"></iframe> </div> </div> </div> <div class="content"> <div id="toc"><ul> <li> <p>Applications</p> <ul> <li><a href="https://joplin.cozic.net/desktop">Desktop application</a></li> <li><a href="https://joplin.cozic.net/mobile">Mobile applications</a></li> <li><a href="https://joplin.cozic.net/terminal">Terminal application</a></li> <li><a href="https://joplin.cozic.net/clipper">Web Clipper</a></li> </ul> </li> <li> <p>Support</p> <ul> <li><a href="https://discourse.joplin.cozic.net">Joplin Forum</a></li> <li><a href="https://joplin.cozic.net/e2ee">How to enable end-to-end encryption</a></li> <li><a href="https://joplin.cozic.net/spec">End-to-end encryption spec</a></li> <li><a href="https://joplin.cozic.net/debugging">How to enable debug mode</a></li> <li><a href="https://joplin.cozic.net/faq">FAQ</a></li> </ul> </li> <li> <p>About</p> <ul> <li><a href="https://joplin.cozic.net/changelog">Changelog</a></li> <li><a href="https://joplin.cozic.net/stats">Stats</a></li> <li><a href="https://joplin.cozic.net/donate">Donate</a></li> </ul> </li> </ul> </div> <h1 id="how-to-enable-debugging">How to enable debugging</h1> <p>It is possible to get the apps to display or log more information that might help debug various issues.</p> <h2 id="desktop-application">Desktop application</h2> <ul> <li>Add a file named "flags.txt" in the config directory (should be <code>~/.config/joplin-desktop</code> or <code>c:\Users\YOUR_NAME\.config\joplin-desktop</code>) with the following content: <code>--open-dev-tools --log-level debug</code></li> <li>Restart the application</li> <li>The development tools should now be opened. Click the "Console" tab</li> <li>Now repeat the action that was causing problem. The console might output warnings or errors - please add them to the GitHub issue. Also open log.txt in the config folder and if there is any error or warning, please also add them to the issue.</li> </ul> <h2 id="cli-application">CLI application</h2> <ul> <li>Start the app with <code>joplin --log-level debug</code></li> <li>Check the log.txt as specified above for the desktop application and attach the log to the GitHub issue (or just the warnings/errors if any)</li> </ul> <h2 id="mobile-application">Mobile application</h2> <ul> <li>In the options, enable Advanced Option</li> <li>Open the log in the top right hand corner menu and post a screenshot of any error/warning.</li> </ul> <h1 id="creating-a-low-level-bug-report-on-android">Creating a low-level bug report on Android</h1> <p><a href="https://developer.android.com/studio/debug/bug-report">https://developer.android.com/studio/debug/bug-report</a></p> <p>To get a bugreport directly from your device, do the following:</p> <ul> <li>Be sure you have <a href="https://developer.android.com/studio/debug/dev-options">Developer Options</a> enabled.</li> <li>In Developer options, tap Take bug report.</li> <li>Select the type of bug report you want and tap Report.</li> </ul> <p>After a moment you get a notification that the bug report is ready. To share the bug report, tap the notification.</p> <h1 id="creating-a-low-level-bug-report-on-ios">Creating a low-level bug report on iOS</h1> <p>Some crashes cannot be investigated using Joplin's own tools. In that case, it can be very helpful to provide a native iOS crash report.</p> <p>For this, please follow these instructions:</p> <p>You can send it to this address <a href="https://raw.githubusercontent.com/laurent22/joplin/master/Assets/Adresse.png">https://raw.githubusercontent.com/laurent22/joplin/master/Assets/Adresse.png</a></p> <p><a href="https://developer.apple.com/library/content/qa/qa1747/_index.html">https://developer.apple.com/library/content/qa/qa1747/_index.html</a></p> <p>Getting Crash Logs Directly From a Device Without Xcode</p> <p>Your users can retrieve crash reports from their device and send them to you via email by following these instructions.</p> <p>(It is not possible to get device console logs directly from a device)</p> <p>1) Open Settings app</p> <p>2) Go to Privacy, then Diagnostics & Usage</p> <p>3) Select Diagnostics & Usage Data</p> <p>4) Locate the log for the crashed app. The logs will be named in the format: <AppName><em><DateTime></em><DeviceName></p> <p>5) Select the desired log. Then, using the text selection UI select the entire text of the log. Once the text is selected, tap Copy</p> <p>6) Paste the copied text to Mail and send to an email address as desired</p> <script> function stickyHeader() { return; // Disabled if ($(window).scrollTop() > 179) { $('.nav').addClass('sticky'); } else { $('.nav').removeClass('sticky'); } } $('#toc').hide(); $('.help').click(function(event) { event.preventDefault(); $('#toc').show(); }); $(window).scroll(function() { stickyHeader(); }); (function(i,s,o,g,r,a,m){i['GoogleAnalyticsObject']=r;i[r]=i[r]||function(){ (i[r].q=i[r].q||[]).push(arguments)},i[r].l=1*new Date();a=s.createElement(o), m=s.getElementsByTagName(o)[0];a.async=1;a.src=g;m.parentNode.insertBefore(a,m) })(window,document,'script','https://www.google-analytics.com/analytics.js','ga'); ga('create', 'UA-103586105-1', 'auto'); ga('send', 'pageview'); </script> <div class="footer"> Copyright (c) 2016-2018 Laurent Cozic </div> </body> </html>