├── .gitignore ├── ios-concourse-pipeline.png ├── ExampleForConcourse ├── Gemfile ├── Podfile.lock ├── fastlane │ ├── Appfile │ ├── README.md │ └── Fastfile ├── Podfile ├── ExampleForConcourse │ ├── ViewController.swift │ ├── Assets.xcassets │ │ └── AppIcon.appiconset │ │ │ └── Contents.json │ ├── Info.plist │ ├── Base.lproj │ │ ├── Main.storyboard │ │ └── LaunchScreen.storyboard │ └── AppDelegate.swift ├── ExampleForConcourseTests │ ├── Info.plist │ └── ExampleForConcourseTests.swift ├── concourse.yml ├── .gitignore ├── ExampleForConcourse.xcodeproj │ ├── xcshareddata │ │ └── xcschemes │ │ │ └── ExampleForConcourse.xcscheme │ └── project.pbxproj └── Gemfile.lock ├── docker-compose.yml └── README.md /.gitignore: -------------------------------------------------------------------------------- 1 | keys/ 2 | -------------------------------------------------------------------------------- /ios-concourse-pipeline.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/tenten0213/ios-concourse/HEAD/ios-concourse-pipeline.png -------------------------------------------------------------------------------- /ExampleForConcourse/Gemfile: -------------------------------------------------------------------------------- 1 | # frozen_string_literal: true 2 | 3 | source "https://rubygems.org" 4 | gem 'rake' 5 | gem 'fastlane' 6 | gem 'cocoapods' 7 | gem 'slather' 8 | -------------------------------------------------------------------------------- /ExampleForConcourse/Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Nimble (5.1.1) 3 | - Quick (1.0.0) 4 | 5 | DEPENDENCIES: 6 | - Nimble 7 | - Quick 8 | 9 | SPEC CHECKSUMS: 10 | Nimble: 415e3aa3267e7bc2c96b05fa814ddea7bb686a29 11 | Quick: 8024e4a47e6cc03a9d5245ef0948264fc6d27cff 12 | 13 | PODFILE CHECKSUM: 542bfcb4092741ec534ec2422c5bd3cc7b454d67 14 | 15 | COCOAPODS: 1.2.0 16 | -------------------------------------------------------------------------------- /ExampleForConcourse/fastlane/Appfile: -------------------------------------------------------------------------------- 1 | app_identifier "net.tenten0213" # The bundle identifier of your app 2 | apple_id "takehito.0213@gmail.com" # Your Apple email address 3 | 4 | team_id ENV["DEV_PORTAL_TEAM_ID"] # Developer Portal Team ID 5 | 6 | # you can even provide different app identifiers, Apple IDs and team names per lane: 7 | # More information: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Appfile.md 8 | -------------------------------------------------------------------------------- /ExampleForConcourse/Podfile: -------------------------------------------------------------------------------- 1 | # Uncomment the next line to define a global platform for your project 2 | # platform :ios, '9.0' 3 | 4 | target 'ExampleForConcourse' do 5 | # Comment the next line if you're not using Swift and don't want to use dynamic frameworks 6 | use_frameworks! 7 | 8 | # Pods for ExampleForConcourse 9 | 10 | target 'ExampleForConcourseTests' do 11 | inherit! :search_paths 12 | pod 'Quick' 13 | pod 'Nimble' 14 | end 15 | 16 | end 17 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // ExampleForConcourse 4 | // 5 | // Copyright © 2017年 tenten0213. All rights reserved. 6 | // 7 | 8 | import UIKit 9 | 10 | class ViewController: UIViewController { 11 | 12 | override func viewDidLoad() { 13 | super.viewDidLoad() 14 | // Do any additional setup after loading the view, typically from a nib. 15 | } 16 | 17 | override func didReceiveMemoryWarning() { 18 | super.didReceiveMemoryWarning() 19 | // Dispose of any resources that can be recreated. 20 | } 21 | 22 | 23 | } 24 | 25 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourseTests/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 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /ExampleForConcourse/concourse.yml: -------------------------------------------------------------------------------- 1 | resources: 2 | - name: ios-concourse 3 | type: git 4 | source: 5 | uri: https://github.com/tenten0213/ios-concourse.git 6 | branch: master 7 | jobs: 8 | - name: build 9 | plan: 10 | - get: ios-concourse 11 | trigger: true 12 | - task: specs 13 | config: 14 | platform: darwin 15 | inputs: 16 | - name: ios-concourse 17 | run: 18 | path: sh 19 | args: 20 | - -c 21 | - | 22 | env 23 | mkdir ios-concourse/ExampleForConcourse/Pods 24 | chown -R $SUDO_USER ios-concourse/ 25 | chown -R $SUDO_USER ~/Library/Caches/CocoaPods 26 | chown -R $SUDO_USER ~/.cocoapods 27 | cd ios-concourse/ExampleForConcourse 28 | sudo -u $SUDO_USER bundle exec fastlane test 29 | -------------------------------------------------------------------------------- /docker-compose.yml: -------------------------------------------------------------------------------- 1 | concourse-db: 2 | image: postgres:9.5 3 | environment: 4 | POSTGRES_DB: concourse 5 | POSTGRES_USER: concourse 6 | POSTGRES_PASSWORD: changeme 7 | PGDATA: /database 8 | 9 | concourse-web: 10 | image: concourse/concourse 11 | links: [concourse-db] 12 | command: web 13 | ports: ["8080:8080", "2222:2222"] 14 | volumes: ["./keys/web:/concourse-keys"] 15 | environment: 16 | CONCOURSE_BASIC_AUTH_USERNAME: concourse 17 | CONCOURSE_BASIC_AUTH_PASSWORD: changeme 18 | CONCOURSE_EXTERNAL_URL: "${CONCOURSE_EXTERNAL_URL}" 19 | CONCOURSE_POSTGRES_DATA_SOURCE: |- 20 | postgres://concourse:changeme@concourse-db:5432/concourse?sslmode=disable 21 | 22 | concourse-worker: 23 | image: concourse/concourse 24 | privileged: true 25 | links: [concourse-web] 26 | command: worker 27 | volumes: ["./keys/worker:/concourse-keys"] 28 | environment: 29 | CONCOURSE_TSA_HOST: concourse-web 30 | 31 | apache: 32 | image: httpd 33 | ports: ["8000:80"] 34 | volumes: ["./ExampleForConcourse/test_output:/usr/local/apache2/htdocs"] 35 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourseTests/ExampleForConcourseTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ExampleForConcourseTests.swift 3 | // ExampleForConcourseTests 4 | // 5 | // Copyright © 2017年 tenten0213. All rights reserved. 6 | // 7 | 8 | import XCTest 9 | @testable import ExampleForConcourse 10 | 11 | class ExampleForConcourseTests: XCTestCase { 12 | 13 | override func setUp() { 14 | super.setUp() 15 | // Put setup code here. This method is called before the invocation of each test method in the class. 16 | } 17 | 18 | override func tearDown() { 19 | // Put teardown code here. This method is called after the invocation of each test method in the class. 20 | super.tearDown() 21 | } 22 | 23 | func testExample() { 24 | // This is an example of a functional test case. 25 | // Use XCTAssert and related functions to verify your tests produce the correct results. 26 | } 27 | 28 | func testPerformanceExample() { 29 | // This is an example of a performance test case. 30 | self.measure { 31 | // Put the code you want to measure the time of here. 32 | } 33 | } 34 | 35 | } 36 | -------------------------------------------------------------------------------- /ExampleForConcourse/.gitignore: -------------------------------------------------------------------------------- 1 | ### https://raw.github.com/github/gitignore/5146122ace54e5f927d9d28d8a0d2cdb2b7eac27/Global/xcode.gitignore 2 | 3 | # Xcode 4 | # 5 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 6 | 7 | ## Build generated 8 | build/ 9 | DerivedData/ 10 | 11 | ## Various settings 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspectivev3 19 | !default.perspectivev3 20 | xcuserdata/ 21 | 22 | ## Other 23 | *.moved-aside 24 | *.xccheckout 25 | *.xcscmblueprint 26 | 27 | ## Pods 28 | Pods/* 29 | *.xcworkspace 30 | 31 | ## bandler 32 | vendor/* 33 | .bundle 34 | 35 | ## build_output 36 | *.app.dSYM.zip 37 | *.ipa 38 | 39 | ## fastlane_report 40 | fastlane/report.xml 41 | 42 | ## analyze_report 43 | swiftlint_report.xml 44 | 45 | ## test_report 46 | fastlane/test_output/report.junit 47 | 48 | ## Coverage_report 49 | test_output/ 50 | fastlane/test_output 51 | 52 | ## Coverage_report 53 | test_output/ 54 | 55 | ## deliver temporary files 56 | fastlane/Preview.html 57 | 58 | ## snapshot generated screenshots 59 | fastlane/screenshots 60 | 61 | # Other 62 | keys/ 63 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # ios-concourse 2 | 3 | Building iOS application using [Concourse CI](https://concourse.ci/) 4 | 5 | ## Build 6 | 7 | first, clone this repo. 8 | 9 | ```bash 10 | $ mkdir -p keys/web keys/worker 11 | $ ssh-keygen -t rsa -f ./keys/web/tsa_host_key -N '' 12 | $ ssh-keygen -t rsa -f ./keys/web/session_signing_key -N '' 13 | $ ssh-keygen -t rsa -f ./keys/worker/worker_key -N '' 14 | $ cp ./keys/worker/worker_key.pub ./keys/web/authorized_worker_keys 15 | $ cp ./keys/web/tsa_host_key.pub ./keys/worker 16 | $ ssh-keygen -t rsa -f ./keys/worker/darwin_worker_key -N '' 17 | $ cat ./keys/worker/darwin_worker_key.pub >> ./keys/web/authorized_worker_keys 18 | $ export DEV_PORTAL_TEAM_ID=YOUR_TEAM_ID 19 | ``` 20 | 21 | Start Concourse CI. 22 | 23 | ```bash 24 | $ docker-compose up 25 | ``` 26 | 27 | Start Darwin worker. 28 | 29 | ```bash 30 | $ sudo concourse worker --work-dir /opt/concourse/worker --tsa-host 127.0.0.1 --tsa-public-key ./keys/worker/tsa_host_key.pub --tsa-worker-private-key ./keys/worker/darwin_worker_key 31 | ``` 32 | 33 | Set pipleline. 34 | 35 | ```bash 36 | $ cd ExampleForConcourse 37 | $ fly -t ci login -c http://127.0.0.1:8080/ 38 | $ fly -t ci set-pipeline -p ios-concourse -c concourse.yml 39 | $ fly -t ci unpause-pipeline -p ios-concourse 40 | ``` 41 | 42 | ![pipeline](./ios-concourse-pipeline.png) 43 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "size" : "29x29", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "size" : "29x29", 11 | "scale" : "3x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "size" : "40x40", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "size" : "40x40", 21 | "scale" : "3x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "size" : "60x60", 26 | "scale" : "2x" 27 | }, 28 | { 29 | "idiom" : "iphone", 30 | "size" : "60x60", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "idiom" : "ipad", 35 | "size" : "29x29", 36 | "scale" : "1x" 37 | }, 38 | { 39 | "idiom" : "ipad", 40 | "size" : "29x29", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "size" : "40x40", 46 | "scale" : "1x" 47 | }, 48 | { 49 | "idiom" : "ipad", 50 | "size" : "40x40", 51 | "scale" : "2x" 52 | }, 53 | { 54 | "idiom" : "ipad", 55 | "size" : "76x76", 56 | "scale" : "1x" 57 | }, 58 | { 59 | "idiom" : "ipad", 60 | "size" : "76x76", 61 | "scale" : "2x" 62 | } 63 | ], 64 | "info" : { 65 | "version" : 1, 66 | "author" : "xcode" 67 | } 68 | } -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/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 | APPL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | LSRequiresIPhoneOS 22 | 23 | UILaunchStoryboardName 24 | LaunchScreen 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | armv7 30 | 31 | UISupportedInterfaceOrientations 32 | 33 | UIInterfaceOrientationPortrait 34 | UIInterfaceOrientationLandscapeLeft 35 | UIInterfaceOrientationLandscapeRight 36 | 37 | UISupportedInterfaceOrientations~ipad 38 | 39 | UIInterfaceOrientationPortrait 40 | UIInterfaceOrientationPortraitUpsideDown 41 | UIInterfaceOrientationLandscapeLeft 42 | UIInterfaceOrientationLandscapeRight 43 | 44 | 45 | 46 | -------------------------------------------------------------------------------- /ExampleForConcourse/fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | 5 | Make sure you have the latest version of the Xcode command line tools installed: 6 | 7 | ``` 8 | xcode-select --install 9 | ``` 10 | 11 | ## Choose your installation method: 12 | 13 | 14 | 15 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 |
Homebrew 16 | Installer Script 17 | Rubygems 18 |
macOSmacOSmacOS or Linux with Ruby 2.0.0 or above
brew cask install fastlaneDownload the zip file. Then double click on the install script (or run it in a terminal window).sudo gem install fastlane -NV
30 | # Available Actions 31 | ## iOS 32 | ### ios test 33 | ``` 34 | fastlane ios test 35 | ``` 36 | Runs all the tests 37 | ### ios beta 38 | ``` 39 | fastlane ios beta 40 | ``` 41 | Submit a new Beta Build to Apple TestFlight 42 | 43 | This will also make sure the profile is up to date 44 | ### ios release 45 | ``` 46 | fastlane ios release 47 | ``` 48 | Deploy a new version to the App Store 49 | 50 | ---- 51 | 52 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 53 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 54 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 55 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/Base.lproj/Main.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/Base.lproj/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // ExampleForConcourse 4 | // 5 | // Copyright © 2017年 tenten0213. All rights reserved. 6 | // 7 | 8 | import UIKit 9 | 10 | @UIApplicationMain 11 | class AppDelegate: UIResponder, UIApplicationDelegate { 12 | 13 | var window: UIWindow? 14 | 15 | 16 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplicationLaunchOptionsKey: Any]?) -> Bool { 17 | // Override point for customization after application launch. 18 | return true 19 | } 20 | 21 | func applicationWillResignActive(_ application: UIApplication) { 22 | // Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state. 23 | // Use this method to pause ongoing tasks, disable timers, and invalidate graphics rendering callbacks. Games should use this method to pause the game. 24 | } 25 | 26 | func applicationDidEnterBackground(_ application: UIApplication) { 27 | // Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later. 28 | // If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits. 29 | } 30 | 31 | func applicationWillEnterForeground(_ application: UIApplication) { 32 | // Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background. 33 | } 34 | 35 | func applicationDidBecomeActive(_ application: UIApplication) { 36 | // Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface. 37 | } 38 | 39 | func applicationWillTerminate(_ application: UIApplication) { 40 | // Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:. 41 | } 42 | 43 | 44 | } 45 | 46 | -------------------------------------------------------------------------------- /ExampleForConcourse/fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # Customise this file, documentation can be found here: 2 | # https://github.com/fastlane/fastlane/tree/master/fastlane/docs 3 | # All available actions: https://docs.fastlane.tools/actions 4 | # can also be listed using the `fastlane actions` command 5 | 6 | # Change the syntax highlighting to Ruby 7 | # All lines starting with a # are ignored when running `fastlane` 8 | 9 | # If you want to automatically update fastlane if a new version is available: 10 | # update_fastlane 11 | 12 | # This is the minimum version number required. 13 | # Update this, if you use features of a newer version 14 | fastlane_version "2.19.1" 15 | 16 | default_platform :ios 17 | 18 | platform :ios do 19 | before_all do 20 | # ENV["SLACK_URL"] = "https://hooks.slack.com/services/..." 21 | cocoapods 22 | 23 | end 24 | 25 | desc "Runs all the tests" 26 | lane :test do 27 | scan( 28 | scheme: "ExampleForConcourse", 29 | clean: true, 30 | device: 'iPhone 7', 31 | output_types: "html", 32 | code_coverage: true, 33 | ) 34 | slather( 35 | html: true, 36 | output_directory: "test_output", 37 | proj: "ExampleForConcourse.xcodeproj", 38 | workspace: "ExampleForConcourse.xcworkspace", 39 | scheme: "ExampleForConcourse", 40 | ignore:['../../*'] 41 | ) 42 | end 43 | 44 | desc "Submit a new Beta Build to Apple TestFlight" 45 | desc "This will also make sure the profile is up to date" 46 | lane :beta do 47 | # match(type: "appstore") # more information: https://codesigning.guide 48 | gym # Build your app - more options available 49 | pilot 50 | 51 | # sh "your_script.sh" 52 | # You can also use other beta testing services here (run `fastlane actions`) 53 | end 54 | 55 | desc "Deploy a new version to the App Store" 56 | lane :release do 57 | # match(type: "appstore") 58 | # snapshot 59 | gym # Build your app - more options available 60 | deliver(force: true) 61 | # frameit 62 | end 63 | 64 | # You can define as many lanes as you want 65 | 66 | after_all do |lane| 67 | # This block is called, only if the executed lane was successful 68 | 69 | # slack( 70 | # message: "Successfully deployed new App Update." 71 | # ) 72 | end 73 | 74 | error do |lane, exception| 75 | # slack( 76 | # message: exception.message, 77 | # success: false 78 | # ) 79 | end 80 | end 81 | 82 | 83 | # More information about multiple platforms in fastlane: https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Platforms.md 84 | # All available actions: https://docs.fastlane.tools/actions 85 | 86 | # fastlane reports which actions are used 87 | # No personal data is recorded. Learn more at https://github.com/fastlane/enhancer 88 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse.xcodeproj/xcshareddata/xcschemes/ExampleForConcourse.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 38 | 39 | 44 | 45 | 47 | 53 | 54 | 55 | 56 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 78 | 80 | 86 | 87 | 88 | 89 | 90 | 91 | 97 | 99 | 105 | 106 | 107 | 108 | 110 | 111 | 114 | 115 | 116 | -------------------------------------------------------------------------------- /ExampleForConcourse/Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | CFPropertyList (2.3.5) 5 | activesupport (4.2.8) 6 | i18n (~> 0.7) 7 | minitest (~> 5.1) 8 | thread_safe (~> 0.3, >= 0.3.4) 9 | tzinfo (~> 1.1) 10 | addressable (2.5.0) 11 | public_suffix (~> 2.0, >= 2.0.2) 12 | babosa (1.0.2) 13 | claide (1.0.1) 14 | clamp (0.6.5) 15 | cocoapods (1.2.0) 16 | activesupport (>= 4.0.2, < 5) 17 | claide (>= 1.0.1, < 2.0) 18 | cocoapods-core (= 1.2.0) 19 | cocoapods-deintegrate (>= 1.0.1, < 2.0) 20 | cocoapods-downloader (>= 1.1.3, < 2.0) 21 | cocoapods-plugins (>= 1.0.0, < 2.0) 22 | cocoapods-search (>= 1.0.0, < 2.0) 23 | cocoapods-stats (>= 1.0.0, < 2.0) 24 | cocoapods-trunk (>= 1.1.2, < 2.0) 25 | cocoapods-try (>= 1.1.0, < 2.0) 26 | colored (~> 1.2) 27 | escape (~> 0.0.4) 28 | fourflusher (~> 2.0.1) 29 | gh_inspector (~> 1.0) 30 | molinillo (~> 0.5.5) 31 | nap (~> 1.0) 32 | ruby-macho (~> 0.2.5) 33 | xcodeproj (>= 1.4.1, < 2.0) 34 | cocoapods-core (1.2.0) 35 | activesupport (>= 4.0.2, < 5) 36 | fuzzy_match (~> 2.0.4) 37 | nap (~> 1.0) 38 | cocoapods-deintegrate (1.0.1) 39 | cocoapods-downloader (1.1.3) 40 | cocoapods-plugins (1.0.0) 41 | nap 42 | cocoapods-search (1.0.0) 43 | cocoapods-stats (1.0.0) 44 | cocoapods-trunk (1.1.2) 45 | nap (>= 0.8, < 2.0) 46 | netrc (= 0.7.8) 47 | cocoapods-try (1.1.0) 48 | colored (1.2) 49 | commander (4.4.3) 50 | highline (~> 1.7.2) 51 | domain_name (0.5.20170223) 52 | unf (>= 0.0.5, < 1.0.0) 53 | dotenv (2.2.0) 54 | escape (0.0.4) 55 | excon (0.55.0) 56 | faraday (0.11.0) 57 | multipart-post (>= 1.2, < 3) 58 | faraday-cookie_jar (0.0.6) 59 | faraday (>= 0.7.4) 60 | http-cookie (~> 1.0.0) 61 | faraday_middleware (0.11.0.1) 62 | faraday (>= 0.7.4, < 1.0) 63 | fastimage (2.1.0) 64 | fastlane (2.19.1) 65 | activesupport (< 5) 66 | addressable (>= 2.3, < 3.0.0) 67 | babosa (>= 1.0.2, < 2.0.0) 68 | bundler (>= 1.12.0, < 2.0.0) 69 | colored 70 | commander (>= 4.4.0, < 5.0.0) 71 | dotenv (>= 2.1.1, < 3.0.0) 72 | excon (>= 0.45.0, < 1.0.0) 73 | faraday (~> 0.9) 74 | faraday-cookie_jar (~> 0.0.6) 75 | faraday_middleware (~> 0.9) 76 | fastimage (>= 1.6) 77 | gh_inspector (>= 1.0.1, < 2.0.0) 78 | google-api-client (~> 0.9.2) 79 | highline (>= 1.7.2, < 2.0.0) 80 | json (< 3.0.0) 81 | mini_magick (~> 4.5.1) 82 | multi_json 83 | multi_xml (~> 0.5) 84 | multipart-post (~> 2.0.0) 85 | plist (>= 3.1.0, < 4.0.0) 86 | rubyzip (>= 1.1.0, < 2.0.0) 87 | security (= 0.1.3) 88 | slack-notifier (>= 1.3, < 2.0.0) 89 | terminal-notifier (>= 1.6.2, < 2.0.0) 90 | terminal-table (>= 1.4.5, < 2.0.0) 91 | tty-screen (~> 0.5.0) 92 | word_wrap (~> 1.0.0) 93 | xcodeproj (>= 0.20, < 2.0.0) 94 | xcpretty (>= 0.2.4, < 1.0.0) 95 | xcpretty-travis-formatter (>= 0.0.3) 96 | fourflusher (2.0.1) 97 | fuzzy_match (2.0.4) 98 | gh_inspector (1.0.3) 99 | google-api-client (0.9.28) 100 | addressable (~> 2.3) 101 | googleauth (~> 0.5) 102 | httpclient (~> 2.7) 103 | hurley (~> 0.1) 104 | memoist (~> 0.11) 105 | mime-types (>= 1.6) 106 | representable (~> 2.3.0) 107 | retriable (~> 2.0) 108 | googleauth (0.5.1) 109 | faraday (~> 0.9) 110 | jwt (~> 1.4) 111 | logging (~> 2.0) 112 | memoist (~> 0.12) 113 | multi_json (~> 1.11) 114 | os (~> 0.9) 115 | signet (~> 0.7) 116 | highline (1.7.8) 117 | http-cookie (1.0.3) 118 | domain_name (~> 0.5) 119 | httpclient (2.8.3) 120 | hurley (0.2) 121 | i18n (0.8.1) 122 | json (2.0.3) 123 | jwt (1.5.6) 124 | little-plugger (1.1.4) 125 | logging (2.1.0) 126 | little-plugger (~> 1.1) 127 | multi_json (~> 1.10) 128 | memoist (0.15.0) 129 | mime-types (3.1) 130 | mime-types-data (~> 3.2015) 131 | mime-types-data (3.2016.0521) 132 | mini_magick (4.5.1) 133 | mini_portile2 (2.1.0) 134 | minitest (5.10.1) 135 | molinillo (0.5.6) 136 | multi_json (1.12.1) 137 | multi_xml (0.6.0) 138 | multipart-post (2.0.0) 139 | nanaimo (0.2.3) 140 | nap (1.1.0) 141 | netrc (0.7.8) 142 | nokogiri (1.6.8.1) 143 | mini_portile2 (~> 2.1.0) 144 | os (0.9.6) 145 | plist (3.2.0) 146 | public_suffix (2.0.5) 147 | rake (12.0.0) 148 | representable (2.3.0) 149 | uber (~> 0.0.7) 150 | retriable (2.1.0) 151 | rouge (1.11.1) 152 | ruby-macho (0.2.6) 153 | rubyzip (1.2.1) 154 | security (0.1.3) 155 | signet (0.7.3) 156 | addressable (~> 2.3) 157 | faraday (~> 0.9) 158 | jwt (~> 1.5) 159 | multi_json (~> 1.10) 160 | slack-notifier (1.5.1) 161 | slather (2.3.0) 162 | activesupport (>= 4.0.2, < 5) 163 | clamp (~> 0.6) 164 | nokogiri (~> 1.6.3) 165 | xcodeproj (>= 0.20, < 2.0.0) 166 | terminal-notifier (1.7.1) 167 | terminal-table (1.7.3) 168 | unicode-display_width (~> 1.1.1) 169 | thread_safe (0.3.6) 170 | tty-screen (0.5.0) 171 | tzinfo (1.2.2) 172 | thread_safe (~> 0.1) 173 | uber (0.0.15) 174 | unf (0.1.4) 175 | unf_ext 176 | unf_ext (0.0.7.2) 177 | unicode-display_width (1.1.3) 178 | word_wrap (1.0.0) 179 | xcodeproj (1.4.2) 180 | CFPropertyList (~> 2.3.3) 181 | activesupport (>= 3) 182 | claide (>= 1.0.1, < 2.0) 183 | colored (~> 1.2) 184 | nanaimo (~> 0.2.3) 185 | xcpretty (0.2.4) 186 | rouge (~> 1.8) 187 | xcpretty-travis-formatter (0.0.4) 188 | xcpretty (~> 0.2, >= 0.0.7) 189 | 190 | PLATFORMS 191 | ruby 192 | 193 | DEPENDENCIES 194 | cocoapods 195 | fastlane 196 | rake 197 | slather 198 | 199 | BUNDLED WITH 200 | 1.13.6 201 | -------------------------------------------------------------------------------- /ExampleForConcourse/ExampleForConcourse.xcodeproj/project.pbxproj: -------------------------------------------------------------------------------- 1 | // !$*UTF8*$! 2 | { 3 | archiveVersion = 1; 4 | classes = { 5 | }; 6 | objectVersion = 46; 7 | objects = { 8 | 9 | /* Begin PBXBuildFile section */ 10 | 6D238E59CCA5FE1B886A91BA /* Pods_ExampleForConcourse.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 1E944168EB8744F86539E589 /* Pods_ExampleForConcourse.framework */; }; 11 | 9A5F0525FA60067A863737FE /* Pods_ExampleForConcourseTests.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 6557F4EDED130427B9DC5E75 /* Pods_ExampleForConcourseTests.framework */; }; 12 | AA02E6201E6852F300749A5F /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA02E61F1E6852F300749A5F /* AppDelegate.swift */; }; 13 | AA02E6221E6852F300749A5F /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA02E6211E6852F300749A5F /* ViewController.swift */; }; 14 | AA02E6251E6852F300749A5F /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA02E6231E6852F300749A5F /* Main.storyboard */; }; 15 | AA02E6271E6852F300749A5F /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = AA02E6261E6852F300749A5F /* Assets.xcassets */; }; 16 | AA02E62A1E6852F300749A5F /* LaunchScreen.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = AA02E6281E6852F300749A5F /* LaunchScreen.storyboard */; }; 17 | AA02E6351E6852F300749A5F /* ExampleForConcourseTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = AA02E6341E6852F300749A5F /* ExampleForConcourseTests.swift */; }; 18 | /* End PBXBuildFile section */ 19 | 20 | /* Begin PBXContainerItemProxy section */ 21 | AA02E6311E6852F300749A5F /* PBXContainerItemProxy */ = { 22 | isa = PBXContainerItemProxy; 23 | containerPortal = AA02E6141E6852F200749A5F /* Project object */; 24 | proxyType = 1; 25 | remoteGlobalIDString = AA02E61B1E6852F200749A5F; 26 | remoteInfo = ExampleForConcourse; 27 | }; 28 | /* End PBXContainerItemProxy section */ 29 | 30 | /* Begin PBXFileReference section */ 31 | 00CBA898FC03C919466D84F9 /* Pods-ExampleForConcourse.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleForConcourse.release.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleForConcourse/Pods-ExampleForConcourse.release.xcconfig"; sourceTree = ""; }; 32 | 0C5C49D6AD4EB771EB9BA59E /* Pods-ExampleForConcourseTests.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleForConcourseTests.release.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleForConcourseTests/Pods-ExampleForConcourseTests.release.xcconfig"; sourceTree = ""; }; 33 | 1E944168EB8744F86539E589 /* Pods_ExampleForConcourse.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ExampleForConcourse.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 34 | 6557F4EDED130427B9DC5E75 /* Pods_ExampleForConcourseTests.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_ExampleForConcourseTests.framework; sourceTree = BUILT_PRODUCTS_DIR; }; 35 | 6979F2E9E4C61E641F9EE8D9 /* Pods-ExampleForConcourseTests.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleForConcourseTests.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleForConcourseTests/Pods-ExampleForConcourseTests.debug.xcconfig"; sourceTree = ""; }; 36 | A34DA07DFF6FC1F9EDB01C2E /* Pods-ExampleForConcourse.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-ExampleForConcourse.debug.xcconfig"; path = "Pods/Target Support Files/Pods-ExampleForConcourse/Pods-ExampleForConcourse.debug.xcconfig"; sourceTree = ""; }; 37 | AA02E61C1E6852F200749A5F /* ExampleForConcourse.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = ExampleForConcourse.app; sourceTree = BUILT_PRODUCTS_DIR; }; 38 | AA02E61F1E6852F300749A5F /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = ""; }; 39 | AA02E6211E6852F300749A5F /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = ""; }; 40 | AA02E6241E6852F300749A5F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = ""; }; 41 | AA02E6261E6852F300749A5F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; 42 | AA02E6291E6852F300749A5F /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/LaunchScreen.storyboard; sourceTree = ""; }; 43 | AA02E62B1E6852F300749A5F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 44 | AA02E6301E6852F300749A5F /* ExampleForConcourseTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = ExampleForConcourseTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; }; 45 | AA02E6341E6852F300749A5F /* ExampleForConcourseTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ExampleForConcourseTests.swift; sourceTree = ""; }; 46 | AA02E6361E6852F300749A5F /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; 47 | /* End PBXFileReference section */ 48 | 49 | /* Begin PBXFrameworksBuildPhase section */ 50 | AA02E6191E6852F200749A5F /* Frameworks */ = { 51 | isa = PBXFrameworksBuildPhase; 52 | buildActionMask = 2147483647; 53 | files = ( 54 | 6D238E59CCA5FE1B886A91BA /* Pods_ExampleForConcourse.framework in Frameworks */, 55 | ); 56 | runOnlyForDeploymentPostprocessing = 0; 57 | }; 58 | AA02E62D1E6852F300749A5F /* Frameworks */ = { 59 | isa = PBXFrameworksBuildPhase; 60 | buildActionMask = 2147483647; 61 | files = ( 62 | 9A5F0525FA60067A863737FE /* Pods_ExampleForConcourseTests.framework in Frameworks */, 63 | ); 64 | runOnlyForDeploymentPostprocessing = 0; 65 | }; 66 | /* End PBXFrameworksBuildPhase section */ 67 | 68 | /* Begin PBXGroup section */ 69 | 13E8F1E6D45D15E50DF33821 /* Pods */ = { 70 | isa = PBXGroup; 71 | children = ( 72 | A34DA07DFF6FC1F9EDB01C2E /* Pods-ExampleForConcourse.debug.xcconfig */, 73 | 00CBA898FC03C919466D84F9 /* Pods-ExampleForConcourse.release.xcconfig */, 74 | 6979F2E9E4C61E641F9EE8D9 /* Pods-ExampleForConcourseTests.debug.xcconfig */, 75 | 0C5C49D6AD4EB771EB9BA59E /* Pods-ExampleForConcourseTests.release.xcconfig */, 76 | ); 77 | name = Pods; 78 | sourceTree = ""; 79 | }; 80 | AA02E6131E6852F200749A5F = { 81 | isa = PBXGroup; 82 | children = ( 83 | AA02E61E1E6852F200749A5F /* ExampleForConcourse */, 84 | AA02E6331E6852F300749A5F /* ExampleForConcourseTests */, 85 | AA02E61D1E6852F200749A5F /* Products */, 86 | 13E8F1E6D45D15E50DF33821 /* Pods */, 87 | F8B2C38E6BE634A71D3AA2F1 /* Frameworks */, 88 | ); 89 | sourceTree = ""; 90 | }; 91 | AA02E61D1E6852F200749A5F /* Products */ = { 92 | isa = PBXGroup; 93 | children = ( 94 | AA02E61C1E6852F200749A5F /* ExampleForConcourse.app */, 95 | AA02E6301E6852F300749A5F /* ExampleForConcourseTests.xctest */, 96 | ); 97 | name = Products; 98 | sourceTree = ""; 99 | }; 100 | AA02E61E1E6852F200749A5F /* ExampleForConcourse */ = { 101 | isa = PBXGroup; 102 | children = ( 103 | AA02E61F1E6852F300749A5F /* AppDelegate.swift */, 104 | AA02E6211E6852F300749A5F /* ViewController.swift */, 105 | AA02E6231E6852F300749A5F /* Main.storyboard */, 106 | AA02E6261E6852F300749A5F /* Assets.xcassets */, 107 | AA02E6281E6852F300749A5F /* LaunchScreen.storyboard */, 108 | AA02E62B1E6852F300749A5F /* Info.plist */, 109 | ); 110 | path = ExampleForConcourse; 111 | sourceTree = ""; 112 | }; 113 | AA02E6331E6852F300749A5F /* ExampleForConcourseTests */ = { 114 | isa = PBXGroup; 115 | children = ( 116 | AA02E6341E6852F300749A5F /* ExampleForConcourseTests.swift */, 117 | AA02E6361E6852F300749A5F /* Info.plist */, 118 | ); 119 | path = ExampleForConcourseTests; 120 | sourceTree = ""; 121 | }; 122 | F8B2C38E6BE634A71D3AA2F1 /* Frameworks */ = { 123 | isa = PBXGroup; 124 | children = ( 125 | 1E944168EB8744F86539E589 /* Pods_ExampleForConcourse.framework */, 126 | 6557F4EDED130427B9DC5E75 /* Pods_ExampleForConcourseTests.framework */, 127 | ); 128 | name = Frameworks; 129 | sourceTree = ""; 130 | }; 131 | /* End PBXGroup section */ 132 | 133 | /* Begin PBXNativeTarget section */ 134 | AA02E61B1E6852F200749A5F /* ExampleForConcourse */ = { 135 | isa = PBXNativeTarget; 136 | buildConfigurationList = AA02E6391E6852F300749A5F /* Build configuration list for PBXNativeTarget "ExampleForConcourse" */; 137 | buildPhases = ( 138 | 7474475C4AE617302D08EED7 /* [CP] Check Pods Manifest.lock */, 139 | AA02E6181E6852F200749A5F /* Sources */, 140 | AA02E6191E6852F200749A5F /* Frameworks */, 141 | AA02E61A1E6852F200749A5F /* Resources */, 142 | 2225F08B6BF428CAA644D845 /* [CP] Embed Pods Frameworks */, 143 | 7CEF08E5C02CFA7375C3DF3C /* [CP] Copy Pods Resources */, 144 | ); 145 | buildRules = ( 146 | ); 147 | dependencies = ( 148 | ); 149 | name = ExampleForConcourse; 150 | productName = ExampleForConcourse; 151 | productReference = AA02E61C1E6852F200749A5F /* ExampleForConcourse.app */; 152 | productType = "com.apple.product-type.application"; 153 | }; 154 | AA02E62F1E6852F300749A5F /* ExampleForConcourseTests */ = { 155 | isa = PBXNativeTarget; 156 | buildConfigurationList = AA02E63C1E6852F300749A5F /* Build configuration list for PBXNativeTarget "ExampleForConcourseTests" */; 157 | buildPhases = ( 158 | 4F946DDE73E02679D1937F5D /* [CP] Check Pods Manifest.lock */, 159 | AA02E62C1E6852F300749A5F /* Sources */, 160 | AA02E62D1E6852F300749A5F /* Frameworks */, 161 | AA02E62E1E6852F300749A5F /* Resources */, 162 | 131BF67AC15DF9D40B46375E /* [CP] Embed Pods Frameworks */, 163 | 6436CAB1AFF646B2896BE04D /* [CP] Copy Pods Resources */, 164 | ); 165 | buildRules = ( 166 | ); 167 | dependencies = ( 168 | AA02E6321E6852F300749A5F /* PBXTargetDependency */, 169 | ); 170 | name = ExampleForConcourseTests; 171 | productName = ExampleForConcourseTests; 172 | productReference = AA02E6301E6852F300749A5F /* ExampleForConcourseTests.xctest */; 173 | productType = "com.apple.product-type.bundle.unit-test"; 174 | }; 175 | /* End PBXNativeTarget section */ 176 | 177 | /* Begin PBXProject section */ 178 | AA02E6141E6852F200749A5F /* Project object */ = { 179 | isa = PBXProject; 180 | attributes = { 181 | LastSwiftUpdateCheck = 0820; 182 | LastUpgradeCheck = 0820; 183 | ORGANIZATIONNAME = tenten0213; 184 | TargetAttributes = { 185 | AA02E61B1E6852F200749A5F = { 186 | CreatedOnToolsVersion = 8.2.1; 187 | ProvisioningStyle = Automatic; 188 | }; 189 | AA02E62F1E6852F300749A5F = { 190 | CreatedOnToolsVersion = 8.2.1; 191 | ProvisioningStyle = Automatic; 192 | TestTargetID = AA02E61B1E6852F200749A5F; 193 | }; 194 | }; 195 | }; 196 | buildConfigurationList = AA02E6171E6852F200749A5F /* Build configuration list for PBXProject "ExampleForConcourse" */; 197 | compatibilityVersion = "Xcode 3.2"; 198 | developmentRegion = English; 199 | hasScannedForEncodings = 0; 200 | knownRegions = ( 201 | en, 202 | Base, 203 | ); 204 | mainGroup = AA02E6131E6852F200749A5F; 205 | productRefGroup = AA02E61D1E6852F200749A5F /* Products */; 206 | projectDirPath = ""; 207 | projectRoot = ""; 208 | targets = ( 209 | AA02E61B1E6852F200749A5F /* ExampleForConcourse */, 210 | AA02E62F1E6852F300749A5F /* ExampleForConcourseTests */, 211 | ); 212 | }; 213 | /* End PBXProject section */ 214 | 215 | /* Begin PBXResourcesBuildPhase section */ 216 | AA02E61A1E6852F200749A5F /* Resources */ = { 217 | isa = PBXResourcesBuildPhase; 218 | buildActionMask = 2147483647; 219 | files = ( 220 | AA02E62A1E6852F300749A5F /* LaunchScreen.storyboard in Resources */, 221 | AA02E6271E6852F300749A5F /* Assets.xcassets in Resources */, 222 | AA02E6251E6852F300749A5F /* Main.storyboard in Resources */, 223 | ); 224 | runOnlyForDeploymentPostprocessing = 0; 225 | }; 226 | AA02E62E1E6852F300749A5F /* Resources */ = { 227 | isa = PBXResourcesBuildPhase; 228 | buildActionMask = 2147483647; 229 | files = ( 230 | ); 231 | runOnlyForDeploymentPostprocessing = 0; 232 | }; 233 | /* End PBXResourcesBuildPhase section */ 234 | 235 | /* Begin PBXShellScriptBuildPhase section */ 236 | 131BF67AC15DF9D40B46375E /* [CP] Embed Pods Frameworks */ = { 237 | isa = PBXShellScriptBuildPhase; 238 | buildActionMask = 2147483647; 239 | files = ( 240 | ); 241 | inputPaths = ( 242 | ); 243 | name = "[CP] Embed Pods Frameworks"; 244 | outputPaths = ( 245 | ); 246 | runOnlyForDeploymentPostprocessing = 0; 247 | shellPath = /bin/sh; 248 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ExampleForConcourseTests/Pods-ExampleForConcourseTests-frameworks.sh\"\n"; 249 | showEnvVarsInLog = 0; 250 | }; 251 | 2225F08B6BF428CAA644D845 /* [CP] Embed Pods Frameworks */ = { 252 | isa = PBXShellScriptBuildPhase; 253 | buildActionMask = 2147483647; 254 | files = ( 255 | ); 256 | inputPaths = ( 257 | ); 258 | name = "[CP] Embed Pods Frameworks"; 259 | outputPaths = ( 260 | ); 261 | runOnlyForDeploymentPostprocessing = 0; 262 | shellPath = /bin/sh; 263 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ExampleForConcourse/Pods-ExampleForConcourse-frameworks.sh\"\n"; 264 | showEnvVarsInLog = 0; 265 | }; 266 | 4F946DDE73E02679D1937F5D /* [CP] Check Pods Manifest.lock */ = { 267 | isa = PBXShellScriptBuildPhase; 268 | buildActionMask = 2147483647; 269 | files = ( 270 | ); 271 | inputPaths = ( 272 | ); 273 | name = "[CP] Check Pods Manifest.lock"; 274 | outputPaths = ( 275 | ); 276 | runOnlyForDeploymentPostprocessing = 0; 277 | shellPath = /bin/sh; 278 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 279 | showEnvVarsInLog = 0; 280 | }; 281 | 6436CAB1AFF646B2896BE04D /* [CP] Copy Pods Resources */ = { 282 | isa = PBXShellScriptBuildPhase; 283 | buildActionMask = 2147483647; 284 | files = ( 285 | ); 286 | inputPaths = ( 287 | ); 288 | name = "[CP] Copy Pods Resources"; 289 | outputPaths = ( 290 | ); 291 | runOnlyForDeploymentPostprocessing = 0; 292 | shellPath = /bin/sh; 293 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ExampleForConcourseTests/Pods-ExampleForConcourseTests-resources.sh\"\n"; 294 | showEnvVarsInLog = 0; 295 | }; 296 | 7474475C4AE617302D08EED7 /* [CP] Check Pods Manifest.lock */ = { 297 | isa = PBXShellScriptBuildPhase; 298 | buildActionMask = 2147483647; 299 | files = ( 300 | ); 301 | inputPaths = ( 302 | ); 303 | name = "[CP] Check Pods Manifest.lock"; 304 | outputPaths = ( 305 | ); 306 | runOnlyForDeploymentPostprocessing = 0; 307 | shellPath = /bin/sh; 308 | shellScript = "diff \"${PODS_ROOT}/../Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n"; 309 | showEnvVarsInLog = 0; 310 | }; 311 | 7CEF08E5C02CFA7375C3DF3C /* [CP] Copy Pods Resources */ = { 312 | isa = PBXShellScriptBuildPhase; 313 | buildActionMask = 2147483647; 314 | files = ( 315 | ); 316 | inputPaths = ( 317 | ); 318 | name = "[CP] Copy Pods Resources"; 319 | outputPaths = ( 320 | ); 321 | runOnlyForDeploymentPostprocessing = 0; 322 | shellPath = /bin/sh; 323 | shellScript = "\"${SRCROOT}/Pods/Target Support Files/Pods-ExampleForConcourse/Pods-ExampleForConcourse-resources.sh\"\n"; 324 | showEnvVarsInLog = 0; 325 | }; 326 | /* End PBXShellScriptBuildPhase section */ 327 | 328 | /* Begin PBXSourcesBuildPhase section */ 329 | AA02E6181E6852F200749A5F /* Sources */ = { 330 | isa = PBXSourcesBuildPhase; 331 | buildActionMask = 2147483647; 332 | files = ( 333 | AA02E6221E6852F300749A5F /* ViewController.swift in Sources */, 334 | AA02E6201E6852F300749A5F /* AppDelegate.swift in Sources */, 335 | ); 336 | runOnlyForDeploymentPostprocessing = 0; 337 | }; 338 | AA02E62C1E6852F300749A5F /* Sources */ = { 339 | isa = PBXSourcesBuildPhase; 340 | buildActionMask = 2147483647; 341 | files = ( 342 | AA02E6351E6852F300749A5F /* ExampleForConcourseTests.swift in Sources */, 343 | ); 344 | runOnlyForDeploymentPostprocessing = 0; 345 | }; 346 | /* End PBXSourcesBuildPhase section */ 347 | 348 | /* Begin PBXTargetDependency section */ 349 | AA02E6321E6852F300749A5F /* PBXTargetDependency */ = { 350 | isa = PBXTargetDependency; 351 | target = AA02E61B1E6852F200749A5F /* ExampleForConcourse */; 352 | targetProxy = AA02E6311E6852F300749A5F /* PBXContainerItemProxy */; 353 | }; 354 | /* End PBXTargetDependency section */ 355 | 356 | /* Begin PBXVariantGroup section */ 357 | AA02E6231E6852F300749A5F /* Main.storyboard */ = { 358 | isa = PBXVariantGroup; 359 | children = ( 360 | AA02E6241E6852F300749A5F /* Base */, 361 | ); 362 | name = Main.storyboard; 363 | sourceTree = ""; 364 | }; 365 | AA02E6281E6852F300749A5F /* LaunchScreen.storyboard */ = { 366 | isa = PBXVariantGroup; 367 | children = ( 368 | AA02E6291E6852F300749A5F /* Base */, 369 | ); 370 | name = LaunchScreen.storyboard; 371 | sourceTree = ""; 372 | }; 373 | /* End PBXVariantGroup section */ 374 | 375 | /* Begin XCBuildConfiguration section */ 376 | AA02E6371E6852F300749A5F /* Debug */ = { 377 | isa = XCBuildConfiguration; 378 | buildSettings = { 379 | ALWAYS_SEARCH_USER_PATHS = NO; 380 | CLANG_ANALYZER_NONNULL = YES; 381 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 382 | CLANG_CXX_LIBRARY = "libc++"; 383 | CLANG_ENABLE_MODULES = YES; 384 | CLANG_ENABLE_OBJC_ARC = YES; 385 | CLANG_WARN_BOOL_CONVERSION = YES; 386 | CLANG_WARN_CONSTANT_CONVERSION = YES; 387 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 388 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 389 | CLANG_WARN_EMPTY_BODY = YES; 390 | CLANG_WARN_ENUM_CONVERSION = YES; 391 | CLANG_WARN_INFINITE_RECURSION = YES; 392 | CLANG_WARN_INT_CONVERSION = YES; 393 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 394 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 395 | CLANG_WARN_UNREACHABLE_CODE = YES; 396 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 397 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 398 | COPY_PHASE_STRIP = NO; 399 | DEBUG_INFORMATION_FORMAT = dwarf; 400 | ENABLE_STRICT_OBJC_MSGSEND = YES; 401 | ENABLE_TESTABILITY = YES; 402 | GCC_C_LANGUAGE_STANDARD = gnu99; 403 | GCC_DYNAMIC_NO_PIC = NO; 404 | GCC_NO_COMMON_BLOCKS = YES; 405 | GCC_OPTIMIZATION_LEVEL = 0; 406 | GCC_PREPROCESSOR_DEFINITIONS = ( 407 | "DEBUG=1", 408 | "$(inherited)", 409 | ); 410 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 411 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 412 | GCC_WARN_UNDECLARED_SELECTOR = YES; 413 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 414 | GCC_WARN_UNUSED_FUNCTION = YES; 415 | GCC_WARN_UNUSED_VARIABLE = YES; 416 | IPHONEOS_DEPLOYMENT_TARGET = 10.2; 417 | MTL_ENABLE_DEBUG_INFO = YES; 418 | ONLY_ACTIVE_ARCH = YES; 419 | SDKROOT = iphoneos; 420 | SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG; 421 | SWIFT_OPTIMIZATION_LEVEL = "-Onone"; 422 | TARGETED_DEVICE_FAMILY = "1,2"; 423 | }; 424 | name = Debug; 425 | }; 426 | AA02E6381E6852F300749A5F /* Release */ = { 427 | isa = XCBuildConfiguration; 428 | buildSettings = { 429 | ALWAYS_SEARCH_USER_PATHS = NO; 430 | CLANG_ANALYZER_NONNULL = YES; 431 | CLANG_CXX_LANGUAGE_STANDARD = "gnu++0x"; 432 | CLANG_CXX_LIBRARY = "libc++"; 433 | CLANG_ENABLE_MODULES = YES; 434 | CLANG_ENABLE_OBJC_ARC = YES; 435 | CLANG_WARN_BOOL_CONVERSION = YES; 436 | CLANG_WARN_CONSTANT_CONVERSION = YES; 437 | CLANG_WARN_DIRECT_OBJC_ISA_USAGE = YES_ERROR; 438 | CLANG_WARN_DOCUMENTATION_COMMENTS = YES; 439 | CLANG_WARN_EMPTY_BODY = YES; 440 | CLANG_WARN_ENUM_CONVERSION = YES; 441 | CLANG_WARN_INFINITE_RECURSION = YES; 442 | CLANG_WARN_INT_CONVERSION = YES; 443 | CLANG_WARN_OBJC_ROOT_CLASS = YES_ERROR; 444 | CLANG_WARN_SUSPICIOUS_MOVE = YES; 445 | CLANG_WARN_UNREACHABLE_CODE = YES; 446 | CLANG_WARN__DUPLICATE_METHOD_MATCH = YES; 447 | "CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Developer"; 448 | COPY_PHASE_STRIP = NO; 449 | DEBUG_INFORMATION_FORMAT = "dwarf-with-dsym"; 450 | ENABLE_NS_ASSERTIONS = NO; 451 | ENABLE_STRICT_OBJC_MSGSEND = YES; 452 | GCC_C_LANGUAGE_STANDARD = gnu99; 453 | GCC_NO_COMMON_BLOCKS = YES; 454 | GCC_WARN_64_TO_32_BIT_CONVERSION = YES; 455 | GCC_WARN_ABOUT_RETURN_TYPE = YES_ERROR; 456 | GCC_WARN_UNDECLARED_SELECTOR = YES; 457 | GCC_WARN_UNINITIALIZED_AUTOS = YES_AGGRESSIVE; 458 | GCC_WARN_UNUSED_FUNCTION = YES; 459 | GCC_WARN_UNUSED_VARIABLE = YES; 460 | IPHONEOS_DEPLOYMENT_TARGET = 10.2; 461 | MTL_ENABLE_DEBUG_INFO = NO; 462 | SDKROOT = iphoneos; 463 | SWIFT_OPTIMIZATION_LEVEL = "-Owholemodule"; 464 | TARGETED_DEVICE_FAMILY = "1,2"; 465 | VALIDATE_PRODUCT = YES; 466 | }; 467 | name = Release; 468 | }; 469 | AA02E63A1E6852F300749A5F /* Debug */ = { 470 | isa = XCBuildConfiguration; 471 | baseConfigurationReference = A34DA07DFF6FC1F9EDB01C2E /* Pods-ExampleForConcourse.debug.xcconfig */; 472 | buildSettings = { 473 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 474 | INFOPLIST_FILE = ExampleForConcourse/Info.plist; 475 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 476 | PRODUCT_BUNDLE_IDENTIFIER = net.tenten0213.ExampleForConcourse; 477 | PRODUCT_NAME = "$(TARGET_NAME)"; 478 | SWIFT_VERSION = 3.0; 479 | }; 480 | name = Debug; 481 | }; 482 | AA02E63B1E6852F300749A5F /* Release */ = { 483 | isa = XCBuildConfiguration; 484 | baseConfigurationReference = 00CBA898FC03C919466D84F9 /* Pods-ExampleForConcourse.release.xcconfig */; 485 | buildSettings = { 486 | ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon; 487 | INFOPLIST_FILE = ExampleForConcourse/Info.plist; 488 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks"; 489 | PRODUCT_BUNDLE_IDENTIFIER = net.tenten0213.ExampleForConcourse; 490 | PRODUCT_NAME = "$(TARGET_NAME)"; 491 | SWIFT_VERSION = 3.0; 492 | }; 493 | name = Release; 494 | }; 495 | AA02E63D1E6852F300749A5F /* Debug */ = { 496 | isa = XCBuildConfiguration; 497 | baseConfigurationReference = 6979F2E9E4C61E641F9EE8D9 /* Pods-ExampleForConcourseTests.debug.xcconfig */; 498 | buildSettings = { 499 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 500 | BUNDLE_LOADER = "$(TEST_HOST)"; 501 | INFOPLIST_FILE = ExampleForConcourseTests/Info.plist; 502 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 503 | PRODUCT_BUNDLE_IDENTIFIER = net.tenten0213.ExampleForConcourseTests; 504 | PRODUCT_NAME = "$(TARGET_NAME)"; 505 | SWIFT_VERSION = 3.0; 506 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ExampleForConcourse.app/ExampleForConcourse"; 507 | }; 508 | name = Debug; 509 | }; 510 | AA02E63E1E6852F300749A5F /* Release */ = { 511 | isa = XCBuildConfiguration; 512 | baseConfigurationReference = 0C5C49D6AD4EB771EB9BA59E /* Pods-ExampleForConcourseTests.release.xcconfig */; 513 | buildSettings = { 514 | ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES; 515 | BUNDLE_LOADER = "$(TEST_HOST)"; 516 | INFOPLIST_FILE = ExampleForConcourseTests/Info.plist; 517 | LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks @loader_path/Frameworks"; 518 | PRODUCT_BUNDLE_IDENTIFIER = net.tenten0213.ExampleForConcourseTests; 519 | PRODUCT_NAME = "$(TARGET_NAME)"; 520 | SWIFT_VERSION = 3.0; 521 | TEST_HOST = "$(BUILT_PRODUCTS_DIR)/ExampleForConcourse.app/ExampleForConcourse"; 522 | }; 523 | name = Release; 524 | }; 525 | /* End XCBuildConfiguration section */ 526 | 527 | /* Begin XCConfigurationList section */ 528 | AA02E6171E6852F200749A5F /* Build configuration list for PBXProject "ExampleForConcourse" */ = { 529 | isa = XCConfigurationList; 530 | buildConfigurations = ( 531 | AA02E6371E6852F300749A5F /* Debug */, 532 | AA02E6381E6852F300749A5F /* Release */, 533 | ); 534 | defaultConfigurationIsVisible = 0; 535 | defaultConfigurationName = Release; 536 | }; 537 | AA02E6391E6852F300749A5F /* Build configuration list for PBXNativeTarget "ExampleForConcourse" */ = { 538 | isa = XCConfigurationList; 539 | buildConfigurations = ( 540 | AA02E63A1E6852F300749A5F /* Debug */, 541 | AA02E63B1E6852F300749A5F /* Release */, 542 | ); 543 | defaultConfigurationIsVisible = 0; 544 | }; 545 | AA02E63C1E6852F300749A5F /* Build configuration list for PBXNativeTarget "ExampleForConcourseTests" */ = { 546 | isa = XCConfigurationList; 547 | buildConfigurations = ( 548 | AA02E63D1E6852F300749A5F /* Debug */, 549 | AA02E63E1E6852F300749A5F /* Release */, 550 | ); 551 | defaultConfigurationIsVisible = 0; 552 | }; 553 | /* End XCConfigurationList section */ 554 | }; 555 | rootObject = AA02E6141E6852F200749A5F /* Project object */; 556 | } 557 | --------------------------------------------------------------------------------