{
  "name": "TapjoySDK",
  "version": "9.1.4",
  "license": {
    "type": "Commercial",
    "text": "    \n    https://dashboard.tapjoy.com/sdk/license\n    \n    Copyright © 2013 Tapjoy, Inc. All Rights Reserved\n    TAPJOY SDK DOWNLOAD LICENSE AGREEMENT\n\n    BY USING THE SDK, YOU AND THE COMPANY OR ENTITY THAT YOU REPRESENT (\"YOU\") ARE AGREEING TO BE BOUND BY AND ARE BECOMING A PARTY TO THIS TAPJOY SDK LICENSE AGREEMENT (\"AGREEMENT\"). IF YOU DO NOT AGREE TO ALL OF THE TERMS OF THIS AGREEMENT, CLICK THE \"CANCEL\" BUTTON AND THE DOWNLOAD AND INSTALLATION PROCESS WILL NOT CONTINUE. IF THESE TERMS ARE CONSIDERED AN OFFER, ACCEPTANCE IS EXPRESSLY LIMITED TO THESE TERMS.\n\n\tGRANT. Subject to Your compliance with all of the terms and conditions of this Agreement, Tapjoy, Inc. (\"Tapjoy\") hereby grants You (i) if you are a publisher, a limited, personal, non-sublicensable, non-transferable, royalty-free, nonexclusive license to copy, install and use the SDK development kit that You are about to download along with any documentation that accompanies it (collectively, the \"SDK\") solely for the purpose of internally creating end user mobile (including tablet) applications (\"Application(s)\") that are interoperable with the Tapjoy service (as such service is described at www.Tapjoy.com) (the \"Service\"), and (ii) if you are an advertiser, a limited, personal, non-sublicensable, non-transferable, royalty-free, nonexclusive license to copy, install and use the SDK solely for the purpose of advertising with the Tapjoy Service. You may exercise the foregoing license only within and for the benefit of Your organization. You shall not distribute the SDK to any third party.\n\tUSER DATA. You agree that the SDK will enable You to exchange Your user information with Tapjoy which may inculde UDID (unique device identifier), MAC address and OpenUDID. As a condition of any user of the SDKs, You must obtain express consent to collect and share user data with Tapjoy by including, as applicable, in Your terms of service and/or privacy policy provisions the following (or similar terms that are no less protective of Tapjoy):\n\n\tYou agree that in order to provide services to you which you have requested including relevant content and advertising, and to track and award virtual rewards, we may exchange information that we collect from you with third parties who help us perform these tasks and provide these products and services including UDID (unique device identifier), MAC address, OpenUDID, information about your device systems, application software and periphials, and the country setting on the device.\n\tRESTRICTIONS. You shall not, directly or indirectly (or allow any third party to): use the SDK to create (or facilitate the creation of) any product or service that is competitive (in any way) with the Service; use the SDK for any commercial purpose (except to the extent, if you are a publisher, your Application(s) are considered to have a \"commercial purpose\"); rent or lease the SDK; use the SDK for timesharing or service bureau purposes, or otherwise for the benefit of third parties; use the SDK for performing comparisons or other \"benchmarking\" activities, either alone or in connection with any software (and You will not publish any such performance information or comparisons); use the SDK except as expressly licensed above; or remove or alter or obscure any proprietary notices from the SDK. Further, if Tapjoy makes available and You use the SDK in compiled form, You shall not decompile, reverse engineer, modify or create derivative works of the SDK (including the runtime components and any other portions thereof).\n\tOWNERSHIP; FEEDBACK. As between the parties, title, ownership rights, and intellectual property rights in and to the SDK, and any copies or portions thereof, shall remain in Tapjoy and its suppliers or licensors. You agree that Tapjoy may collect and use comments, feedback, suggestions and other technical information provided by you, if any, related to the SDK, and that Tapjoy may use this information to improve, develop and otherwise provide applications, services and technologies. You understand that Tapjoy may modify or discontinue offering the SDK at any time. The SDK is protected by the copyright laws of the United States and international copyright treaties. Tapjoy reserves all rights in the SDK not expressly licensed above.\n\tSUPPORT AND UPGRADES. If Tapjoy provides You with any upgrades, patches, enhancements, or fixes for the SDK, then the items that are provided will become part of the SDK and subject to this Agreement. Tapjoy shall have no obligation, however, under this Agreement to provide any upgrades, patches, enhancements, fixes or any other support to You for the SDK. Tapjoy may make such support services available to You under a separate agreement for a fee.\n\tINDEMNITY. You agree that Tapjoy shall have no liability whatsoever for any use You make of the SDK. You hereby agree to indemnify and hold harmless Tapjoy from any and all claims, demands, damages, losses, liabilities, costs, and expenses (including attorney's fees) arising from Your use of the SDK.\n\tWARRANTY AND DISCLAIMER. TAPJOY PROVIDES THE SDK \"AS IS\" AND WITHOUT WARRANTY OF ANY KIND, AND TAPJOY HEREBY DISCLAIMS ALL EXPRESS OR IMPLIED WARRANTIES, INCLUDING WITHOUT LIMITATION WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE, PERFORMANCE, ACCURACY, RELIABILITY, AND NON-INFRINGEMENT. THIS DISCLAIMER OF WARRANTY CONSTITUTES AN ESSENTIAL PART OF THIS AGREEMENT.\n\tLIMITATION OF LIABILITY. UNDER NO CIRCUMSTANCES (AND UNDER NO LEGAL THEORY, TORT, CONTRACT, STRICT LIABILITY, OR OTHERWISE) SHALL TAPJOY OR ITS LICENSORS OR SUPPLIERS BE LIABLE TO YOU OR ANY OTHER PERSON FOR ANY: (I) DIRECT, INDIRECT, SPECIAL, INCIDENTAL, OR CONSEQUENTIAL DAMAGES OF ANY CHARACTER, EVEN IF FORESEEABLE, INCLUDING, WITHOUT LIMITATION, COST OF SUBSTITUTE TECHNOLOGY, DAMAGES FOR LOST PROFITS, LOSS OF GOODWILL, WORK STOPPAGE, ACCURACY OF RESULTS, LOSS OF DATA, COMPUTER FAILURE OR MALFUNCTION, (II) AMOUNTS IN THE AGGREGATE IN EXCESS OF US$100.00, OR (III) MATTERS BEYOND THEIR REASONABLE CONTROL.\n\tTERMINATION. You may terminate this Agreement and the license granted herein at any time by destroying or removing from all hard drives, networks, and other storage media all copies of the SDK. Tapjoy may terminate this Agreement and the license granted herein immediately if You breach any provision of this Agreement. Upon receiving notice of termination from Tapjoy You agree to destroy or remove from such storage media all copies of the SDK. Sections 2 through 12 shall survive termination of this Agreement.\n\tEXPORT CONTROLS. You shall comply with all export laws and restrictions and regulations of the Department of Commerce, the United States Department of Treasury Office of Foreign Assets Control (\"OFAC\"), or other United States or foreign agency or authority, and not to export, or allow the export or re-export of the SDK in violation of any such restrictions, laws or regulations. By downloading or using the SDK, You are agreeing to the foregoing and You are representing and warranting that You are not located in, under the control of, or a national or resident of any restricted country or on any such list.\n\tU.S. GOVERNMENT RESTRICTED RIGHTS. Use, duplication or disclosure by the Government is subject to restrictions set forth in subparagraphs (a) through (d) of the Commercial Computer-Restricted Rights clause at FAR 52.227-19 when applicable, or in subparagraph (c) (1) (ii) of the Rights in Technical Data and Computer Software clause in DFARS 252.227-7013, and in similar clauses in the NASA FAR Supplement.\n\tMISCELLANEOUS. You shall not assign or transfer any part of this Agreement to any third party. This Agreement represents the complete agreement concerning this license between the parties and supersedes all prior agreements and representations between them. If any provision of this Agreement is held to be unenforceable for any reason, such provision shall be reformed only to the extent necessary to make it enforceable. This Agreement shall be governed by and construed under California law as such law applies to agreements between California residents entered into and to be performed within California. Any disputes arising from this Agreement shall be subject to the sole and exclusive jurisdiction of, and venue in, the state and Federal Courts located in San Francisco, California (and the You hereby consent and submit to such jurisdiction and venue). The prevailing party in any action or proceeding to enforce this Agreement will be entitled to costs and attorneys' fees.\n\n    Tapjoy, Inc.\n    111 Sutter Street, 13th Floor\n    San Francisco, CA 94104\n\n    When you access and download the SDK, You may also have access to use the Silverlight SharpZipLib software product. The Silverlight SharpZip Lib software is licensed pursuant to the GNU General Public License version 2 (GPLv2), Copyright (C) 1989, 1991 Free Software Foundation, Inc. 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA which is available at http://slsharpziplib.codeplex.com/license (the \"License\"). Any use of Silverlight SharpZipLib shall be subject to the License. For a complete machine-readable copy of the Silverlight SharpZipLib 0.86.0.518 source code, please contact Tapjoy at the address set forth above or download it at: http://slsharpziplib.codeplex.com/releases/view/50561.\n\n    When you access and download the SDK, You may have access to use the UIDevice-with-UniqueIdentifier-for-iOS-5. The UIDevice-with-UniqueIdentifier-for-iOS-5 software is licensed pursuant to the MIT license as follows and available at https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5/blob/master/license. For a complete machine-readable copy of the UIDevice-with-UniqueIdentifier-for-iOS-5 source code, please contact Tapjoy at the address set forth above or download it at https://github.com/gekitz/UIDevice-with-UniqueIdentifier-for-iOS-5:\n\n    Copyright (C) 2012, Georg Kitz, @gekitz\n\n    Permission is hereby granted, free of charge, to any person obtaining a copy of this software and associated documentation files (the \"Software\"), to deal in the Software without restriction, including without limitation the rights to use, copy, modify, merge, publish, distribute, sublicense, and/or sell copies of the Software, and to permit persons to whom the Software is furnished to do so, subject to the following conditions: The above copyright notice and this permission notice shall be included in all copies or substantial portions of the Software. THE SOFTWARE IS PROVIDED \"AS IS\", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.\n\n"
  },
  "summary": "TapjoySDK libraries allow you to display advertisements in your app (including the offerwall) and / or acquire new users from Tapjoy.",
  "homepage": "http://www.tapjoy.com/",
  "authors": {
    "Tapjoy": "support@tapjoy.com"
  },
  "source": {
    "http": "https://s3.amazonaws.com/tapjoy/sdks/TapjoySDK_iOS_v9.1.4.zip"
  },
  "platforms": {
    "ios": null
  },
  "resources": "TapjoySDK_iOS_v9.1.4/Libraries/Tapjoy.embeddedframework/**/*.bundle",
  "public_header_files": "TapjoySDK_iOS_v9.1.4/Libraries/Tapjoy.embeddedframework/Tapjoy.framework/**/*.h",
  "preserve_paths": "TapjoySDK_iOS_v9.1.4/Libraries/Tapjoy.embeddedframework/Tapjoy.framework",
  "vendored_frameworks": "TapjoySDK_iOS_v9.1.4/Libraries/Tapjoy.embeddedframework/Tapjoy.framework",
  "frameworks": [
    "AdSupport",
    "CFNetwork",
    "CoreGraphics",
    "CoreLocation",
    "CoreMotion",
    "CoreTelephony",
    "EventKitUI",
    "EventKit",
    "Foundation",
    "MapKit",
    "MediaPlayer",
    "MessageUI",
    "MobileCoreServices",
    "QuartzCore",
    "StoreKit",
    "SystemConfiguration",
    "Twitter",
    "UIKit"
  ],
  "libraries": [
    "sqlite3.0",
    "xml2",
    "z"
  ],
  "weak_frameworks": "Social",
  "xcconfig": {
    "FRAMEWORK_SEARCH_PATHS": "\"$(PODS_ROOT)/TapjoySDK/**\""
  },
  "requires_arc": true
}
