{
  "name": "AppLovin",
  "version": "3.1.3",
  "summary": "Marketing Automation and Analytics for your iOS apps",
  "description": "AppLovin turns mobile into the medium of choice for brands.\n\nOUR MISSION\n\nEnable brands to use data to drive marketing decisions and deliver relevant\ncontent on mobile.\n\nOur marketing platform leverages real-time data signals to evolve with\nindividual interests - ensuring our recommendations align with what\nconsumer really want.\n\nWe deliver relevant content to over a billion mobile consumers every month.\nWith AppLovin, brands gain insight from data to drive value for their\ncustomers and reach their mobile marketing goals.",
  "homepage": "https://www.applovin.com/",
  "license": {
    "type": "Commercial",
    "text": " SDK EULA\n \n AppLovin Software Development Kit -- End User License Agreement\n \n This End User License Agreement (the \"Agreement\") is a legal agreement\n between you (either an individual or an entity) and AppLovin\n Corporation (\"Company\") regarding the use of Company's software\n development kit entitled AppLovin SDK, which may include user\n documentation provided in \"online\" or electronic form, object code,\n interface declarations, assemblies, and sample source code (the\n \"Software\"). By filling in the user information and clicking the\n button marked \"Agree\", you agree to be bound by the terms of this\n Agreement. IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT,\n DO NOT SELECT THE \"AGREE\" BOX. YOU WILL NOT BE PROVIDED THE SOFTWARE\n UNLESS AND UNTIL YOU HAVE AGREED TO BE BOUND BY THESE TERMS.\n \n Grant of License. Company grants to you:\n \n (a) A nonexclusive, nontransferable, worldwide, royalty-free right and\n (license to use, copy and distribute the Software in conjunction with\n (the distribution of your own products the 'Products') and b) A\n (nonexclusive, nontransferable, worldwide, royalty-free right and\n (license to use the relevant and necessary components of the Software\n (solely to incorporate the Software into the Products.\n \n Proprietary Rights.\n \n Company and its licensors own, and shall retain ownership of, all\n right, title, and interest to the Software, including, without\n limitation, all copyrights and other intellectual property rights\n therein. Without limiting the foregoing, the Software is protected by\n United States copyright laws and international treaty provisions.\n Therefore, you may not use, copy, or distribute the Software without\n authorization.\n \n Restrictions.\n \n You may not (1) modify, create derivative works of, reverse engineer,\n reverse compile, or disassemble the Software, except that you may\n modify and create derivative works based upon the sample source code\n included within the Software (the 'Sample Code') and distribute the\n modified Sample Code in connection with the Product ; (2) distribute,\n sell, lease, rent, lend, or sublicense any part of the Software to any\n third party except as expressly provided herein and as necessary to\n distribute the Product; (3) use the Software to develop software to\n upload or otherwise transmit any material containing software viruses\n \n or other computer code, files or programs designed to interrupt,\n destroy, or limit the functionality of any software or hardware.\n \n You may not represent that the Products are certified or otherwise\n endorsed by Company. You may not use the Company name or any other\n trademarks or service marks of Company in connection with the\n Products.\n \n \n You will not receive any support or subscription services for the\n Software or any services from Company in connection with the Software,\n except as expressly provided in this Agreement.\n \n Data.\n \n The Software is designed to, based on permission to be secured by you,\n obtain and transmit to Company data from end users using the Products\n to facilitate the serving of ads to such end users. Such data is\n explained in the Company’s privacy policy. Without prejudice to\n Section 16 of the AppLovin Terms of Use to which you are also a party,\n you represent and warrant that in each instance you have been given\n the right by your end users to collect and transmit such data to\n Company and that you have and will abide by a privacy policy that (1)\n discloses that third parties may be using cookies, web beacons, and\n other technologies to collect information in connection with ad\n serving through the Software and (2) permits your end users to opt-out\n of tailored ad content.\n \n Confidentiality.\n \n \n You agree to maintain the confidentiality of any proprietary\n information received by you during, or prior to entering into, this\n Agreement, including, without limitation, the Software, that you\n should know is confidential or proprietary based on the circumstances\n surrounding the disclosure, including, without limitation, non-public\n technical and business information ('Confidential Information') for a\n period of five (5) years after the termination of this Agreement. This\n section shall not apply to any publicly available or independently\n developed information. You agree not to use said Confidential\n Information for any purpose except as necessary to fulfill your\n obligations and exercise your rights under this Agreement. You shall\n protect the secrecy of and avoid disclosure and unauthorized use of\n the Company's Confidential Information to the same degree that you\n take to protect your own confidential information and in no event less\n than reasonable care.\n \n Indemnification.\n \n You agree to defend, indemnify and hold harmless Company, and any of\n its directors, officers, employees, affiliates or agents, from and\n against any and all claims, losses, damages, liabilities and other\n expenses (including attorneys' fees), arising from your use,\n modification and distribution of the Software or breach of this\n Agreement.\n \n Term and Termination.\n \n This Agreement shall continue as long as you are in compliance with\n the terms specified herein or until otherwise terminated. You and or\n Company may terminate this Agreement for any reason at any time. You\n agree, upon termination, to destroy all copies of the Software within\n your possession or control. The Confidentiality, Indemnification, No\n Warranties, Limitation of Liability, and General sections set out in\n this Agreement shall survive any termination of this Agreement.\n \n NO WARRANTIES.\n \n YOU ASSUME THE ENTIRE COST OF ANY DAMAGE RESULTING FROM THE\n INFORMATION CONTAINED IN OR COMPILED BY THE SOFTWARE. YOU ASSUME ALL\n RESPONSIBILITIES FOR SELECTION OF THE SOFTWARE TO ACHIEVE YOUR\n INTENDED RESULTS, AND FOR THE INSTALLATION OF, USE OF, AND RESULTS\n OBTAINED FROM THE SOFTWARE. THE SOFTWARE IS PROVIDED 'AS IS' WITHOUT\n WARRANTIES OF ANY KIND. TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE\n LAW, COMPANY DISCLAIMS ALL WARRANTIES, EITHER EXPRESS OR IMPLIED,\n INCLUDING BUT NOT LIMITED TO IMPLIED WARRANTIES OF MERCHANTABILITY,\n FITNESS FOR A PARTICULAR PURPOSE, AND NONINFRINGEMENT WITH RESPECT TO\n THE SOFTWARE. SOME STATES DO NOT ALLOW LIMITATIONS ON IMPLIED\n WARRANTIES, SO THE ABOVE LIMITATION MAY NOT APPLY TO YOU.\n \n LIMITATION OF LIABILITY.\n \n TO THE MAXIMUM EXTENT PERMITTED BY APPLICABLE LAW, COMPANY AND ITS\n SUPPLIERS WILL NOT BE LIABLE FOR ANY DAMAGES WHATSOEVER (INCLUDING,\n WITHOUT LIMITATION, DAMAGES FOR LOSS OF BUSINESS PROFITS, BUSINESS\n INTERRUPTION, LOSS OF BUSINESS INFORMATION, OR OTHER PECUNIARY LOSS)\n ARISING OUT OF THE USE OR INABILITY TO USE THE SOFTWARE, EVEN IF\n COMPANY OR SUCH PARTY HAS BEEN ADVISED OF THE POSSIBILITY OF SUCH\n DAMAGES. IN NO EVENT WILL COMPANY'S TOTAL LIABILITY TO YOU FOR ALL\n DAMAGES IN ANY ONE OR MORE CAUSE OF ACTION EXCEED $50. THIS LIMITATION\n WILL APPLY REGARDLESS OF THE FAILURE OF ANY ESSENTIAL REMEDY. BECAUSE\n SOME STATES DO NOT ALLOW THE EXCLUSION OR LIMITATION OF LIABILITY FOR\n CONSEQUENTIAL OR INCIDENTAL DAMAGES, THE ABOVE LIMITATION MAY NOT\n \n \n APPLY TO YOU.\n \n U.S. Government-Restricted Rights.\n \n The Software and accompanying documentation are deemed to be\n \"commercial computer software\" and \"commercial computer Software\n documentation,\" respectively, pursuant to DFAR Section 227.7202 and\n FAR Section 12.212, as applicable. Any use, modification, reproduction\n release, performance, display or disclosure of the Software and\n accompanying documentation by the U.S. Government will be governed\n solely by the terms of this Agreement and shall be prohibited except\n to the extent expressly permitted by the terms of this Agreement.\n \n Export Restrictions.\n \n You may not download, export, or re-export the Software (a) into, or\n to a national or resident of, Cuba, Iraq, Libya, Yugoslavia, North\n Korea, Iran, Syria or any other country to which the United States has\n embargoed goods, or (b) to anyone on the United States Treasury\n Department's list of Specially Designated Nationals or the U.S.\n Commerce Department's Table of Deny Orders. By downloading or using\n the Software, you are representing and warranting that you are not\n located in, under the control of, or a national or resident of any\n such country or on any such list.\n \n General.\n \n This Agreement is governed by the laws of the United States and the\n State of California, without reference to conflict of laws principles.\n Any dispute between you and Company regarding this Agreement will be\n subject to the exclusive venue of the state and federal courts in the\n Northern District of California. This Agreement is the entire\n agreement between you and Company and supersedes any other\n communications or advertising with respect to the Software and\n documentation. If any provision of this Agreement is held invalid, the\n \n remainder of this Agreement shall continue in full force and effect.\n \n Correspondence.\n \n Should you have any questions concerning this Agreement, or if you\n \n desire to contact Company for any reason, please direct all\n correspondence to care@AppLovin.com.\n"
  },
  "authors": {
    "Applovin": "support@applovin.com"
  },
  "platforms": {
    "ios": null
  },
  "source": {
    "http": "http://sdk.applovin.com/applovin-ios-sdk-3.1.3.tar.bz2"
  },
  "source_files": "headers",
  "preserve_paths": "libAppLovinSdk.a",
  "frameworks": [
    "AdSupport",
    "AVFoundation",
    "CoreGraphics",
    "CoreMedia",
    "CoreTelephony",
    "MediaPlayer",
    "SystemConfiguration",
    "UIKit"
  ],
  "libraries": "AppLovinSdk",
  "xcconfig": {
    "LIBRARY_SEARCH_PATHS": "$(PODS_ROOT)/AppLovin/"
  },
  "deprecated_in_favor_of": "AppLovinSDK"
}
