<?xml version="1.0" encoding="UTF-8"?>
<root>
  <libname>iKSCrash</libname>
  <version>1.00</version>
  <dependsOn>libKSCrashRecording.a</dependsOn>
  <dependsOn>libKSCrashInstallations.a</dependsOn>
  <dependsOn>libKSCrashFilters.a</dependsOn>
  <dependsOn>libKSCrashSinks.a</dependsOn>
  <class>
    <name>KSCrashInstallation</name>
    <shortname>KSCrashInstallation</shortname>
    <objectwrapper></objectwrapper>
    <version>1.00</version>
    <method>
      <name>Install</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Installs the crash reporter with the default configuration (Mach exceptions + signals). Call once from Application_Start.</comment>
      <params></params>
    </method>
    <method>
      <name>InstallWithMonitors</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Installs the crash reporter with a custom set of monitors. Pass a comma-separated string of: machException, signal, cppException, objcException, mainThreadDeadlock, zombie.</comment>
      <params>
        <param>
          <name>Monitors</name>
          <type>String</type>
        </param>
      </params>
    </method>
    <method>
      <name>SetReportUrl</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Sets the URL to which crash reports will be POSTed. Call before Install or at any time.</comment>
      <params>
        <param>
          <name>ReportUrl</name>
          <type>String</type>
        </param>
      </params>
    </method>
    <method>
      <name>SendAllReports</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Sends all pending crash reports to the configured URL. Raises the ReportsSent(Success As Boolean, ReportCount As Int) event when done.</comment>
      <params>
        <param>
          <name>EventName</name>
          <type>String</type>
        </param>
      </params>
      <events>
        <event>
          <name>ReportsSent</name>
          <params>
            <param>
              <name>Success</name>
              <type>Boolean</type>
            </param>
            <param>
              <name>ReportCount</name>
              <type>Int</type>
            </param>
          </params>
        </event>
      </events>
    </method>
    <method>
      <name>PrintAllReportsToConsole</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Prints all pending crash reports to the Xcode console in Apple format. Useful during development.</comment>
      <params></params>
    </method>
    <method>
      <name>DeleteAllReports</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Permanently deletes all pending crash reports without sending them.</comment>
      <params></params>
    </method>
    <method>
      <name>SetUserInfoKey</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Attaches a custom key-value pair that will appear in every future crash report. Call as many times as needed.</comment>
      <params>
        <param>
          <name>Key</name>
          <type>String</type>
        </param>
        <param>
          <name>Value</name>
          <type>String</type>
        </param>
      </params>
    </method>
    <method>
      <name>RemoveUserInfoKey</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Removes a previously set custom user-info key from crash reports.</comment>
      <params>
        <param>
          <name>Key</name>
          <type>String</type>
        </param>
      </params>
    </method>
    <method>
      <name>ReportCustomException</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Records a custom exception (e.g. from a scripting language). StackTrace should be a newline-separated list of frame strings. Set TerminateApp = True to also kill the app.</comment>
      <params>
        <param>
          <name>Name</name>
          <type>String</type>
        </param>
        <param>
          <name>Reason</name>
          <type>String</type>
        </param>
        <param>
          <name>Language</name>
          <type>String</type>
        </param>
        <param>
          <name>LineOfCode</name>
          <type>String</type>
        </param>
        <param>
          <name>StackTrace</name>
          <type>String</type>
        </param>
        <param>
          <name>TerminateApp</name>
          <type>Boolean</type>
        </param>
      </params>
    </method>
    <method>
      <name>DidCrashLastLaunch</name>
      <returntype>Boolean</returntype>
      <version>1.00</version>
      <comment>Returns True if the app crashed during its previous launch. Check this after Install to decide whether to prompt the user.</comment>
      <params></params>
    </method>
    <method>
      <name>PendingReportCount</name>
      <returntype>Int</returntype>
      <version>1.00</version>
      <comment>Returns the number of crash reports waiting to be sent.</comment>
      <params></params>
    </method>
    <method>
      <name>SetIntrospectMemory</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Enable (True) or disable (False) memory introspection at crash time. When enabled, objects on the stack and in registers are captured in the report.</comment>
      <params>
        <param>
          <name>Enabled</name>
          <type>Boolean</type>
        </param>
      </params>
    </method>
    <method>
      <name>SetZombieTrackingEnabled</name>
      <returntype>void</returntype>
      <version>1.00</version>
      <comment>Enable (True) or disable (False) zombie (dangling pointer) detection. Adds slight overhead to dealloc but helps track use-after-free crashes.</comment>
      <params>
        <param>
          <name>Enabled</name>
          <type>Boolean</type>
        </param>
      </params>
    </method>
  </class>
</root>
