{
  "name": "Dynatrace",
  "version": "7.2.10.1256",
  "summary": "Dynatrace collects app performance and usage data in real-time",
  "description": "Dynatrace provides the next generation intelligent application, service and infrastructure monitoring\nplatform.",
  "homepage": "https://www.dynatrace.com",
  "documentation_url": "https://help.dynatrace.com",
  "license": {
    "type": "Commercial",
    "text": "Terms of Service\n\n\t\t\t\t\t  1.0 Introduction.\n\t\t\t\t\t  These Terms of Service constitute the agreement between You and Dynatrace, a division of Dynatrace LLC, a Delaware company (together hereinafter referred to as 'Dynatrace'). BY USING THE SERVICE, YOU ACKNOWLEDGE THAT YOU HAVE REVIEWED AND ACCEPT THIS AGREEMENT AND ARE AUTHORIZED TO ACT ON BEHALF OF, AND BIND YOUR ENTITY ('CLIENT') TO THIS AGREEMENT.\n\t\t\t\t\t  Dynatrace reserves the right to change or modify these Terms of Service at our sole discretion at any time by posting updated Terms of Service on the Dynatrace website. Any change or modification to the Terms of Service will be effective immediately upon posting. In all cases, your continued use of the Services after publication of such modifications constitutes binding acceptance of the modified Terms of Service.\n\n\t\t\t\t\t  2.0 Scope of the Dynatrace Service; Restrictions.\n\t\t\t\t\t  The 'Service' shall be defined as the hosted services, electronic reports, analyses, documentation or Auxiliary Programs provided by Dynatrace under this Agreement which are necessary to deploy the service. Client shall have the right to use the Service ordered and made available to Client by Dynatrace hereunder for their internal use. 'Auxiliary Program'. means any software, agent or equipment that Dynatrace makes available to Client as part of the Service for purposes of facilitating access to, operation of, and/or use with, the Service.\n\t\t\t\t\t  Client shall not: (a) reverse engineer, decompile, decode, decrypt, disassemble, or in any way derive source code from the Service and/or Auxiliary Programs; (b) modify, translate, adapt, alter, or create derivative works from the Service and/or Auxiliary Programs; (c) copy, distribute, publicly display, transmit, make available in any 'public' area or accessible on the World Wide Web; (d) sublicense, sell, rent, or lease the Service and/or Auxiliary Programs; or (e) use the Service and/or Auxiliary Programs for the purposes of competing with Dynatrace, including without limitation competitive intelligence or analysis.\n\n\t\t\t\t\t  3.0 Pricing & Payment Terms.\n\t\t\t\t\t  Prices for the Service are set forth on the Dynatrace website. Payment may be made either immediately by credit card, or invoiced as provided herein. If payment is made by invoice, Dynatrace will invoice the full invoice and Client shall remit payment within thirty (30) days of the invoice date. Overdue invoices shall bear interest at 1.5% per month or such lower rate as shall be the then highest rate permitted by law. Client shall pay all applicable taxes due under this Agreement, except taxes based on Dynatrace's net income unless Client provides Dynatrace with a properly completed exemption certificate. All prices are exclusive of all taxes, duties, VAT, withholdings and other governmental assessments. Dynatrace reserves the right to suspend Services and delete all Client date held by Dynatrace, if Client fails to pay as provided herein.\n\n\t\t\t\t\t  4.0 Intellectual Property.\n\t\t\t\t\t  Client acknowledges and agrees that all ownership and proprietary rights to the Service, Auxiliary Programs and the contents thereof and all related intellectual property are and shall remain the property exclusively of Dynatrace. Dynatrace retains full rights of ownership and use in: (a) any programs, products, materials or methodologies or materials of Dynatrace created and/or developed by Dynatrace prior to or independently of the Services contemplated herein ('Pre-existing Works'); and (b) all materials, methodologies, processes, techniques, ideas, concepts, trade secrets, and know-how, which may be created or developed in connection with the Services and are modifications and/or derivatives of Dynatrace's Pre-existing Works.\n\n\t\t\t\t\t  5.0 Confidentiality.\n\t\t\t\t\t  Each party agrees: (a) that it will not disclose to any third party or use any confidential or proprietary information disclosed to it by the other party (collectively, 'Confidential Information') except as expressly permitted in this Agreement; and (b) that it will take all commercially reasonable measures to maintain the confidentiality of all Confidential Information of the other party in its possession or control, which will in no event be less than the measures it uses to maintain the confidentiality of its own information of similar importance. Confidential Information will not include information that: (i) is in or enters the public domain without breach of this Agreement; (ii) the receiving party lawfully receives from a third party without restriction on disclosure and without breach of a nondisclosure obligation; or (iii) the receiving party develops independently.\n\n\t\t\t\t\t  Client agrees that the Service: i) is Confidential Information; and ii) constitutes valuable assets and confidential trade secrets of Dynatrace. Client therefore agrees to keep in confidence and protect the Service, including but not limited to screenshots, ideas, concepts, designs, specifications, computer programs and strategies from disclosure to third parties and restrict its use as provided in this Agreement\n\n\t\t\t\t\t  6.0 Term and Termination.\n\t\t\t\t\t  The term ('Term') of the Service shall be specified as specified on the Dynatrace website.\n\n\t\t\t\t\t  7.0 Warranty.\n\t\t\t\t\t  Dynatrace warrants that the Service will function in substantial compliance with their specifications published by Dynatrace (available at help.dynatrace.com). Client acknowledges that changes by Client to its monitoring profile or corrupted, incomplete and/or interrupted data received by Dynatrace from Client's site(s), may have a material impact on the accuracy, reliability and/or timeliness of Service results, and Dynatrace shall not be responsible for any such factors beyond its reasonable control. THE ABOVE WARRANTIES ARE DYNATRACE'S ONLY WARRANTIES AND NO OTHER WARRANTY, EXPRESS OR IMPLIED, INCLUDING THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE, WILL APPLY.\n\n\t\t\t\t\t  Client represents and warrants that Client shall; (i) abide by all laws, rules and regulations; and (ii) be responsible for all content or materials originating from its Web site(s) (its 'Content').\n\n\t\t\t\t\t  8.0 Limitation of Liability.\n\t\t\t\t\t  THE ENTIRE LIABILITY OF DYNATRACE AND CLIENT'S EXCLUSIVE REMEDY FOR DAMAGES FROM ANY CAUSE RELATED TO OR ARISING OUT OF THIS AGREEMENT, REGARDLESS OF THE FORM OF ACTION, WHETHER IN CONTRACT, TORT, OR OTHERWISE, WILL NOT EXCEED ANY FEES PAID, IF ANY, BY CLIENT UNDER THIS AGREEMENT FOR THE SERVICES GIVING RISE TO THE CLAIM OVER THE IMMEDIATELY PRECEDING TWELVE (12) MONTH PERIOD.\n\n\t\t\t\t\t  9.0 Limitation of Damages.\n\t\t\t\t\t  IN NO EVENT WILL DYNATRACE BE LIABLE FOR: (I) INCIDENTAL, INDIRECT, SPECIAL, PUNITIVE, EXEMPLARY OR CONSEQUENTIAL DAMAGES; OR (II) LOSS OF OR DAMAGE TO CLIENT'S DATA FROM ANY CAUSE, INCLUDING WITHOUT LIMITATION LOSS OF USE, REVENUES, PROFITS, SAVINGS, EVEN IF DYNATRACE KNEW OR SHOULD HAVE KNOWN OF THE POSSIBILITY OF SUCH DAMAGES.\n\n\t\t\t\t\t  10.0 Indemnification.\n\t\t\t\t\t  Each party (the 'Indemnifying Party') shall indemnify, defend and hold harmless the other party and such other party's officers, directors, employees and agents (each, an 'Indemnified Party') from and against any and all damages, liabilities, costs and expenses (including reasonable attorneys' fees) incurred by an Indemnifying Party's breach (i) of any obligation set forth in sections 2.0 (Scope of the Service; Restrictions) or 5.0 (Confidentiality).\n\n\t\t\t\t\t  11.0 Trial Service.\n\t\t\t\t\t  This section shall only apply if the Service has been provided for Client's trial and evaluation ('Trial Service'). The Trial Service is provided AS IS, with no warranties, express or implied, for the sole and exclusive purpose of enabling Client to evaluate the Subscription Service. The Trial Subscription Service shall automatically time-out at the end of the evaluation period.\n\n\t\t\t\t\t  12.0 Early Access Program.\n\t\t\t\t\t  This section shall only apply if the Subscription Service has been provided to Client for participation in the 'Early Access Program' for a new release of Dynatrace. During the Early Access Program Dynatrace will be in the stage of 'Early Adoption' and is provisioned for test purposes only. The Client acknowledges that the Service and Auxiliary Programs are in a stage of 'Early Adoption'. Therefore, Auxiliary Programs shall only be installed on computers which are regularly used by the Client for test purposes and are the property of or are permanently owned by the Client ('Designated Computers'). The use of Auxiliary Programs in a productive environment without any additional testing or adaptation to the specific requirements of an individual system environment may cause severe system failure.\n\n\t\t\t\t\t  The Early Adoption Program Services are provided AS IS, with no warranties, express or implied. Client agrees that due to the nature of the Early Adoption Program, Client may receive non-public technology, know-how and trade secrets, including, without limitation, ideas, concepts, designs, specifications, computer programs and strategies. Client agrees that the foregoing shall be treated as Confidential Information as specified in section 5.0 (Confidentiality).\n\n\t\t\t\t\t  13.0 Support for the Services.\n\t\t\t\t\t  Premium support for the Services is available on a subscription basis. Such support is provided AS IS, with no warranty, express or implied. Expert services are available on demand, on an hourly bases, at the Dynatrace then-current rates.\n\n\t\t\t\t\t  14.0 General Provisions.\n\t\t\t\t\t  14.1 Assignment.\n\t\t\t\t\t  Any attempt to assign this Agreement, without written consent, will be null and void.\n\n\t\t\t\t\t  14.2 Force Majeure.\n\t\t\t\t\t  Neither party will be responsible for any failure to perform due to causes beyond its reasonable control, including, but not limited to, acts of God, war, acts of terrorism, riot, failure of electrical, Internet, co-location or telecommunications service, acts of civil or military authorities, fire, floods, earthquakes, accidents, strikes, or fuel crises.\n\n\t\t\t\t\t  14.3 Governing Law.\n\t\t\t\t\t  This Agreement will be governed by and construed in accordance with the laws of the State of Michigan without regard to its conflicts of law principles. If the entity selling the Service is a wholly owned affiliate of Dynatrace LLC, this Agreement will be governed by the laws of the country in which such affiliate is situated.\n\n\t\t\t\t\t  14.4 Notice.\n\t\t\t\t\t  Any notice required by this Agreement must be given in writing and shall be deemed delivered upon receipt when delivered personally or upon confirmation of receipt following delivery by internationally recognized overnight courier service.\n\n\t\t\t\t\t  14.5 Waiver.\n\t\t\t\t\t  No failure or delay by any party in exercising any right, power, or remedy under this Agreement, except as specifically provided herein, shall operate as any waiver of any such right, power, or remedy.\n\n\t\t\t\t\t  14.6 Severability.\n\t\t\t\t\t  If any provision of this Agreement is held by a court to be invalid or unenforceable for any reason, the remaining provisions will continue in full force and effect without being impaired or invalidated in any way.\n\n\t\t\t\t\t  14.7 Entire Agreement.\n\t\t\t\t\t  These Terms of Service constitute the complete and exclusive agreement between the parties with respect to the subject matter hereof, superseding any prior agreements and communications (both written and oral). The terms and conditions contained in any purchase order shall be of no force or effect, even if the order is accepted by Dynatrace. This Agreement may only be modified, or any rights under it waived, by a written document executed by both parties.\n\n\t\t\t\t\t  14.8 Survival.\n\t\t\t\t\t  Sections 5, 7, 8, 9, 10 and 12 shall survive expiration or termination of this Agreement.\n\t\t\t\t\t"
  },
  "authors": {
    "Dynatrace": "support.mobile@dynatrace.com"
  },
  "social_media_url": "https://twitter.com/dynatrace",
  "platforms": {
    "ios": "8.0"
  },
  "source": {
    "http": "https://files.dynatrace.com/mobileagent/ios/7.2.10.1256/dynatrace-mobile-agent-ios-7.2.10.1256.zip"
  },
  "pod_target_xcconfig": {
    "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64"
  },
  "user_target_xcconfig": {
    "EXCLUDED_ARCHS[sdk=iphonesimulator*]": "arm64"
  },
  "default_subspecs": "framework",
  "source_files": "iOS/agent/*.{h,m}",
  "public_header_files": "iOS/agent/*.h",
  "frameworks": [
    "CoreLocation",
    "CoreTelephony",
    "Security",
    "SystemConfiguration",
    "MessageUI",
    "WebKit"
  ],
  "libraries": [
    "sqlite3",
    "z",
    "c++"
  ],
  "requires_arc": true,
  "compiler_flags": "-DOS_OBJECT_USE_OBJC=1",
  "subspecs": [
    {
      "name": "lib",
      "ios": {
        "vendored_libraries": "iOS/agent/libDynatrace.a"
      },
      "source_files": "iOS/agent/*.{h,m}",
      "public_header_files": "iOS/agent/*.h"
    },
    {
      "name": "framework",
      "ios": {
        "vendored_frameworks": "iOS/agent/Dynatrace.framework"
      }
    }
  ]
}
