docs: function getDebuggerAppKey (bundleId, platformVersion, appDict) {
    let appId;
    if (parseFloat(platformVersion) >= 8) {
      for (const [key, data] of _.toPairs(appDict)) {
        if (data.bundleId === bundleId) {
          appId = key;
          break;
        }
      }
      // now we need to determine if we should pick a proxy for this instead
      if (appId) {
        log.debug(`Found app id key '${appId}' for bundle '${bundleId}'`);
        let proxiedAppIds = [];
        for (const [key, data] of _.toPairs(appDict)) {
          if (data.isProxy && data.hostId === appId) {
            log.debug(`Found separate bundleId '${data.bundleId}' ` +
                      `acting as proxy for '${bundleId}', with app id '${key}'`);
            proxiedAppIds.push(key);
          }
        }
        if (proxiedAppIds.length) {
          // use the last app being proxied
          appId = _.last(proxiedAppIds);
          log.debug(`Using proxied app id '${appId}'`);
        }
      }
    } else {
      if (_.has(appDict, bundleId)) {
        appId = bundleId;
      }
    }
  
    return appId;
  }