Add workaround for LLDB latency.

Essentially attempting to make plist generation as fast as possible,
through recommended XML plist generation, but also slowing down the
time taken before we launch LLDB such that the dSYM bundles are more
likely to have been loaded beforehand.

On some builds, DebugSymbols.framework will be unable to find the
dSYM bundle, which can be resolved through rebuilding... but that is
a horrible solution that we can improve on.

mdimport alone does not work, even though we have confirmed the
indexing of dSYMs with mdfind on the com_apple_xcode_dsym_uuids
attribute. Might rely on DBGShellCommands instead.

Will continue to investigate how, if mdimport is not sufficient, to
ensure that LLDB is able to find all dSYM bundles in time before the
debug session is started.

PiperOrigin-RevId: 186493053
1 file changed
tree: 79549271ce3c5c22279cc7569b67d2582f7051f0
  1. site/
  2. src/
  3. .gitignore
  4. AUTHORS
  5. CONTRIBUTING.md
  6. CONTRIBUTORS
  7. LICENSE.txt
  8. README.md
README.md

Tulsi - an Xcode Project Generator For Bazel

Building and installing

  1. Open src/Tulsi.xcodeproj, and within Xcode, build the TulsiApp.

  2. Run the TulsiApp.

Notes

Tulsi-generated Xcode projects use Bazel to build, not Xcode via xcbuild. This means that many common components of an Xcode project are handled differently than you may be used to. Notable differences:

  • BUILD files are the source of truth; most changes made to your Xcode project won't affect the build.
    • Adding new sources to the Xcode project won't include them in your app; they must be added to BUILD files.
    • Changes made to your BUILD files, such as adding new library dependencies, are incorporated automatically when building your generated project. The only time you need to re-run Tulsi is if you want to add additional build targets or have new source files show up in Xcode for editing.
    • The Info.plist file is governed entirely by BUILD rules in Bazel and is not displayed in the Xcode UI.
    • Changes to compilation flags (i.e. -DHELLO) should be made in the BUILD files in order to affect the build; changes made to compilation settings in the Xcode UI will only affect indexing. You may want to regenerate your project using Tulsi after modifying compilation flags.