{
  "name": "AppfigurateLibrary",
  "version": "1.3.1",
  "summary": "Secure runtime configuration for iOS and watchOS, apps and app extensions",
  "description": "Appfigurate is a suite of tools for iOS and watchOS developers and testers, that allow you to securely configure your apps and app extensions at runtime. Appfigurate increases your efficiency by removing the edit/compile/deploy cycle when you need to make configuration changes. This cocoapod only adds the client library to your app, you will also need to install Appfigurate app into your iOS Simulator - 'git clone https://github.com/electricbolt/appfiguratesdk.git'",
  "homepage": "https://github.com/electricbolt/appfiguratesdk",
  "license": {
    "type": "Copyright",
    "text": "Appfigurate™ License Agreement.\n\n1. Preamble\n\n1.1 The Appfigurate SDK (“SDK”) comprising of iOS & watchOS static libraries, header files, examples, documentation and Appfigurate Simulator app are licensed to you subject to the terms of this License Agreement. This License Agreement forms a legally binding contract between you and Electric Bolt in relation to your use of the SDK.\n\n1.2 \"Electric Bolt\" means Electric Bolt Limited, a limited liability company registered in\nNew Zealand.\n\n2. Accepting this License Agreement\n\n2.1 In order to use the SDK, you must first agree to this License Agreement. You may not use the SDK if you do not accept this License Agreement.\n\n2.2 You can accept this License Agreement by embedding the iOS or watchOS libraries into your own apps, or by using the Appfigurate Simulator app. You agree that use of the SDK constitutes acceptance of the Licensing Agreement from that point onwards.\n\n2.3 If you are agreeing to be bound by this License Agreement on behalf of your employer or other entity, you represent and warrant that you have full legal authority to bind your employer or such entity to this License Agreement. If you do not have the requisite authority, you may not accept the Licensing Agreement or use the SDK on behalf of your employer or other entity.\n\n3. SDK License from Electric Bolt\n\n3.1 Subject to the terms of this License Agreement, Electric Bolt grants you a limited, worldwide, royalty-free, non-sublicenseable, non-assignable and non-exclusive license to use the SDK to embed the iOS or watchOS libraries into your own apps.\n\n3.2 You agree that the form and nature of the SDK that Electric Bolt provides may change without prior notice to you and that future versions of the SDK may be incompatible with apps developed on previous versions of the SDK. You agree that Electric Bolt may stop (permanently or temporarily) providing the SDK (or any features within the SDK) to you at Electric Bolt’s sole discretion, without prior notice.\n\n3.3 You may not claim that the SDK, in whole or in part, is yours, and you may not use the name the Electric Bolt or any of their respective logos or trademarks in any manner without first obtaining the prior written permission from an authorized representative of the Electric Bolt.\n\n3.4 Nothing in this License Agreement gives you a right to use any of Electric Bolt’s logos, trademarks, trade names, domain names, or other distinctive brand features.\n\n3.5 You agree that you will not obscure, remove, or alter any proprietary rights notices (including copyright and trademark notices) that may be affixed to or contained within the SDK.\n\n4. Usage of the SDK\n\n4.1 Electric Bolt agrees that it obtains no right, title or interest from you under this License Agreement in or to any apps that you develop using the SDK, including any intellectual property rights that subsist in those apps.\n\n4.2 You agree to use the SDK and write apps only for purposes that are permitted by (a) this License Agreement and (b) any applicable law, regulation or generally accepted practices or guidelines in relevant jurisdictions.\n\n4.3 You agree that you will only run the Appfigurate Simulator app in an iOS Simulator on a Apple Mac computer.\n\n4.4 You agree that for apps distributed through the (Apple) App Store, you will not include any hidden features that could be enabled by your usage of the SDK without fully disclosing them to App Review.\n\n4.5 You agree you will not reverse engineer, decompile, disassemble or otherwise attempt to derive the source code, techniques, processes, algorithms, know-how or other information from the binary code portions of the SDK (collectively, \"Reverse Engineering\") or permit or induce the foregoing.\n\n4.6 You agree that you are solely responsible for (and that Electric Bolt has no responsibility to you or to any third party for) any breach of your obligations under this License Agreement, any applicable third party contract or Terms of Service, or any applicable law or regulation, and for the consequences (including any loss or damage which Electric Bolt or any third party may suffer) of any such breach.\n\n5. Terminating this License Agreement\n\n5.1 This License Agreement will continue to apply until terminated by either you or Electric Bolt as set out below.\n\n5.2 If you want to terminate this License Agreement, you may do so by ceasing your use of the SDK.\n\n5.3 Electric Bolt may at any time, terminate this License Agreement with you if:\n(a) Electric Bolt is required to do so by law; or\n(b) you have breached any provision of this License Agreement; or\n(c) Electric Bolt decides to no longer provide the SDK or portions of the SDK, where in Electric Bolt’s sole discretion, it is no longer commercially viable to do so.\n\n5.4 When this License Agreement comes to an end, all of the legal rights, obligations and liabilities that you and Electric Bolt have benefited from, been subject to (or which have accrued over time whilst this License Agreement has been in force) or which are expressed to continue indefinitely, shall be unaffected by this cessation, and the provisions of paragraph 10.6 shall continue to apply to such rights, obligations and liabilities indefinitely.\n\n6. DISCLAIMER OF WARRANTIES\n\n6.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT YOUR USE OF THE SDK IS AT YOUR SOLE RISK AND THAT THE SDK IS PROVIDED \"AS IS\" WITHOUT WARRANTY OF ANY KIND FROM ELECTRIC BOLT.\n\n6.2 YOUR USE OF THE SDK AND ANY MATERIAL DOWNLOADED OR OTHERWISE OBTAINED THROUGH THE USE OF THE SDK IS AT YOUR OWN DISCRETION AND RISK AND YOU ARE SOLELY RESPONSIBLE FOR ANY DAMAGE TO YOUR COMPUTER SYSTEM OR OTHER DEVICE OR LOSS OF DATA THAT RESULTS FROM SUCH USE.\n\n6.3 ELECTRIC BOLT FURTHER EXPRESSLY DISCLAIMS ALL WARRANTIES AND CONDITIONS OF ANY KIND, WHETHER EXPRESS OR IMPLIED, INCLUDING, BUT NOT LIMITED TO THE IMPLIED WARRANTIES AND CONDITIONS OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT.\n\n7. LIMITATION OF LIABILITY\n\n7.1 YOU EXPRESSLY UNDERSTAND AND AGREE THAT ELECTRIC BOLT, ITS SUBSIDIARIES AND AFFILIATES, AND ITS LICENSORS SHALL NOT BE LIABLE TO YOU UNDER ANY THEORY OF LIABILITY FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL CONSEQUENTIAL OR EXEMPLARY DAMAGES THAT MAY BE INCURRED BY YOU, INCLUDING ANY LOSS OF DATA, WHETHER OR NOT ELECTRIC BOLT OR ITS REPRESENTATIVES HAVE BEEN ADVISED OF OR SHOULD HAVE BEEN AWARE OF THE POSSIBILITY OF ANY SUCH LOSSES ARISING.\n\n8. Indemnification\n\n8.1 To the maximum extent permitted by law, you agree to defend, indemnify and hold harmless Electric Bolt, its affiliates and their respective directors, officers, employees and agents from and against any and all claims, actions, suits or proceedings, as well as any and all losses, liabilities, damages, costs and expenses (including reasonable attorneys fees) arising out of or accruing from (a) any non-compliance by you with this License Agreement, (b) any apps you develop using the SDK that infringes any copyright, trademark, trade secret, trade dress, patent or other intellectual property right of any person or defames any person or violates their rights of publicity or privacy, and (c) your use of the SDK.\n\n9. Changes to the License Agreement\n\n9.1 Electric Bolt may make changes to the License Agreement as it distributes new versions of the SDK. When these changes are made, Electric Bolt will make a new version of the License Agreement available on the website where the SDK is made available.\n\n10. General Legal Terms\n\n10.1 This License Agreement constitutes the whole legal agreement between you and Electric Bolt and governs your use of the SDK, and completely replaces any prior agreements between you and Electric Bolt in relation to the SDK.\n\n10.2 If any court of law, having the jurisdiction to decide on this matter, rules that any provision of this License Agreement is invalid, then that provision will be removed from this License Agreement without affecting the rest of this License Agreement. The remaining provisions of this License Agreement will continue to be valid and enforceable.\n\n10.3 You agree that if Electric Bolt does not exercise or enforce any legal right or remedy which is contained in this License Agreement (or which Electric Bolt has the benefit of under any applicable law), this will not be taken to be a formal waiver of Electric Bolt’s rights and that those rights or remedies will still be available to Electric Bolt.\n\n10.4 The rights granted in this License Agreement may not be assigned or transferred by either you or Electric Bolt without the prior written approval of the other party. Neither you nor Electric Bolt shall be permitted to delegate their responsibilities or obligations under this License Agreement without the prior written approval of the other party.\n\n10.5 EXPORT RESTRICTIONS. THE SDK IS SUBJECT TO U.S. EXPORT LAWS AND REGULATIONS. YOU MUST COMPLY WITH ALL DOMESTIC AND INTERNATIONAL EXPORT LAWS AND REGULATIONS THAT APPLY TO THE SDK. THESE LAWS INCLUDE RESTRICTIONS ON DESTINATIONS, END USERS AND END USE.\n\n10.6 This License Agreement, and your relationship with Electric Bolt under this License Agreement, shall be governed by the laws of the New Zealand without regard to its conflict of laws provisions. You and Electric Bolt agree to submit to the exclusive jurisdiction of the courts located within New Zealand to resolve any legal matter arising from this License Agreement. Notwithstanding this, you agree that Electric Bolt shall still be allowed to apply for injunctive remedies (or an equivalent type of urgent legal relief) in any jurisdiction.\n\n10.7 The Terms of Service constitute the entire agreement between Electric Bolt and you with respect to the subject matter hereof.\n"
  },
  "authors": {
    "Electric Bolt Limited": "support@electricbolt.co.nz"
  },
  "source": {
    "git": "https://github.com/electricbolt/appfiguratesdk.git",
    "tag": "1.3.1"
  },
  "platforms": {
    "ios": "8.0",
    "watchos": "2.0"
  },
  "source_files": "AppfigurateLibrary/*.h",
  "ios": {
    "vendored_libraries": "AppfigurateLibrary/libAppfigurateLibrary.a"
  },
  "watchos": {
    "vendored_libraries": "AppfigurateLibrary/libAppfigurateWatchLibrary.a"
  }
}
