├── Gemfile ├── Podfile ├── BingAPI.xcodeproj ├── project.xcworkspace │ └── contents.xcworkspacedata ├── xcshareddata │ └── xcschemes │ │ ├── Podspec Lint.xcscheme │ │ └── BingAPI.xcscheme └── project.pbxproj ├── Podfile.lock ├── BingAPITests ├── BingTest-Bridging-Header.h ├── NSURLRequest+PrivateExposed.h ├── Info.plist └── BingTest.swift ├── Tools ├── generateDocs.sh └── generateChangelog.sh ├── BingAPI.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ └── BingAPI.xcscmblueprint ├── .gitignore ├── .travis.yml ├── BingAPI ├── BingAPI.h ├── Info.plist ├── BingSearchResult.swift ├── Routes │ ├── SearchSuggestRoute.swift │ └── SearchRoute.swift └── Bing.swift ├── BingAPI.podspec ├── LICENSE.md ├── Gemfile.lock ├── README.md ├── CHANGELOG.md └── .overcommit.yml /Gemfile: -------------------------------------------------------------------------------- 1 | source 'https://rubygems.org' 2 | 3 | gem 'cocoapods' 4 | gem 'xcpretty' 5 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | use_frameworks! 2 | 3 | target 'BingAPI' do 4 | pod 'AdorkableAPIBase', '~> 0.3' 5 | end 6 | 7 | target 'BingAPITests' do 8 | pod 'AdorkableAPIBase', '~> 0.3' 9 | end 10 | -------------------------------------------------------------------------------- /BingAPI.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - AdorkableAPIBase (0.3.0) 3 | 4 | DEPENDENCIES: 5 | - AdorkableAPIBase (~> 0.3) 6 | 7 | SPEC CHECKSUMS: 8 | AdorkableAPIBase: 33fa9a70c5087aaa831734cf5f9fa44f3d325acf 9 | 10 | COCOAPODS: 0.39.0 11 | -------------------------------------------------------------------------------- /BingAPITests/BingTest-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // BingTest-Bridging-Header.h 3 | // BingAPI 4 | // 5 | // Created by Ian on 5/26/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | #import "NSURLRequest+PrivateExposed.h" -------------------------------------------------------------------------------- /Tools/generateDocs.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | jazzy -o docs --swift-version 2.1 4 | find ./docs/Classes/*.html | xargs grep 'Undocumented' 5 | find ./docs/Classes/**/*.html | xargs grep 'Undocumented' 6 | find ./docs/Extensions/*.html | xargs grep 'Undocumented' 7 | -------------------------------------------------------------------------------- /BingAPI.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Tools/generateChangelog.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | github_changelog_generator --no-verbose 4 | 5 | checkFileUncommitted() { 6 | git status --porcelain | grep -q "$1" 7 | result=$? 8 | if [ "$result" = "0" ] 9 | then 10 | echo "* $1 is dirty" 11 | return 1 12 | else 13 | return 0 14 | fi 15 | } 16 | 17 | checkFileUncommitted "CHANGELOG.md" 18 | result=$? 19 | 20 | exit $result -------------------------------------------------------------------------------- /BingAPITests/NSURLRequest+PrivateExposed.h: -------------------------------------------------------------------------------- 1 | // 2 | // NSURLRequest+PrivateExposed.h 3 | // BingAPI 4 | // 5 | // Created by Ian on 5/26/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | #pragma once 10 | 11 | #import 12 | 13 | @interface NSURLRequest (PrivateExposed) 14 | + (void) setAllowsAnyHTTPSCertificate:(BOOL)allowsAnyHTTPSCertificate forHost:(NSString *)host; 15 | @end -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | .DS_Store 2 | 3 | # Xcode 4 | # 5 | build/ 6 | *.pbxuser 7 | !default.pbxuser 8 | *.mode1v3 9 | !default.mode1v3 10 | *.mode2v3 11 | !default.mode2v3 12 | *.perspectivev3 13 | !default.perspectivev3 14 | xcuserdata 15 | *.xccheckout 16 | *.moved-aside 17 | DerivedData 18 | *.hmap 19 | *.ipa 20 | *.xcuserstate 21 | 22 | # Cocoapods 23 | # 24 | Pods/ 25 | 26 | # Carthage 27 | # 28 | Carthage/Checkouts 29 | Carthage/Build 30 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: objective-c 2 | osx_image: xcode7.1 3 | before_install: 4 | - gem install cocoapods 5 | script: 6 | - xcodebuild -workspace BingAPI.xcworkspace -scheme 'BingAPI' -sdk iphonesimulator9.1 -destination 'platform=iOS Simulator,name=iPhone 6,OS=9.1' build test GCC_INSTRUMENT_PROGRAM_FLOW_ARCS=YES GCC_GENERATE_TEST_COVERAGE_FILES=YES 7 | after_success: 8 | - bash <(curl -s https://codecov.io/bash) 9 | env: 10 | global: 11 | - TIMEOUT=1000 12 | matrix: 13 | - USE_NETWORK=true 14 | -------------------------------------------------------------------------------- /BingAPI/BingAPI.h: -------------------------------------------------------------------------------- 1 | // 2 | // BingAPI.h 3 | // BingAPI 4 | // 5 | // Created by Ian on 4/3/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | #import 10 | 11 | //! Project version number for BingAPI. 12 | FOUNDATION_EXPORT double BingAPIVersionNumber; 13 | 14 | //! Project version string for BingAPI. 15 | FOUNDATION_EXPORT const unsigned char BingAPIVersionString[]; 16 | 17 | // In this header, you should import all the public headers of your framework using statements like #import 18 | 19 | 20 | -------------------------------------------------------------------------------- /BingAPI.podspec: -------------------------------------------------------------------------------- 1 | Pod::Spec.new do |s| 2 | s.name = 'BingAPI' 3 | s.version = '0.3.0' 4 | s.license = 'MIT' 5 | s.homepage = 'https://github.com/Adorkable/BingAPIiOS' 6 | s.authors = { 'Ian Grossberg' => 'yo.ian.g@gmail.com' } 7 | s.summary = 'Simple access to the BingAPI' 8 | 9 | s.platform = :ios, '9.1' 10 | s.source = { :git => 'https://github.com/Adorkable/BingAPIiOS.git', :tag => s.version.to_s } 11 | s.source_files = 'BingAPI/*.swift', 'BingAPI/Routes/*.swift' 12 | 13 | s.requires_arc = true 14 | 15 | s.dependency 'AdorkableAPIBase' 16 | end -------------------------------------------------------------------------------- /BingAPITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 0.3.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /BingAPI/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | FMWK 17 | CFBundleShortVersionString 18 | 0.3.0 19 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSPrincipalClass 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | 2 | The MIT License (MIT) 3 | 4 | Copyright (c) 2015 Ian Grossberg, Adorkable. 5 | 6 | Permission is hereby granted, free of charge, to any person obtaining a copy 7 | of this software and associated documentation files (the "Software"), to deal 8 | in the Software without restriction, including without limitation the rights 9 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 10 | copies of the Software, and to permit persons to whom the Software is 11 | furnished to do so, subject to the following conditions: 12 | 13 | The above copyright notice and this permission notice shall be included in all 14 | copies or substantial portions of the Software. 15 | 16 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 17 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 18 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 19 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 20 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 21 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 22 | SOFTWARE. 23 | 24 | 25 | -------------------------------------------------------------------------------- /BingAPI.xcworkspace/xcshareddata/BingAPI.xcscmblueprint: -------------------------------------------------------------------------------- 1 | { 2 | "DVTSourceControlWorkspaceBlueprintPrimaryRemoteRepositoryKey" : "0541D7B260B6654807DF0D4186A6C7F3ABEF6417", 3 | "DVTSourceControlWorkspaceBlueprintWorkingCopyRepositoryLocationsKey" : { 4 | 5 | }, 6 | "DVTSourceControlWorkspaceBlueprintWorkingCopyStatesKey" : { 7 | "0541D7B260B6654807DF0D4186A6C7F3ABEF6417" : 0, 8 | "02FDFF61564EE6E40014C3723DE0A1DBE19930BE" : 0 9 | }, 10 | "DVTSourceControlWorkspaceBlueprintIdentifierKey" : "50163F4A-2798-44CE-9189-74EF3C54F92F", 11 | "DVTSourceControlWorkspaceBlueprintWorkingCopyPathsKey" : { 12 | "0541D7B260B6654807DF0D4186A6C7F3ABEF6417" : "BingAPIiOS", 13 | "02FDFF61564EE6E40014C3723DE0A1DBE19930BE" : "APIBaseiOS" 14 | }, 15 | "DVTSourceControlWorkspaceBlueprintNameKey" : "BingAPI", 16 | "DVTSourceControlWorkspaceBlueprintVersion" : 204, 17 | "DVTSourceControlWorkspaceBlueprintRelativePathToProjectKey" : "BingAPI.xcworkspace", 18 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoriesKey" : [ 19 | { 20 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:Adorkable\/APIBaseiOS.git", 21 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 22 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "02FDFF61564EE6E40014C3723DE0A1DBE19930BE" 23 | }, 24 | { 25 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryURLKey" : "github.com:Adorkable\/BingAPIiOS.git", 26 | "DVTSourceControlWorkspaceBlueprintRemoteRepositorySystemKey" : "com.apple.dt.Xcode.sourcecontrol.Git", 27 | "DVTSourceControlWorkspaceBlueprintRemoteRepositoryIdentifierKey" : "0541D7B260B6654807DF0D4186A6C7F3ABEF6417" 28 | } 29 | ] 30 | } -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | activesupport (4.2.5) 5 | i18n (~> 0.7) 6 | json (~> 1.7, >= 1.7.7) 7 | minitest (~> 5.1) 8 | thread_safe (~> 0.3, >= 0.3.4) 9 | tzinfo (~> 1.1) 10 | claide (0.9.1) 11 | cocoapods (0.39.0) 12 | activesupport (>= 4.0.2) 13 | claide (~> 0.9.1) 14 | cocoapods-core (= 0.39.0) 15 | cocoapods-downloader (~> 0.9.3) 16 | cocoapods-plugins (~> 0.4.2) 17 | cocoapods-search (~> 0.1.0) 18 | cocoapods-stats (~> 0.6.2) 19 | cocoapods-trunk (~> 0.6.4) 20 | cocoapods-try (~> 0.5.1) 21 | colored (~> 1.2) 22 | escape (~> 0.0.4) 23 | molinillo (~> 0.4.0) 24 | nap (~> 1.0) 25 | xcodeproj (~> 0.28.2) 26 | cocoapods-core (0.39.0) 27 | activesupport (>= 4.0.2) 28 | fuzzy_match (~> 2.0.4) 29 | nap (~> 1.0) 30 | cocoapods-downloader (0.9.3) 31 | cocoapods-plugins (0.4.2) 32 | nap 33 | cocoapods-search (0.1.0) 34 | cocoapods-stats (0.6.2) 35 | cocoapods-trunk (0.6.4) 36 | nap (>= 0.8, < 2.0) 37 | netrc (= 0.7.8) 38 | cocoapods-try (0.5.1) 39 | colored (1.2) 40 | escape (0.0.4) 41 | fuzzy_match (2.0.4) 42 | i18n (0.7.0) 43 | json (1.8.3) 44 | minitest (5.8.3) 45 | molinillo (0.4.0) 46 | nap (1.0.0) 47 | netrc (0.7.8) 48 | rouge (1.10.1) 49 | thread_safe (0.3.5) 50 | tzinfo (1.2.2) 51 | thread_safe (~> 0.1) 52 | xcodeproj (0.28.2) 53 | activesupport (>= 3) 54 | claide (~> 0.9.1) 55 | colored (~> 1.2) 56 | xcpretty (0.2.1) 57 | rouge (~> 1.8) 58 | 59 | PLATFORMS 60 | ruby 61 | 62 | DEPENDENCIES 63 | cocoapods 64 | xcpretty 65 | 66 | BUNDLED WITH 67 | 1.11.0 68 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | BingAPI 2 | === 3 | 4 | [![Build Status](http://img.shields.io/travis/Adorkable/BingAPIiOS.svg?branch=master&style=flat)](https://travis-ci.org/Adorkable/BingAPIiOS) 5 | [![codecov.io](https://img.shields.io/codecov/c/github/Adorkable/BingAPIiOS.svg)](http://codecov.io/github/Adorkable/BingAPIiOS?branch=master) 6 | [![Pod Platform](http://img.shields.io/cocoapods/p/BingAPI.svg?style=flat)](http://cocoadocs.org/docsets/BingAPI/) 7 | [![Pod License](http://img.shields.io/cocoapods/l/BingAPI.svg?style=flat)](http://cocoadocs.org/docsets/BingAPI/) 8 | [![Pod Version](http://img.shields.io/cocoapods/v/BingAPI.svg?style=flat)](http://cocoadocs.org/docsets/BingAPI/) 9 | 10 | **BingAPI** a simple iOS library for accessing the Bing/Azure API. 11 | 12 | Current Support: 13 | 14 | * Search 15 | 16 | Installation 17 | --- 18 | --- 19 | **BingAPI** is available through **[cocoapods](http://cocoapods.org)**, to install simple add the following line to your `PodFile`: 20 | 21 | ``` ruby 22 | pod "BingAPI" 23 | ``` 24 | 25 | Alternatively you can add the **[github repo](https://github.com/Adorkable/BingAPIiOS)** as a submodule and use **BingAPI** as a framework. 26 | 27 | Setup 28 | --- 29 | --- 30 | Once you've installed the library 31 | 32 | * Create an instance of the `Bing` object by providing it your *Account Key* 33 | 34 | ``` swift 35 | var bing = Bing("asdfasdfasdfasdfasdf") 36 | ``` 37 | 38 | Usage 39 | --- 40 | **Search** 41 | 42 | To Search use the `search` function: 43 | 44 | ``` swift 45 | bing.search("xbox", timeoutInterval: timeoutInterval, resultsHandler: { (results : Array?, error) -> Void in 46 | ... 47 | } 48 | ``` 49 | 50 | **Search Suggest** 51 | 52 | To get Search Suggestions use the 'searchSuggest' function: 53 | 54 | ``` swift 55 | bing.searchSuggest("xbox", timeoutInterval: timeoutInterval, resultsHandler: { (results : Array?, error) -> Void in 56 | ... 57 | } 58 | ``` 59 | 60 | Contributing 61 | --- 62 | If you have any ideas, suggestions or bugs to report please [create an issue](https://github.com/Adorkable/BingAPIiOS/issues/new) labeled *feature* or *bug* (check to see if the issue exists first please!). Or suggest a pull request! 63 | -------------------------------------------------------------------------------- /BingAPITests/BingTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bing.swift 3 | // BingAPI 4 | // 5 | // Created by Ian on 4/10/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | import XCTest 11 | 12 | import BingAPI 13 | 14 | class BingTest: XCTestCase { 15 | var bing : Bing? 16 | 17 | override func setUp() { 18 | bing = Bing(accountKey: "mHl8iFbnt0J35H8vNKLnXkXzV/00MmQqo5P7sf1S7HQ=") 19 | 20 | XCTAssertNotNil(Bing.baseUrl, "Base URL is malformed") 21 | NSURLRequest.setAllowsAnyHTTPSCertificate(true, forHost: Bing.baseUrl!.host) 22 | 23 | self.continueAfterFailure = false 24 | } 25 | 26 | func testInit() { 27 | XCTAssertNotNil(self.bing, "Bing instance should not nil") 28 | } 29 | 30 | func testSearch() { 31 | 32 | let expect = self.expectationWithDescription("Search") 33 | let timeoutInterval = Bing.timeoutInterval 34 | 35 | bing!.search("xbox", timeoutInterval: timeoutInterval, resultsHandler: { (result) -> Void in 36 | 37 | switch result { 38 | case .Success(let results): 39 | XCTAssertGreaterThan(results.count, 0, "Returned More than Zero Results") 40 | expect.fulfill() 41 | break 42 | 43 | case .Failure(let error): 44 | XCTFail("Failure: \(error)") 45 | break 46 | } 47 | }) 48 | 49 | self.waitForExpectationsWithTimeout(timeoutInterval, handler: nil) 50 | } 51 | 52 | func testSearchSuggest() { 53 | let expect = self.expectationWithDescription("Search Suggest") 54 | let timeoutInterval = Bing.timeoutInterval 55 | 56 | bing!.searchSuggest("xbox", timeoutInterval: timeoutInterval, resultsHandler: { (result) -> Void in 57 | 58 | switch result { 59 | case .Success(let results): 60 | XCTAssertGreaterThan(results.count, 0, "Returned More than Zero Results") 61 | expect.fulfill() 62 | break 63 | 64 | case .Failure(let error): 65 | XCTFail("Failure: \(error)") 66 | break 67 | } 68 | }) 69 | 70 | self.waitForExpectationsWithTimeout(timeoutInterval, handler: nil) 71 | } 72 | } 73 | -------------------------------------------------------------------------------- /CHANGELOG.md: -------------------------------------------------------------------------------- 1 | # Change Log 2 | 3 | ## [0.3.0](https://github.com/Adorkable/BingAPIiOS/tree/0.3.0) (2015-12-10) 4 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.2.4...0.3.0) 5 | 6 | ## [0.2.4](https://github.com/Adorkable/BingAPIiOS/tree/0.2.4) (2015-08-10) 7 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.2.2...0.2.4) 8 | 9 | **Merged pull requests:** 10 | 11 | - Develop [\#5](https://github.com/Adorkable/BingAPIiOS/pull/5) ([yoiang](https://github.com/yoiang)) 12 | 13 | ## [0.2.2](https://github.com/Adorkable/BingAPIiOS/tree/0.2.2) (2015-06-12) 14 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.2.1...0.2.2) 15 | 16 | **Implemented enhancements:** 17 | 18 | - Travis CI support [\#2](https://github.com/Adorkable/BingAPIiOS/issues/2) 19 | 20 | ## [0.2.1](https://github.com/Adorkable/BingAPIiOS/tree/0.2.1) (2015-06-12) 21 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.2.0...0.2.1) 22 | 23 | ## [0.2.0](https://github.com/Adorkable/BingAPIiOS/tree/0.2.0) (2015-06-12) 24 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.1.2...0.2.0) 25 | 26 | ## [0.1.2](https://github.com/Adorkable/BingAPIiOS/tree/0.1.2) (2015-05-26) 27 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.1.1...0.1.2) 28 | 29 | ## [0.1.1](https://github.com/Adorkable/BingAPIiOS/tree/0.1.1) (2015-05-26) 30 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.1.0...0.1.1) 31 | 32 | **Merged pull requests:** 33 | 34 | - Release/0.1.0 [\#3](https://github.com/Adorkable/BingAPIiOS/pull/3) ([yoiang](https://github.com/yoiang)) 35 | 36 | ## [0.1.0](https://github.com/Adorkable/BingAPIiOS/tree/0.1.0) (2015-05-22) 37 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.0.5...0.1.0) 38 | 39 | ## [0.0.5](https://github.com/Adorkable/BingAPIiOS/tree/0.0.5) (2015-04-30) 40 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.0.4...0.0.5) 41 | 42 | ## [0.0.4](https://github.com/Adorkable/BingAPIiOS/tree/0.0.4) (2015-04-29) 43 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.0.3...0.0.4) 44 | 45 | ## [0.0.3](https://github.com/Adorkable/BingAPIiOS/tree/0.0.3) (2015-04-29) 46 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.0.2...0.0.3) 47 | 48 | ## [0.0.2](https://github.com/Adorkable/BingAPIiOS/tree/0.0.2) (2015-04-03) 49 | [Full Changelog](https://github.com/Adorkable/BingAPIiOS/compare/0.0.1...0.0.2) 50 | 51 | ## [0.0.1](https://github.com/Adorkable/BingAPIiOS/tree/0.0.1) (2015-04-03) 52 | 53 | 54 | \* *This Change Log was automatically generated by [github_changelog_generator](https://github.com/skywinder/Github-Changelog-Generator)* -------------------------------------------------------------------------------- /.overcommit.yml: -------------------------------------------------------------------------------- 1 | # Use this file to configure the Overcommit hooks you wish to use. This will 2 | # extend the default configuration defined in: 3 | # https://github.com/brigade/overcommit/blob/master/config/default.yml 4 | # 5 | # At the topmost level of this YAML file is a key representing type of hook 6 | # being run (e.g. pre-commit, commit-msg, etc.). Within each type you can 7 | # customize each hook, such as whether to only run it on certain files (via 8 | # `include`), whether to only display output if it fails (via `quiet`), etc. 9 | # 10 | # For a complete list of hooks, see: 11 | # https://github.com/brigade/overcommit/tree/master/lib/overcommit/hook 12 | # 13 | # For a complete list of options that you can use to customize hooks, see: 14 | # https://github.com/brigade/overcommit#configuration 15 | # 16 | # Uncomment the following lines to make the configuration take effect. 17 | 18 | #PreCommit: 19 | # RuboCop: 20 | # enabled: true 21 | # on_warn: fail # Treat all warnings as failures 22 | # 23 | # TrailingWhitespace: 24 | # exclude: 25 | # - '**/db/structure.sql' # Ignore trailing whitespace in generated files 26 | # 27 | #PostCheckout: 28 | # ALL: # Special hook name that customizes all hooks of this type 29 | # quiet: true # Change all post-checkout hooks to only display output on failure 30 | # 31 | # IndexTags: 32 | # enabled: true # Generate a tags file with `ctags` each time HEAD changes 33 | 34 | CommitMsg: 35 | ALL: 36 | enabled: false 37 | EmptyMessage: 38 | enabled: true 39 | HardTabs: 40 | enabled: true 41 | SpellCheck: 42 | enabled: false 43 | 44 | PostCheckout: 45 | ALL: 46 | enabled: false 47 | BundleInstall: 48 | enabled: true 49 | SubmoduleStatus: 50 | enabled: true 51 | 52 | PostCommit: 53 | ALL: 54 | enabled: false 55 | BundleInstall: 56 | enabled: true 57 | SubmoduleStatus: 58 | enabled: true 59 | 60 | PostMerge: 61 | ALL: 62 | enabled: false 63 | BundleInstall: 64 | enabled: true 65 | SubmoduleStatus: 66 | enabled: true 67 | 68 | PostRewrite: 69 | ALL: 70 | enabled: false 71 | BundleInstall: 72 | enabled: true 73 | SubmoduleStatus: 74 | enabled: true 75 | 76 | PreCommit: 77 | ALL: 78 | enabled: false 79 | AuthorEmail: 80 | enabled: true 81 | BrokenSymlinks: 82 | enabled: true 83 | BundleCheck: 84 | enabled: true 85 | CaseConflicts: 86 | enabled: true 87 | GoLint: 88 | enabled: true 89 | GoVet: 90 | enabled: true 91 | JsonSyntax: 92 | enabled: true 93 | LocalPathsInGemfile: 94 | enabled: true 95 | MergeConflicts: 96 | enabled: true 97 | ShellCheck: 98 | enabled: true 99 | TravisLint: 100 | enabled: true 101 | 102 | PrePush: 103 | ALL: 104 | enabled: false 105 | Changelog: 106 | enabled: true 107 | required_executable: './Tools/generateChangelog.sh' 108 | 109 | 110 | PreRebase: 111 | ALL: 112 | enabled: false 113 | 114 | -------------------------------------------------------------------------------- /BingAPI.xcodeproj/xcshareddata/xcschemes/Podspec Lint.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 34 | 35 | 45 | 46 | 52 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 70 | 71 | 72 | 73 | 75 | 76 | 79 | 80 | 81 | -------------------------------------------------------------------------------- /BingAPI/BingSearchResult.swift: -------------------------------------------------------------------------------- 1 | // 2 | // BingSearchResult.swift 3 | // BingAPI 4 | // 5 | // Created by Ian on 4/3/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import AdorkableAPIBase 12 | 13 | /** 14 | * Bing Search Results 15 | */ 16 | public class BingSearchResult: RouteBase, CustomDebugStringConvertible { 17 | /// id 18 | public let id : String 19 | /// description 20 | public let resultDescription : String 21 | /// title 22 | public let title : String 23 | /// Url string 24 | public let urlString : String 25 | /// Url as NSURL 26 | public var url : NSURL? { 27 | get { 28 | return NSURL(string: self.urlString) 29 | } 30 | } 31 | /// meta data 32 | public let metaData : NSDictionary 33 | 34 | init(resultDescription : String, id : String, title : String, urlString : String, metaData : NSDictionary) { 35 | self.resultDescription = resultDescription 36 | self.id = id 37 | self.title = title 38 | self.urlString = urlString 39 | self.metaData = metaData 40 | 41 | super.init() 42 | } 43 | 44 | init?(dictionary : NSDictionary) { 45 | var initFailed = false 46 | 47 | if let id = dictionary["ID"] as? String 48 | { 49 | self.id = id 50 | } else 51 | { 52 | self.id = "" 53 | initFailed = true 54 | } 55 | 56 | if let description = dictionary["Description"] as? String 57 | { 58 | self.resultDescription = description 59 | } else 60 | { 61 | self.resultDescription = "" 62 | initFailed = true 63 | } 64 | 65 | if let title = dictionary["Title"] as? String 66 | { 67 | self.title = title 68 | } else 69 | { 70 | self.title = "" 71 | initFailed = true 72 | } 73 | 74 | if let urlString = dictionary["Url"] as? String 75 | { 76 | self.urlString = urlString 77 | } else 78 | { 79 | self.urlString = "" 80 | initFailed = true 81 | } 82 | 83 | if let metaData = dictionary["__metadata"] as? NSDictionary 84 | { 85 | self.metaData = metaData 86 | } else 87 | { 88 | self.metaData = NSDictionary() 89 | initFailed = true 90 | } 91 | 92 | super.init() 93 | 94 | if initFailed 95 | { 96 | return nil 97 | } 98 | } 99 | 100 | /// debug description 101 | override public var debugDescription: String { 102 | get { 103 | var result = super.debugDescription + "\n" 104 | result += "ID: \(self.id)\n" 105 | result += "Title: \(self.title)\n" 106 | result += "Description: \(self.resultDescription)\n" 107 | result += "URL: \(self.url)\n" 108 | result += "Metadata: \(self.metaData)" 109 | return result 110 | } 111 | } 112 | } 113 | -------------------------------------------------------------------------------- /BingAPI/Routes/SearchSuggestRoute.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchSuggestRoute.swift 3 | // BingAPI 4 | // 5 | // Created by Ian on 6/12/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | import AdorkableAPIBase 10 | 11 | public class SearchSuggestRoute: RouteBase { 12 | public typealias ResultsHandler = (SuccessResult<[String]>) -> Void 13 | 14 | override public var baseUrl : NSURL? { 15 | return NSURL(string: "http://api.bing.com") 16 | } 17 | 18 | 19 | override public static var httpMethod : String { 20 | return "GET" 21 | } 22 | 23 | override public var path : String { 24 | get { 25 | return "/osjson.aspx" 26 | } 27 | } 28 | 29 | var searchText : String 30 | 31 | init(searchText : String, timeoutInterval : NSTimeInterval = Bing.timeoutInterval, cachePolicy : NSURLRequestCachePolicy = Bing.cachePolicy) { 32 | self.searchText = searchText 33 | 34 | super.init(timeoutInterval: timeoutInterval, cachePolicy: cachePolicy) 35 | } 36 | 37 | override public var query : String { 38 | get { 39 | var result = "" 40 | 41 | RouteBase.addParameter(&result, name: "query", value: self.searchText) 42 | 43 | return result 44 | } 45 | } 46 | 47 | func start(configureUrlRequest : ( (urlRequest : NSMutableURLRequest) -> Void)?, 48 | resultsHandler : ResultsHandler) { 49 | 50 | let task = self.jsonTask(configureUrlRequest) { (result) -> Void in 51 | 52 | switch result { 53 | case .Success(let jsonObject): 54 | if let jsonArray = jsonObject as? NSArray 55 | { 56 | let results = self.dynamicType.parseResults(jsonArray) 57 | resultsHandler(results) 58 | } else 59 | { 60 | let error = NSError(domain: "In results expected Array, unexpected format " + _stdlib_getDemangledTypeName(jsonObject), code: 0, userInfo: nil) 61 | resultsHandler(.Failure(error)) 62 | } 63 | break 64 | 65 | case .Failure(let error): 66 | resultsHandler(.Failure(error)) 67 | } 68 | } 69 | 70 | if task != nil 71 | { 72 | task!.resume() 73 | } else 74 | { 75 | let error = NSError(domain: "Unable to create SearchRoute task", code: 0, userInfo: nil) 76 | resultsHandler(.Failure(error)) 77 | } 78 | } 79 | 80 | internal class func parseResults(jsonResponse : NSArray) -> SuccessResult<[String]> { 81 | var result = Array() 82 | 83 | for baseEntry in jsonResponse 84 | { 85 | if let suggestions = baseEntry as? NSArray 86 | { 87 | for suggestionObject in suggestions 88 | { 89 | if let suggestion = suggestionObject as? String 90 | { 91 | result.append(suggestion) 92 | } 93 | } 94 | } 95 | } 96 | 97 | return .Success(result) 98 | } 99 | } 100 | -------------------------------------------------------------------------------- /BingAPI/Bing.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Bing.swift 3 | // Bing 4 | // 5 | // Created by Ian on 4/3/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import AdorkableAPIBase 12 | 13 | // https://datamarket.azure.com/dataset/bing/search#schema 14 | // https://onedrive.live.com/view.aspx?resid=9C9479871FBFA822!110&app=Word&authkey=!AInKSlZ6KEzFE8k 15 | 16 | /** 17 | * Bing API Object 18 | */ 19 | public class Bing: API { 20 | 21 | public static var requestProtocol : String { return "https" } 22 | public static var domain : String { return "api.datamarket.azure.com" } 23 | public static var port : String { return "443" } 24 | 25 | /// Bing API Instance's account key 26 | public let accountKey : String 27 | 28 | /** 29 | Main init 30 | 31 | :param: accountKey Azure Marketplace API key 32 | 33 | */ 34 | public init(accountKey : String) { 35 | self.accountKey = accountKey 36 | } 37 | 38 | internal func authorizationHeaderValue() -> String? { 39 | var result : String? 40 | 41 | let loginString = self.accountKey + ":" + self.accountKey 42 | 43 | if let loginData = loginString.dataUsingEncoding(NSUTF8StringEncoding, allowLossyConversion: false) 44 | { 45 | let encodedLoginString = loginData.base64EncodedStringWithOptions(NSDataBase64EncodingOptions()) 46 | result = "Basic " + encodedLoginString 47 | } 48 | 49 | return result 50 | } 51 | 52 | internal class func encodeSearchQuery(query : String) -> String? 53 | { 54 | var result : String? 55 | 56 | if let queryEncoded = self.encodeString(query) 57 | { 58 | result = "\'" + queryEncoded + "\'" 59 | } 60 | 61 | return result 62 | } 63 | 64 | internal func configureUrlRequestHandler() -> ( (NSMutableURLRequest) -> Void) { 65 | return { (urlRequest : NSMutableURLRequest) -> Void in 66 | if let authorizationHeaderValue = self.authorizationHeaderValue() 67 | { 68 | urlRequest.setValue(authorizationHeaderValue, forHTTPHeaderField: "Authorization") 69 | } else 70 | { 71 | // TODO: report back to creator 72 | NSLog("Error configuring Url request with correct authorization") 73 | } 74 | } 75 | } 76 | 77 | /** 78 | Get search results 79 | 80 | :param: searchText text to search for 81 | :param: timeoutInterval request timeout 82 | :param: resultsHandler closure for handling results from request 83 | */ 84 | public func search(searchText : String, timeoutInterval : NSTimeInterval, resultsHandler : SearchRoute.ResultsHandler) { 85 | 86 | let searchRoute = SearchRoute(searchText: searchText, timeoutInterval: timeoutInterval, cachePolicy: Bing.cachePolicy) 87 | searchRoute.start(self.configureUrlRequestHandler(), resultsHandler: resultsHandler) 88 | } 89 | 90 | /** 91 | Get search suggestion results 92 | 93 | :param: searchText text to search for 94 | :param: timeoutInterval request timeout 95 | :param: resultsHandler closure for handling results from request 96 | */ 97 | public func searchSuggest(searchText : String, timeoutInterval : NSTimeInterval, resultsHandler : SearchSuggestRoute.ResultsHandler) { 98 | 99 | let searchSuggestRoute = SearchSuggestRoute(searchText: searchText, timeoutInterval: timeoutInterval, cachePolicy: Bing.cachePolicy) 100 | searchSuggestRoute.start(nil, resultsHandler: resultsHandler) 101 | } 102 | } 103 | -------------------------------------------------------------------------------- /BingAPI/Routes/SearchRoute.swift: -------------------------------------------------------------------------------- 1 | // 2 | // SearchRoute.swift 3 | // BingAPI 4 | // 5 | // Created by Ian on 6/12/15. 6 | // Copyright (c) 2015 Adorkable. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | import AdorkableAPIBase 12 | 13 | public class SearchRoute: RouteBase { 14 | 15 | public typealias ResultsHandler = (SuccessResult<[BingSearchResult]>) -> Void 16 | 17 | override public static var httpMethod : String { 18 | return "GET" 19 | } 20 | 21 | override public var path : String { 22 | return "/Bing/Search/Web" 23 | } 24 | 25 | var searchText : String 26 | 27 | init(searchText : String, timeoutInterval : NSTimeInterval = Bing.timeoutInterval, cachePolicy : NSURLRequestCachePolicy = Bing.cachePolicy) { 28 | self.searchText = searchText 29 | 30 | super.init(timeoutInterval: timeoutInterval, cachePolicy: cachePolicy) 31 | } 32 | 33 | override public var query : String { 34 | get { 35 | var result = "$format=json" 36 | 37 | RouteBase.addParameter(&result, name: "Query", value: "\'\(self.searchText)\'") 38 | 39 | return result 40 | } 41 | } 42 | 43 | func start(configureUrlRequest : (urlRequest : NSMutableURLRequest) -> Void, resultsHandler : ResultsHandler) { 44 | 45 | let task = self.jsonTask(configureUrlRequest) { (result) -> Void in 46 | 47 | switch result { 48 | case .Success(let jsonObject): 49 | 50 | if let jsonDictionary = jsonObject as? NSDictionary 51 | { 52 | let parseResults = self.dynamicType.parseResults(jsonDictionary) 53 | resultsHandler(parseResults) 54 | } else 55 | { 56 | let error = NSError(domain: "In results expected Dictionary, unexpected format " + _stdlib_getDemangledTypeName(jsonObject), code: 0, userInfo: nil) 57 | resultsHandler(.Failure(error)) 58 | } 59 | break 60 | 61 | case .Failure(let error): 62 | resultsHandler(.Failure(error)) 63 | break 64 | } 65 | } 66 | 67 | if task != nil 68 | { 69 | task!.resume() 70 | } else 71 | { 72 | let error = NSError(domain: "Unable to create SearchRoute task", code: 0, userInfo: nil) 73 | resultsHandler(.Failure(error)) 74 | } 75 | } 76 | 77 | internal class func parseResults(jsonResponse : NSDictionary) -> SuccessResult<[BingSearchResult]> { 78 | var result = Array() 79 | 80 | if let d = jsonResponse["d"] as? NSDictionary 81 | { 82 | if let searchResults = d["results"] as? NSArray 83 | { 84 | for searchResultObject in searchResults 85 | { 86 | if let searchResult = searchResultObject as? NSDictionary 87 | { 88 | if let searchResultObject = BingSearchResult(dictionary: searchResult) 89 | { 90 | result.append(searchResultObject) 91 | } else 92 | { 93 | let error = NSError(domain: "Unable to parse search result \(searchResult) into BingSearchResult object", code: 0, userInfo: nil) 94 | return .Failure(error) 95 | } 96 | } 97 | } 98 | } 99 | } 100 | 101 | return .Success(result) 102 | } 103 | } 104 | -------------------------------------------------------------------------------- /BingAPI.xcodeproj/xcshareddata/xcschemes/BingAPI.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 45 | 46 | 48 | 54 | 55 | 56 | 57 | 58 | 64 | 65 | 66 | 67 | 68 | 69 | 79 | 80 | 86 | 87 | 88 | 89 | 90 | 91 | 97 | 98 | 104 | 105 | 106 | 107 | 109 | 110 | 113 | 114 | 115 | -------------------------------------------------------------------------------- /BingAPI.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXAggregateTarget section */ 10 | 3CA387A11B150CC7007048AF /* Podspec Lint */ = { 11 | isa = PBXAggregateTarget; 12 | buildConfigurationList = 3CA387A21B150CC7007048AF /* Build configuration list for PBXAggregateTarget "Podspec Lint" */; 13 | buildPhases = ( 14 | 3CA387A51B150CCE007048AF /* ShellScript */, 15 | ); 16 | dependencies = ( 17 | ); 18 | name = "Podspec Lint"; 19 | productName = "Podspec Lint"; 20 | }; 21 | /* End PBXAggregateTarget section */ 22 | 23 | /* Begin PBXBuildFile section */ 24 | 3C03A3FB1B2B5F64001B34F8 /* SearchRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C03A3FA1B2B5F64001B34F8 /* SearchRoute.swift */; }; 25 | 3C041AF81ACEF83E000FD750 /* BingAPI.h in Headers */ = {isa = PBXBuildFile; fileRef = 3C041AF71ACEF83E000FD750 /* BingAPI.h */; settings = {ATTRIBUTES = (Public, ); }; }; 26 | 3C041AFE1ACEF83E000FD750 /* BingAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 3C041AF21ACEF83E000FD750 /* BingAPI.framework */; }; 27 | 3C041B0F1ACEF88C000FD750 /* Bing.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C041B0E1ACEF88C000FD750 /* Bing.swift */; }; 28 | 3C041B111ACEFAA7000FD750 /* BingSearchResult.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C041B101ACEFAA7000FD750 /* BingSearchResult.swift */; }; 29 | 3C33DD9B1AD83C2C00C072C7 /* BingAPI.framework in CopyFiles */ = {isa = PBXBuildFile; fileRef = 3C041AF21ACEF83E000FD750 /* BingAPI.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; 30 | 3C33DD9D1AD8415C00C072C7 /* BingTest.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3C33DD9C1AD8415C00C072C7 /* BingTest.swift */; }; 31 | 3C686FE61B7933EE00E6E326 /* LICENSE.md in Resources */ = {isa = PBXBuildFile; fileRef = 3C686FE51B7933EE00E6E326 /* LICENSE.md */; }; 32 | 3CA3879C1B150BE2007048AF /* README.md in Resources */ = {isa = PBXBuildFile; fileRef = 3C0329601ACF12A50047E65B /* README.md */; }; 33 | 3CE8E3F11B2B6BB900740C41 /* SearchSuggestRoute.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3CE8E3F01B2B6BB900740C41 /* SearchSuggestRoute.swift */; }; 34 | 801C0AE84CA5327BF0922BBB /* Pods_BingAPI.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 4523A0B79E3E0C3939CC6765 /* Pods_BingAPI.framework */; }; 35 | 94162D56C67E038A6EE9F3FE /* Pods_BingAPITests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 33D7F38CCAF4736D0A27DE17 /* Pods_BingAPITests.framework */; }; 36 | /* End PBXBuildFile section */ 37 | 38 | /* Begin PBXContainerItemProxy section */ 39 | 3C041AFF1ACEF83E000FD750 /* PBXContainerItemProxy */ = { 40 | isa = PBXContainerItemProxy; 41 | containerPortal = 3C041AE91ACEF83E000FD750 /* Project object */; 42 | proxyType = 1; 43 | remoteGlobalIDString = 3C041AF11ACEF83E000FD750; 44 | remoteInfo = BingAPI; 45 | }; 46 | /* End PBXContainerItemProxy section */ 47 | 48 | /* Begin PBXCopyFilesBuildPhase section */ 49 | 3C33DD9A1AD83C2300C072C7 /* CopyFiles */ = { 50 | isa = PBXCopyFilesBuildPhase; 51 | buildActionMask = 2147483647; 52 | dstPath = ""; 53 | dstSubfolderSpec = 10; 54 | files = ( 55 | 3C33DD9B1AD83C2C00C072C7 /* BingAPI.framework in CopyFiles */, 56 | ); 57 | runOnlyForDeploymentPostprocessing = 0; 58 | }; 59 | /* End PBXCopyFilesBuildPhase section */ 60 | 61 | /* Begin PBXFileReference section */ 62 | 33D7F38CCAF4736D0A27DE17 /* Pods_BingAPITests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BingAPITests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 63 | 3C03295F1ACF123D0047E65B /* BingAPI.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = BingAPI.podspec; sourceTree = ""; }; 64 | 3C0329601ACF12A50047E65B /* README.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = ""; }; 65 | 3C03A3FA1B2B5F64001B34F8 /* SearchRoute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchRoute.swift; sourceTree = ""; }; 66 | 3C041AF21ACEF83E000FD750 /* BingAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = BingAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 67 | 3C041AF61ACEF83E000FD750 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 68 | 3C041AF71ACEF83E000FD750 /* BingAPI.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = BingAPI.h; sourceTree = ""; }; 69 | 3C041AFD1ACEF83E000FD750 /* BingAPITests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = BingAPITests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 70 | 3C041B031ACEF83E000FD750 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 71 | 3C041B0E1ACEF88C000FD750 /* Bing.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = Bing.swift; sourceTree = ""; }; 72 | 3C041B101ACEFAA7000FD750 /* BingSearchResult.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BingSearchResult.swift; sourceTree = ""; }; 73 | 3C33DD9C1AD8415C00C072C7 /* BingTest.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = BingTest.swift; sourceTree = ""; }; 74 | 3C686FE51B7933EE00E6E326 /* LICENSE.md */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = net.daringfireball.markdown; path = LICENSE.md; sourceTree = ""; }; 75 | 3C686FE71B7937B100E6E326 /* Podfile */ = {isa = PBXFileReference; lastKnownFileType = text; path = Podfile; sourceTree = ""; xcLanguageSpecificationIdentifier = xcode.lang.ruby; }; 76 | 3CA387951B150B7C007048AF /* .coveralls.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .coveralls.yml; sourceTree = ""; }; 77 | 3CA387961B150B7C007048AF /* .travis.yml */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = .travis.yml; sourceTree = ""; }; 78 | 3CA387A61B150FFC007048AF /* NSURLRequest+PrivateExposed.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "NSURLRequest+PrivateExposed.h"; sourceTree = ""; }; 79 | 3CA387A71B15102A007048AF /* BingTest-Bridging-Header.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = "BingTest-Bridging-Header.h"; sourceTree = ""; }; 80 | 3CE8E3F01B2B6BB900740C41 /* SearchSuggestRoute.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = SearchSuggestRoute.swift; sourceTree = ""; }; 81 | 4523A0B79E3E0C3939CC6765 /* Pods_BingAPI.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_BingAPI.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 82 | 53666963FA43D3818BA5166D /* Pods-BingAPITests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BingAPITests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BingAPITests/Pods-BingAPITests.debug.xcconfig"; sourceTree = ""; }; 83 | 6BEA9A13FA51690138FD94A7 /* Pods-BingAPI.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BingAPI.debug.xcconfig"; path = "Pods/Target Support Files/Pods-BingAPI/Pods-BingAPI.debug.xcconfig"; sourceTree = ""; }; 84 | 89F69A019709D128CDC6CF61 /* Pods-BingAPI.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BingAPI.release.xcconfig"; path = "Pods/Target Support Files/Pods-BingAPI/Pods-BingAPI.release.xcconfig"; sourceTree = ""; }; 85 | B8F71902310DFF19FDEB5915 /* Pods-BingAPITests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-BingAPITests.release.xcconfig"; path = "Pods/Target Support Files/Pods-BingAPITests/Pods-BingAPITests.release.xcconfig"; sourceTree = ""; }; 86 | /* End PBXFileReference section */ 87 | 88 | /* Begin PBXFrameworksBuildPhase section */ 89 | 3C041AEE1ACEF83E000FD750 /* Frameworks */ = { 90 | isa = PBXFrameworksBuildPhase; 91 | buildActionMask = 2147483647; 92 | files = ( 93 | 801C0AE84CA5327BF0922BBB /* Pods_BingAPI.framework in Frameworks */, 94 | ); 95 | runOnlyForDeploymentPostprocessing = 0; 96 | }; 97 | 3C041AFA1ACEF83E000FD750 /* Frameworks */ = { 98 | isa = PBXFrameworksBuildPhase; 99 | buildActionMask = 2147483647; 100 | files = ( 101 | 3C041AFE1ACEF83E000FD750 /* BingAPI.framework in Frameworks */, 102 | 94162D56C67E038A6EE9F3FE /* Pods_BingAPITests.framework in Frameworks */, 103 | ); 104 | runOnlyForDeploymentPostprocessing = 0; 105 | }; 106 | /* End PBXFrameworksBuildPhase section */ 107 | 108 | /* Begin PBXGroup section */ 109 | 3C03A3F71B2B5EF7001B34F8 /* Routes */ = { 110 | isa = PBXGroup; 111 | children = ( 112 | 3C03A3FA1B2B5F64001B34F8 /* SearchRoute.swift */, 113 | 3CE8E3F01B2B6BB900740C41 /* SearchSuggestRoute.swift */, 114 | ); 115 | path = Routes; 116 | sourceTree = ""; 117 | }; 118 | 3C041AE81ACEF83E000FD750 = { 119 | isa = PBXGroup; 120 | children = ( 121 | 3C686FE51B7933EE00E6E326 /* LICENSE.md */, 122 | 3C0329601ACF12A50047E65B /* README.md */, 123 | 3C041AF41ACEF83E000FD750 /* BingAPI */, 124 | 3C041B011ACEF83E000FD750 /* BingAPITests */, 125 | 3CA387991B150B8D007048AF /* Supporting Files */, 126 | 3C041AF31ACEF83E000FD750 /* Products */, 127 | 5A266B60DBFDBC16B699D724 /* Frameworks */, 128 | 9F86D32C24660091ECF68882 /* Pods */, 129 | ); 130 | sourceTree = ""; 131 | }; 132 | 3C041AF31ACEF83E000FD750 /* Products */ = { 133 | isa = PBXGroup; 134 | children = ( 135 | 3C041AF21ACEF83E000FD750 /* BingAPI.framework */, 136 | 3C041AFD1ACEF83E000FD750 /* BingAPITests.xctest */, 137 | ); 138 | name = Products; 139 | sourceTree = ""; 140 | }; 141 | 3C041AF41ACEF83E000FD750 /* BingAPI */ = { 142 | isa = PBXGroup; 143 | children = ( 144 | 3C041AF71ACEF83E000FD750 /* BingAPI.h */, 145 | 3C041AF51ACEF83E000FD750 /* Supporting Files */, 146 | 3C041B0E1ACEF88C000FD750 /* Bing.swift */, 147 | 3C041B101ACEFAA7000FD750 /* BingSearchResult.swift */, 148 | 3C03A3F71B2B5EF7001B34F8 /* Routes */, 149 | ); 150 | path = BingAPI; 151 | sourceTree = ""; 152 | }; 153 | 3C041AF51ACEF83E000FD750 /* Supporting Files */ = { 154 | isa = PBXGroup; 155 | children = ( 156 | 3C041AF61ACEF83E000FD750 /* Info.plist */, 157 | ); 158 | name = "Supporting Files"; 159 | sourceTree = ""; 160 | }; 161 | 3C041B011ACEF83E000FD750 /* BingAPITests */ = { 162 | isa = PBXGroup; 163 | children = ( 164 | 3C33DD9C1AD8415C00C072C7 /* BingTest.swift */, 165 | 3C041B021ACEF83E000FD750 /* Supporting Files */, 166 | 3CA387A61B150FFC007048AF /* NSURLRequest+PrivateExposed.h */, 167 | 3CA387A71B15102A007048AF /* BingTest-Bridging-Header.h */, 168 | ); 169 | path = BingAPITests; 170 | sourceTree = ""; 171 | }; 172 | 3C041B021ACEF83E000FD750 /* Supporting Files */ = { 173 | isa = PBXGroup; 174 | children = ( 175 | 3C041B031ACEF83E000FD750 /* Info.plist */, 176 | ); 177 | name = "Supporting Files"; 178 | sourceTree = ""; 179 | }; 180 | 3CA387991B150B8D007048AF /* Supporting Files */ = { 181 | isa = PBXGroup; 182 | children = ( 183 | 3C686FE71B7937B100E6E326 /* Podfile */, 184 | 3CA387951B150B7C007048AF /* .coveralls.yml */, 185 | 3CA387961B150B7C007048AF /* .travis.yml */, 186 | 3C03295F1ACF123D0047E65B /* BingAPI.podspec */, 187 | ); 188 | name = "Supporting Files"; 189 | sourceTree = ""; 190 | }; 191 | 5A266B60DBFDBC16B699D724 /* Frameworks */ = { 192 | isa = PBXGroup; 193 | children = ( 194 | 4523A0B79E3E0C3939CC6765 /* Pods_BingAPI.framework */, 195 | 33D7F38CCAF4736D0A27DE17 /* Pods_BingAPITests.framework */, 196 | ); 197 | name = Frameworks; 198 | sourceTree = ""; 199 | }; 200 | 9F86D32C24660091ECF68882 /* Pods */ = { 201 | isa = PBXGroup; 202 | children = ( 203 | 6BEA9A13FA51690138FD94A7 /* Pods-BingAPI.debug.xcconfig */, 204 | 89F69A019709D128CDC6CF61 /* Pods-BingAPI.release.xcconfig */, 205 | 53666963FA43D3818BA5166D /* Pods-BingAPITests.debug.xcconfig */, 206 | B8F71902310DFF19FDEB5915 /* Pods-BingAPITests.release.xcconfig */, 207 | ); 208 | name = Pods; 209 | sourceTree = ""; 210 | }; 211 | /* End PBXGroup section */ 212 | 213 | /* Begin PBXHeadersBuildPhase section */ 214 | 3C041AEF1ACEF83E000FD750 /* Headers */ = { 215 | isa = PBXHeadersBuildPhase; 216 | buildActionMask = 2147483647; 217 | files = ( 218 | 3C041AF81ACEF83E000FD750 /* BingAPI.h in Headers */, 219 | ); 220 | runOnlyForDeploymentPostprocessing = 0; 221 | }; 222 | /* End PBXHeadersBuildPhase section */ 223 | 224 | /* Begin PBXNativeTarget section */ 225 | 3C041AF11ACEF83E000FD750 /* BingAPI */ = { 226 | isa = PBXNativeTarget; 227 | buildConfigurationList = 3C041B081ACEF83E000FD750 /* Build configuration list for PBXNativeTarget "BingAPI" */; 228 | buildPhases = ( 229 | 55CC11D56177B65549B12562 /* Check Pods Manifest.lock */, 230 | 3C041AED1ACEF83E000FD750 /* Sources */, 231 | 3C041AEE1ACEF83E000FD750 /* Frameworks */, 232 | 3C041AEF1ACEF83E000FD750 /* Headers */, 233 | 3C041AF01ACEF83E000FD750 /* Resources */, 234 | 1F39BE8E3B701EADF6EA327E /* Copy Pods Resources */, 235 | ); 236 | buildRules = ( 237 | ); 238 | dependencies = ( 239 | ); 240 | name = BingAPI; 241 | productName = BingAPI; 242 | productReference = 3C041AF21ACEF83E000FD750 /* BingAPI.framework */; 243 | productType = "com.apple.product-type.framework"; 244 | }; 245 | 3C041AFC1ACEF83E000FD750 /* BingAPITests */ = { 246 | isa = PBXNativeTarget; 247 | buildConfigurationList = 3C041B0B1ACEF83E000FD750 /* Build configuration list for PBXNativeTarget "BingAPITests" */; 248 | buildPhases = ( 249 | 9172D239F643DE62609C48AA /* Check Pods Manifest.lock */, 250 | 3C041AF91ACEF83E000FD750 /* Sources */, 251 | 3C041AFA1ACEF83E000FD750 /* Frameworks */, 252 | 3C041AFB1ACEF83E000FD750 /* Resources */, 253 | 3C33DD9A1AD83C2300C072C7 /* CopyFiles */, 254 | 0AE9A78ADF849CDB289AB856 /* Embed Pods Frameworks */, 255 | AEF8B8F51911E2FC7FB38E19 /* Copy Pods Resources */, 256 | ); 257 | buildRules = ( 258 | ); 259 | dependencies = ( 260 | 3C041B001ACEF83E000FD750 /* PBXTargetDependency */, 261 | ); 262 | name = BingAPITests; 263 | productName = BingAPITests; 264 | productReference = 3C041AFD1ACEF83E000FD750 /* BingAPITests.xctest */; 265 | productType = "com.apple.product-type.bundle.unit-test"; 266 | }; 267 | /* End PBXNativeTarget section */ 268 | 269 | /* Begin PBXProject section */ 270 | 3C041AE91ACEF83E000FD750 /* Project object */ = { 271 | isa = PBXProject; 272 | attributes = { 273 | LastSwiftUpdateCheck = 0710; 274 | LastUpgradeCheck = 0720; 275 | ORGANIZATIONNAME = Adorkable; 276 | TargetAttributes = { 277 | 3C041AF11ACEF83E000FD750 = { 278 | CreatedOnToolsVersion = 6.2; 279 | }; 280 | 3C041AFC1ACEF83E000FD750 = { 281 | CreatedOnToolsVersion = 6.2; 282 | }; 283 | 3CA387A11B150CC7007048AF = { 284 | CreatedOnToolsVersion = 6.3.2; 285 | }; 286 | }; 287 | }; 288 | buildConfigurationList = 3C041AEC1ACEF83E000FD750 /* Build configuration list for PBXProject "BingAPI" */; 289 | compatibilityVersion = "Xcode 3.2"; 290 | developmentRegion = English; 291 | hasScannedForEncodings = 0; 292 | knownRegions = ( 293 | en, 294 | ); 295 | mainGroup = 3C041AE81ACEF83E000FD750; 296 | productRefGroup = 3C041AF31ACEF83E000FD750 /* Products */; 297 | projectDirPath = ""; 298 | projectRoot = ""; 299 | targets = ( 300 | 3C041AF11ACEF83E000FD750 /* BingAPI */, 301 | 3C041AFC1ACEF83E000FD750 /* BingAPITests */, 302 | 3CA387A11B150CC7007048AF /* Podspec Lint */, 303 | ); 304 | }; 305 | /* End PBXProject section */ 306 | 307 | /* Begin PBXResourcesBuildPhase section */ 308 | 3C041AF01ACEF83E000FD750 /* Resources */ = { 309 | isa = PBXResourcesBuildPhase; 310 | buildActionMask = 2147483647; 311 | files = ( 312 | 3C686FE61B7933EE00E6E326 /* LICENSE.md in Resources */, 313 | 3CA3879C1B150BE2007048AF /* README.md in Resources */, 314 | ); 315 | runOnlyForDeploymentPostprocessing = 0; 316 | }; 317 | 3C041AFB1ACEF83E000FD750 /* Resources */ = { 318 | isa = PBXResourcesBuildPhase; 319 | buildActionMask = 2147483647; 320 | files = ( 321 | ); 322 | runOnlyForDeploymentPostprocessing = 0; 323 | }; 324 | /* End PBXResourcesBuildPhase section */ 325 | 326 | /* Begin PBXShellScriptBuildPhase section */ 327 | 0AE9A78ADF849CDB289AB856 /* Embed Pods Frameworks */ = { 328 | isa = PBXShellScriptBuildPhase; 329 | buildActionMask = 2147483647; 330 | files = ( 331 | ); 332 | inputPaths = ( 333 | ); 334 | name = "Embed Pods Frameworks"; 335 | outputPaths = ( 336 | ); 337 | runOnlyForDeploymentPostprocessing = 0; 338 | shellPath = /bin/sh; 339 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BingAPITests/Pods-BingAPITests-frameworks.sh\"\n"; 340 | showEnvVarsInLog = 0; 341 | }; 342 | 1F39BE8E3B701EADF6EA327E /* Copy Pods Resources */ = { 343 | isa = PBXShellScriptBuildPhase; 344 | buildActionMask = 2147483647; 345 | files = ( 346 | ); 347 | inputPaths = ( 348 | ); 349 | name = "Copy Pods Resources"; 350 | outputPaths = ( 351 | ); 352 | runOnlyForDeploymentPostprocessing = 0; 353 | shellPath = /bin/sh; 354 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BingAPI/Pods-BingAPI-resources.sh\"\n"; 355 | showEnvVarsInLog = 0; 356 | }; 357 | 3CA387A51B150CCE007048AF /* ShellScript */ = { 358 | isa = PBXShellScriptBuildPhase; 359 | buildActionMask = 2147483647; 360 | files = ( 361 | ); 362 | inputPaths = ( 363 | ); 364 | outputPaths = ( 365 | ); 366 | runOnlyForDeploymentPostprocessing = 0; 367 | shellPath = /bin/sh; 368 | shellScript = "pod spec lint BingAPI.podspec"; 369 | }; 370 | 55CC11D56177B65549B12562 /* Check Pods Manifest.lock */ = { 371 | isa = PBXShellScriptBuildPhase; 372 | buildActionMask = 2147483647; 373 | files = ( 374 | ); 375 | inputPaths = ( 376 | ); 377 | name = "Check Pods Manifest.lock"; 378 | outputPaths = ( 379 | ); 380 | runOnlyForDeploymentPostprocessing = 0; 381 | shellPath = /bin/sh; 382 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 383 | showEnvVarsInLog = 0; 384 | }; 385 | 9172D239F643DE62609C48AA /* Check Pods Manifest.lock */ = { 386 | isa = PBXShellScriptBuildPhase; 387 | buildActionMask = 2147483647; 388 | files = ( 389 | ); 390 | inputPaths = ( 391 | ); 392 | name = "Check Pods Manifest.lock"; 393 | outputPaths = ( 394 | ); 395 | runOnlyForDeploymentPostprocessing = 0; 396 | shellPath = /bin/sh; 397 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [[ $? != 0 ]] ; then\n cat << EOM\nerror: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\nEOM\n exit 1\nfi\n"; 398 | showEnvVarsInLog = 0; 399 | }; 400 | AEF8B8F51911E2FC7FB38E19 /* Copy Pods Resources */ = { 401 | isa = PBXShellScriptBuildPhase; 402 | buildActionMask = 2147483647; 403 | files = ( 404 | ); 405 | inputPaths = ( 406 | ); 407 | name = "Copy Pods Resources"; 408 | outputPaths = ( 409 | ); 410 | runOnlyForDeploymentPostprocessing = 0; 411 | shellPath = /bin/sh; 412 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-BingAPITests/Pods-BingAPITests-resources.sh\"\n"; 413 | showEnvVarsInLog = 0; 414 | }; 415 | /* End PBXShellScriptBuildPhase section */ 416 | 417 | /* Begin PBXSourcesBuildPhase section */ 418 | 3C041AED1ACEF83E000FD750 /* Sources */ = { 419 | isa = PBXSourcesBuildPhase; 420 | buildActionMask = 2147483647; 421 | files = ( 422 | 3CE8E3F11B2B6BB900740C41 /* SearchSuggestRoute.swift in Sources */, 423 | 3C041B111ACEFAA7000FD750 /* BingSearchResult.swift in Sources */, 424 | 3C03A3FB1B2B5F64001B34F8 /* SearchRoute.swift in Sources */, 425 | 3C041B0F1ACEF88C000FD750 /* Bing.swift in Sources */, 426 | ); 427 | runOnlyForDeploymentPostprocessing = 0; 428 | }; 429 | 3C041AF91ACEF83E000FD750 /* Sources */ = { 430 | isa = PBXSourcesBuildPhase; 431 | buildActionMask = 2147483647; 432 | files = ( 433 | 3C33DD9D1AD8415C00C072C7 /* BingTest.swift in Sources */, 434 | ); 435 | runOnlyForDeploymentPostprocessing = 0; 436 | }; 437 | /* End PBXSourcesBuildPhase section */ 438 | 439 | /* Begin PBXTargetDependency section */ 440 | 3C041B001ACEF83E000FD750 /* PBXTargetDependency */ = { 441 | isa = PBXTargetDependency; 442 | target = 3C041AF11ACEF83E000FD750 /* BingAPI */; 443 | targetProxy = 3C041AFF1ACEF83E000FD750 /* PBXContainerItemProxy */; 444 | }; 445 | /* End PBXTargetDependency section */ 446 | 447 | /* Begin XCBuildConfiguration section */ 448 | 3C041B061ACEF83E000FD750 /* Debug */ = { 449 | isa = XCBuildConfiguration; 450 | buildSettings = { 451 | ALWAYS_SEARCH_USER_PATHS = NO; 452 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 453 | CLANG_CXX_LIBRARY = "libc++"; 454 | CLANG_ENABLE_MODULES = YES; 455 | CLANG_ENABLE_OBJC_ARC = YES; 456 | CLANG_WARN_BOOL_CONVERSION = YES; 457 | CLANG_WARN_CONSTANT_CONVERSION = YES; 458 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 459 | CLANG_WARN_EMPTY_BODY = YES; 460 | CLANG_WARN_ENUM_CONVERSION = YES; 461 | CLANG_WARN_INT_CONVERSION = YES; 462 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 463 | CLANG_WARN_UNREACHABLE_CODE = YES; 464 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 465 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 466 | COPY_PHASE_STRIP = NO; 467 | CURRENT_PROJECT_VERSION = 1; 468 | ENABLE_STRICT_OBJC_MSGSEND = YES; 469 | ENABLE_TESTABILITY = YES; 470 | GCC_C_LANGUAGE_STANDARD = gnu99; 471 | GCC_DYNAMIC_NO_PIC = NO; 472 | GCC_OPTIMIZATION_LEVEL = 0; 473 | GCC_PREPROCESSOR_DEFINITIONS = ( 474 | "DEBUG=1", 475 | "$(inherited)", 476 | ); 477 | GCC_SYMBOLS_PRIVATE_EXTERN = NO; 478 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 479 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 480 | GCC_WARN_UNDECLARED_SELECTOR = YES; 481 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 482 | GCC_WARN_UNUSED_FUNCTION = YES; 483 | GCC_WARN_UNUSED_VARIABLE = YES; 484 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 485 | MTL_ENABLE_DEBUG_INFO = YES; 486 | ONLY_ACTIVE_ARCH = YES; 487 | SDKROOT = iphoneos; 488 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 489 | TARGETED_DEVICE_FAMILY = "1,2"; 490 | VERSIONING_SYSTEM = "apple-generic"; 491 | VERSION_INFO_PREFIX = ""; 492 | }; 493 | name = Debug; 494 | }; 495 | 3C041B071ACEF83E000FD750 /* Release */ = { 496 | isa = XCBuildConfiguration; 497 | buildSettings = { 498 | ALWAYS_SEARCH_USER_PATHS = NO; 499 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 500 | CLANG_CXX_LIBRARY = "libc++"; 501 | CLANG_ENABLE_MODULES = YES; 502 | CLANG_ENABLE_OBJC_ARC = YES; 503 | CLANG_WARN_BOOL_CONVERSION = YES; 504 | CLANG_WARN_CONSTANT_CONVERSION = YES; 505 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 506 | CLANG_WARN_EMPTY_BODY = YES; 507 | CLANG_WARN_ENUM_CONVERSION = YES; 508 | CLANG_WARN_INT_CONVERSION = YES; 509 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 510 | CLANG_WARN_UNREACHABLE_CODE = YES; 511 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 512 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 513 | COPY_PHASE_STRIP = NO; 514 | CURRENT_PROJECT_VERSION = 1; 515 | ENABLE_NS_ASSERTIONS = NO; 516 | ENABLE_STRICT_OBJC_MSGSEND = YES; 517 | GCC_C_LANGUAGE_STANDARD = gnu99; 518 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 519 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 520 | GCC_WARN_UNDECLARED_SELECTOR = YES; 521 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 522 | GCC_WARN_UNUSED_FUNCTION = YES; 523 | GCC_WARN_UNUSED_VARIABLE = YES; 524 | IPHONEOS_DEPLOYMENT_TARGET = 9.1; 525 | MTL_ENABLE_DEBUG_INFO = NO; 526 | SDKROOT = iphoneos; 527 | TARGETED_DEVICE_FAMILY = "1,2"; 528 | VALIDATE_PRODUCT = YES; 529 | VERSIONING_SYSTEM = "apple-generic"; 530 | VERSION_INFO_PREFIX = ""; 531 | }; 532 | name = Release; 533 | }; 534 | 3C041B091ACEF83E000FD750 /* Debug */ = { 535 | isa = XCBuildConfiguration; 536 | baseConfigurationReference = 6BEA9A13FA51690138FD94A7 /* Pods-BingAPI.debug.xcconfig */; 537 | buildSettings = { 538 | CLANG_ENABLE_MODULES = YES; 539 | DEFINES_MODULE = YES; 540 | DYLIB_COMPATIBILITY_VERSION = 1; 541 | DYLIB_CURRENT_VERSION = 1; 542 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 543 | INFOPLIST_FILE = BingAPI/Info.plist; 544 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 545 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 546 | PRODUCT_BUNDLE_IDENTIFIER = "cc.adorkable.$(PRODUCT_NAME:rfc1034identifier)"; 547 | PRODUCT_NAME = "$(TARGET_NAME)"; 548 | SKIP_INSTALL = YES; 549 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 550 | }; 551 | name = Debug; 552 | }; 553 | 3C041B0A1ACEF83E000FD750 /* Release */ = { 554 | isa = XCBuildConfiguration; 555 | baseConfigurationReference = 89F69A019709D128CDC6CF61 /* Pods-BingAPI.release.xcconfig */; 556 | buildSettings = { 557 | CLANG_ENABLE_MODULES = YES; 558 | DEFINES_MODULE = YES; 559 | DYLIB_COMPATIBILITY_VERSION = 1; 560 | DYLIB_CURRENT_VERSION = 1; 561 | DYLIB_INSTALL_NAME_BASE = "@rpath"; 562 | INFOPLIST_FILE = BingAPI/Info.plist; 563 | INSTALL_PATH = "$(LOCAL_LIBRARY_DIR)/Frameworks"; 564 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 565 | PRODUCT_BUNDLE_IDENTIFIER = "cc.adorkable.$(PRODUCT_NAME:rfc1034identifier)"; 566 | PRODUCT_NAME = "$(TARGET_NAME)"; 567 | SKIP_INSTALL = YES; 568 | }; 569 | name = Release; 570 | }; 571 | 3C041B0C1ACEF83E000FD750 /* Debug */ = { 572 | isa = XCBuildConfiguration; 573 | baseConfigurationReference = 53666963FA43D3818BA5166D /* Pods-BingAPITests.debug.xcconfig */; 574 | buildSettings = { 575 | FRAMEWORK_SEARCH_PATHS = ( 576 | "$(SDKROOT)/Developer/Library/Frameworks", 577 | "$(inherited)", 578 | ); 579 | GCC_PREPROCESSOR_DEFINITIONS = ( 580 | "DEBUG=1", 581 | "$(inherited)", 582 | ); 583 | INFOPLIST_FILE = BingAPITests/Info.plist; 584 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 585 | PRODUCT_BUNDLE_IDENTIFIER = "cc.adorkable.$(PRODUCT_NAME:rfc1034identifier)"; 586 | PRODUCT_NAME = "$(TARGET_NAME)"; 587 | SWIFT_OBJC_BRIDGING_HEADER = "BingAPITests/BingTest-Bridging-Header.h"; 588 | }; 589 | name = Debug; 590 | }; 591 | 3C041B0D1ACEF83E000FD750 /* Release */ = { 592 | isa = XCBuildConfiguration; 593 | baseConfigurationReference = B8F71902310DFF19FDEB5915 /* Pods-BingAPITests.release.xcconfig */; 594 | buildSettings = { 595 | FRAMEWORK_SEARCH_PATHS = ( 596 | "$(SDKROOT)/Developer/Library/Frameworks", 597 | "$(inherited)", 598 | ); 599 | INFOPLIST_FILE = BingAPITests/Info.plist; 600 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 601 | PRODUCT_BUNDLE_IDENTIFIER = "cc.adorkable.$(PRODUCT_NAME:rfc1034identifier)"; 602 | PRODUCT_NAME = "$(TARGET_NAME)"; 603 | SWIFT_OBJC_BRIDGING_HEADER = "BingAPITests/BingTest-Bridging-Header.h"; 604 | }; 605 | name = Release; 606 | }; 607 | 3CA387A31B150CC7007048AF /* Debug */ = { 608 | isa = XCBuildConfiguration; 609 | buildSettings = { 610 | PRODUCT_NAME = "$(TARGET_NAME)"; 611 | }; 612 | name = Debug; 613 | }; 614 | 3CA387A41B150CC7007048AF /* Release */ = { 615 | isa = XCBuildConfiguration; 616 | buildSettings = { 617 | PRODUCT_NAME = "$(TARGET_NAME)"; 618 | }; 619 | name = Release; 620 | }; 621 | /* End XCBuildConfiguration section */ 622 | 623 | /* Begin XCConfigurationList section */ 624 | 3C041AEC1ACEF83E000FD750 /* Build configuration list for PBXProject "BingAPI" */ = { 625 | isa = XCConfigurationList; 626 | buildConfigurations = ( 627 | 3C041B061ACEF83E000FD750 /* Debug */, 628 | 3C041B071ACEF83E000FD750 /* Release */, 629 | ); 630 | defaultConfigurationIsVisible = 0; 631 | defaultConfigurationName = Release; 632 | }; 633 | 3C041B081ACEF83E000FD750 /* Build configuration list for PBXNativeTarget "BingAPI" */ = { 634 | isa = XCConfigurationList; 635 | buildConfigurations = ( 636 | 3C041B091ACEF83E000FD750 /* Debug */, 637 | 3C041B0A1ACEF83E000FD750 /* Release */, 638 | ); 639 | defaultConfigurationIsVisible = 0; 640 | defaultConfigurationName = Release; 641 | }; 642 | 3C041B0B1ACEF83E000FD750 /* Build configuration list for PBXNativeTarget "BingAPITests" */ = { 643 | isa = XCConfigurationList; 644 | buildConfigurations = ( 645 | 3C041B0C1ACEF83E000FD750 /* Debug */, 646 | 3C041B0D1ACEF83E000FD750 /* Release */, 647 | ); 648 | defaultConfigurationIsVisible = 0; 649 | defaultConfigurationName = Release; 650 | }; 651 | 3CA387A21B150CC7007048AF /* Build configuration list for PBXAggregateTarget "Podspec Lint" */ = { 652 | isa = XCConfigurationList; 653 | buildConfigurations = ( 654 | 3CA387A31B150CC7007048AF /* Debug */, 655 | 3CA387A41B150CC7007048AF /* Release */, 656 | ); 657 | defaultConfigurationIsVisible = 0; 658 | defaultConfigurationName = Release; 659 | }; 660 | /* End XCConfigurationList section */ 661 | }; 662 | rootObject = 3C041AE91ACEF83E000FD750 /* Project object */; 663 | } 664 | --------------------------------------------------------------------------------