├── .gitignore ├── .gitmodules ├── .swiftlint.yml ├── Images.xcassets ├── Contents.json ├── alignment │ ├── Contents.json │ ├── a_any.imageset │ │ ├── Contents.json │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ └── a_no.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png ├── devices │ ├── Contents.json │ ├── d_ipad.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ └── blue@2x.png │ ├── d_iphone.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png │ ├── d_iphone4.imageset │ │ ├── Contents.json │ │ ├── green@2x-1.png │ │ └── green@2x.png │ ├── d_mac.imageset │ │ ├── Contents.json │ │ ├── image.png │ │ └── image@2x.png │ ├── d_tv.imageset │ │ ├── Contents.json │ │ └── cyan.png │ ├── d_universal.imageset │ │ ├── Contents.json │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ ├── d_watch.imageset │ │ ├── Contents.json │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ └── cyan@3x.png │ └── mix │ │ ├── Contents.json │ │ ├── d_iphone_ipad_mac.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x-1.png │ │ ├── green@3x.png │ │ ├── image.png │ │ └── image@2x.png │ │ └── d_iphone_ipad_mac_watch.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x-1.png │ │ ├── green@3x.png │ │ ├── image.png │ │ └── image@2x.png ├── graphics │ ├── Contents.json │ ├── g_1v2.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ ├── g_2v2.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ └── cyan@3x.png │ ├── g_3v1.imageset │ │ ├── Contents.json │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png │ ├── g_mix.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ └── g_none.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png ├── memory │ ├── Contents.json │ ├── m_1gb.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ ├── m_2gb.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ └── cyan@3x.png │ ├── m_4gb.imageset │ │ ├── Contents.json │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png │ └── m_no.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png ├── pdf │ ├── Contents.json │ ├── v_device.imageset │ │ ├── Contents.json │ │ ├── facebook-1-1-1.pdf │ │ ├── facebook-1-1.pdf │ │ ├── facebook-1.pdf │ │ ├── facebook-2.pdf │ │ ├── facebook-3.pdf │ │ ├── facebook-4.pdf │ │ ├── facebook-5.pdf │ │ ├── facebook-6.pdf │ │ └── facebook.pdf │ ├── v_overrides.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── facebook-1-1-1.pdf │ │ ├── facebook-1-1.pdf │ │ ├── facebook-1.pdf │ │ ├── facebook-2.pdf │ │ ├── facebook-3.pdf │ │ ├── facebook-4.pdf │ │ ├── facebook-5.pdf │ │ ├── facebook-6.pdf │ │ ├── facebook.pdf │ │ ├── green-1.png │ │ ├── green-2.png │ │ ├── green.png │ │ ├── green@2x-1.png │ │ ├── green@2x-2.png │ │ ├── green@2x-3.png │ │ ├── green@2x.png │ │ ├── green@3x.png │ │ └── image.png │ └── v_universal.imageset │ │ ├── Contents.json │ │ └── facebook.pdf ├── render │ ├── Contents.json │ ├── r_default.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png │ ├── r_original.imageset │ │ ├── Contents.json │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ └── r_template.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ └── blue@3x.png ├── size class │ ├── Contents.json │ ├── sc_h_a&r.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ ├── sc_w_a&c.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ └── sc_wh_a&r&c.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ ├── blue@3x.png │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── green.png │ │ ├── green@2x.png │ │ ├── green@3x.png │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png └── slices │ ├── Contents.json │ ├── s_horizontal.imageset │ ├── Contents.json │ ├── image.png │ ├── image@2x.png │ └── image@3x.png │ ├── s_horizontal_vertical.imageset │ ├── Contents.json │ ├── cyan.png │ ├── cyan@2x.png │ └── cyan@3x.png │ ├── s_none.imageset │ ├── Contents.json │ ├── green.png │ ├── green@2x.png │ └── green@3x.png │ └── s_vertical.imageset │ ├── Contents.json │ ├── blue.png │ ├── blue@2x.png │ └── blue@3x.png ├── LICENSE ├── Makefile ├── README.md ├── Templates.xcassets ├── Contents.json ├── colors │ ├── blue.imageset │ │ ├── Contents.json │ │ ├── blue.png │ │ ├── blue@2x.png │ │ └── blue@3x.png │ ├── blue_jpeg.imageset │ │ ├── Contents.json │ │ ├── blue.jpg │ │ ├── blue@2x.jpg │ │ └── blue@3x.jpg │ ├── cyan.imageset │ │ ├── Contents.json │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ └── cyan@3x.png │ ├── cyan_jpeg.imageset │ │ ├── Contents.json │ │ ├── cyan.jpg │ │ ├── cyan@2x.jpg │ │ └── cyan@3x.jpg │ ├── green.imageset │ │ ├── Contents.json │ │ ├── green.png │ │ ├── green@2x.png │ │ └── green@3x.png │ ├── green_jpeg.imageset │ │ ├── Contents.json │ │ ├── green.jpg │ │ ├── green@2x.jpg │ │ └── green@3x.jpg │ ├── red.imageset │ │ ├── Contents.json │ │ ├── image.png │ │ ├── image@2x.png │ │ └── image@3x.png │ └── red_jpeg.imageset │ │ ├── Contents.json │ │ ├── image.jpg │ │ ├── image@2x.jpg │ │ └── image@3x.jpg ├── old │ ├── Contents.json │ ├── v_device.imageset │ │ ├── Contents.json │ │ ├── facebook-1-1-1.pdf │ │ ├── facebook-1-1.pdf │ │ ├── facebook-1.pdf │ │ └── facebook.pdf │ ├── v_device2.imageset │ │ ├── Contents.json │ │ ├── cyan.png │ │ ├── cyan@2x.png │ │ ├── cyan@3x.png │ │ ├── facebook-1-1-1.pdf │ │ ├── facebook-1-1.pdf │ │ ├── facebook-1.pdf │ │ ├── facebook.pdf │ │ ├── green-1.png │ │ ├── green-2.png │ │ ├── green.png │ │ ├── green@2x-1.png │ │ ├── green@2x-2.png │ │ ├── green@2x-3.png │ │ ├── green@2x.png │ │ └── green@3x.png │ └── v_universal.imageset │ │ ├── Contents.json │ │ └── facebook.pdf └── vectors │ ├── Contents.json │ └── v_universal.imageset │ ├── Contents.json │ └── facebook.pdf ├── TestApps ├── MacTestApp │ ├── AppDelegate.swift │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── iOSTestApp │ ├── AppDelegate.swift │ ├── Base.lproj │ │ ├── LaunchScreen.xib │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── tvTestApp │ ├── AppDelegate.swift │ ├── Assets.xcassets │ │ ├── App Icon & Top Shelf Image.brandassets │ │ │ ├── App Icon - Large.imagestack │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ ├── App Icon - Small.imagestack │ │ │ │ ├── Back.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ ├── Contents.json │ │ │ │ ├── Front.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ │ └── Middle.imagestacklayer │ │ │ │ │ ├── Content.imageset │ │ │ │ │ └── Contents.json │ │ │ │ │ └── Contents.json │ │ │ ├── Contents.json │ │ │ └── Top Shelf Image.imageset │ │ │ │ └── Contents.json │ │ ├── Contents.json │ │ └── LaunchImage.launchimage │ │ │ └── Contents.json │ ├── Base.lproj │ │ └── Main.storyboard │ ├── Info.plist │ └── ViewController.swift ├── watchTestApp Extension │ ├── Assets.xcassets │ │ └── README__ignoredByTemplate__ │ ├── ExtensionDelegate.swift │ ├── Info.plist │ └── InterfaceController.swift └── watchTestApp │ ├── Assets.xcassets │ └── AppIcon.appiconset │ │ └── Contents.json │ ├── Base.lproj │ └── Interface.storyboard │ └── Info.plist ├── acextract.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── acextract.xcscheme │ ├── iOSTestApp.xcscheme │ ├── macTestApp.xcscheme │ ├── tvTestApp.xcscheme │ ├── watchTestApp.xcscheme │ └── watchTestApp_notification.xcscheme ├── acextract ├── AssetsCatalog.swift ├── CoreUI.h ├── CoreUI_Swift.swift ├── ImageSet.swift ├── Operation.swift ├── PrintInformationOperation.swift ├── acextract-Bridging-Header.h └── main.swift └── acextractTests ├── AlignmentTests.swift ├── Assets.swift ├── AssetsCatalogTests.swift ├── CorrectnessTests.swift ├── DeviceTests.swift ├── GraphicalClassTests.swift ├── Info.plist ├── MemoryClassTests.swift ├── SizeClassTests.swift ├── SlicesTests.swift ├── TemplateRenderingTests.swift ├── acextractTests-Bridging-Header.h └── data ├── assets.car ├── assets_ios.car ├── assets_ipad.car ├── assets_iphone.car ├── assets_mac.car ├── assets_tv.car ├── assets_watch.car └── fake_assets /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | ## Build generated 6 | build/ 7 | DerivedData/ 8 | 9 | ## Various settings 10 | *.pbxuser 11 | !default.pbxuser 12 | *.mode1v3 13 | !default.mode1v3 14 | *.mode2v3 15 | !default.mode2v3 16 | *.perspectivev3 17 | !default.perspectivev3 18 | xcuserdata/ 19 | 20 | ## Other 21 | *.moved-aside 22 | *.xcuserstate 23 | 24 | ## Obj-C/Swift specific 25 | *.hmap 26 | *.ipa 27 | *.dSYM.zip 28 | *.dSYM 29 | 30 | ## Playgrounds 31 | timeline.xctimeline 32 | playground.xcworkspace 33 | 34 | # Swift Package Manager 35 | # 36 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 37 | # Packages/ 38 | .build/ 39 | 40 | # CocoaPods 41 | # 42 | # We recommend against adding the Pods directory to your .gitignore. However 43 | # you should judge for yourself, the pros and cons are mentioned at: 44 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 45 | # 46 | # Pods/ 47 | 48 | # Carthage 49 | # 50 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 51 | # Carthage/Checkouts 52 | 53 | Carthage/Build 54 | 55 | # fastlane 56 | # 57 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 58 | # screenshots whenever they are needed. 59 | # For more information about the recommended setup visit: 60 | # https://github.com/fastlane/fastlane/blob/master/fastlane/docs/Gitignore.md 61 | 62 | fastlane/report.xml 63 | fastlane/Preview.html 64 | fastlane/screenshots 65 | fastlane/test_output 66 | /output 67 | 68 | *.xcarchive 69 | acextract.bin 70 | acextract.zip 71 | -------------------------------------------------------------------------------- /.gitmodules: -------------------------------------------------------------------------------- 1 | [submodule "CommandLine"] 2 | path = CommandLine 3 | url = https://github.com/iHTCboy/CommandLine 4 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | disabled_rules: # rule identifiers to exclude from running 2 | - line_length 3 | - function_body_length 4 | - todo 5 | # Test force unwrepping ocasionally 6 | #opt_in_rules: 7 | # - force_unwrapping 8 | excluded: # paths to ignore during linting. Takes precedence over `included`. 9 | - CommandLine 10 | - TestApps 11 | type_name: 12 | excluded: 13 | - OK 14 | variable_name: 15 | max_length: 16 | warning: 80 17 | error: 100 18 | excluded: # excluded via string array 19 | - id 20 | - URL 21 | type_body_length: 22 | warning: 300 23 | error: 500 24 | file_length: 25 | warning: 600 26 | error: 800 27 | -------------------------------------------------------------------------------- /Images.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/alignment/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_any.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "alignment-insets" : { 5 | "top" : 5, 6 | "left" : 10, 7 | "bottom" : 15, 8 | "right" : 20 9 | }, 10 | "idiom" : "universal", 11 | "filename" : "image.png", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "alignment-insets" : { 16 | "top" : 6, 17 | "left" : 12, 18 | "bottom" : 18, 19 | "right" : 24 20 | }, 21 | "idiom" : "universal", 22 | "filename" : "image@2x.png", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "alignment-insets" : { 27 | "top" : 12, 28 | "left" : 24, 29 | "bottom" : 36, 30 | "right" : 48 31 | }, 32 | "idiom" : "universal", 33 | "filename" : "image@3x.png", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_any.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_any.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_any.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_any.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_any.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_any.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_no.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_no.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_no.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_no.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_no.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/alignment/a_no.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/alignment/a_no.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_ipad.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "ipad", 5 | "filename" : "blue.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "ipad", 10 | "filename" : "blue@2x.png", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_ipad.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_ipad.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_ipad.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_ipad.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_iphone.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_iphone.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_iphone.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone4.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "iphone", 9 | "subtype" : "retina4", 10 | "scale" : "1x" 11 | }, 12 | { 13 | "idiom" : "iphone", 14 | "filename" : "green@2x-1.png", 15 | "scale" : "2x" 16 | }, 17 | { 18 | "idiom" : "iphone", 19 | "filename" : "green@2x.png", 20 | "subtype" : "retina4", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "idiom" : "iphone", 25 | "scale" : "3x" 26 | }, 27 | { 28 | "idiom" : "iphone", 29 | "subtype" : "retina4", 30 | "scale" : "3x" 31 | } 32 | ], 33 | "info" : { 34 | "version" : 1, 35 | "author" : "xcode" 36 | } 37 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone4.imageset/green@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_iphone4.imageset/green@2x-1.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_iphone4.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_iphone4.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_mac.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "mac", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "mac", 10 | "filename" : "image@2x.png", 11 | "scale" : "2x" 12 | } 13 | ], 14 | "info" : { 15 | "version" : 1, 16 | "author" : "xcode" 17 | } 18 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_mac.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_mac.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_mac.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_mac.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_tv.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "filename" : "cyan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "tv", 10 | "scale" : "2x" 11 | } 12 | ], 13 | "info" : { 14 | "version" : 1, 15 | "author" : "xcode" 16 | } 17 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_tv.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_tv.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_universal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "image@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "image@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_universal.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_universal.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_universal.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_universal.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_universal.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_universal.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_watch.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "watch", 5 | "filename" : "cyan.png", 6 | "scale" : "2x" 7 | }, 8 | { 9 | "idiom" : "watch", 10 | "filename" : "cyan@2x.png", 11 | "screen-width" : "<=145", 12 | "scale" : "2x" 13 | }, 14 | { 15 | "idiom" : "watch", 16 | "scale" : "2x", 17 | "screen-width" : ">161" 18 | }, 19 | { 20 | "idiom" : "watch", 21 | "filename" : "cyan@3x.png", 22 | "screen-width" : ">145", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "watch", 27 | "scale" : "2x", 28 | "screen-width" : ">183" 29 | } 30 | ], 31 | "info" : { 32 | "version" : 1, 33 | "author" : "xcode" 34 | } 35 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/d_watch.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_watch.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_watch.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_watch.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/d_watch.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/d_watch.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "subtype" : "retina4", 11 | "scale" : "1x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "filename" : "green@2x.png", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "filename" : "green@3x-1.png", 21 | "subtype" : "retina4", 22 | "scale" : "2x" 23 | }, 24 | { 25 | "idiom" : "iphone", 26 | "filename" : "green@3x.png", 27 | "scale" : "3x" 28 | }, 29 | { 30 | "idiom" : "iphone", 31 | "subtype" : "retina4", 32 | "scale" : "3x" 33 | }, 34 | { 35 | "idiom" : "ipad", 36 | "filename" : "blue.png", 37 | "scale" : "1x" 38 | }, 39 | { 40 | "idiom" : "ipad", 41 | "filename" : "blue@2x.png", 42 | "scale" : "2x" 43 | }, 44 | { 45 | "idiom" : "mac", 46 | "filename" : "image.png", 47 | "scale" : "1x" 48 | }, 49 | { 50 | "idiom" : "mac", 51 | "filename" : "image@2x.png", 52 | "scale" : "2x" 53 | } 54 | ], 55 | "info" : { 56 | "version" : 1, 57 | "author" : "xcode" 58 | } 59 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@3x-1.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "iphone", 10 | "subtype" : "retina4", 11 | "scale" : "1x" 12 | }, 13 | { 14 | "idiom" : "iphone", 15 | "filename" : "green@2x.png", 16 | "scale" : "2x" 17 | }, 18 | { 19 | "idiom" : "iphone", 20 | "filename" : "green@3x-1.png", 21 | "subtype" : "retina4", 22 | "scale" : "2x" 23 | }, 24 | { 25 | "idiom" : "iphone", 26 | "filename" : "green@3x.png", 27 | "scale" : "3x" 28 | }, 29 | { 30 | "idiom" : "iphone", 31 | "subtype" : "retina4", 32 | "scale" : "3x" 33 | }, 34 | { 35 | "idiom" : "ipad", 36 | "filename" : "blue.png", 37 | "scale" : "1x" 38 | }, 39 | { 40 | "idiom" : "ipad", 41 | "filename" : "blue@2x.png", 42 | "scale" : "2x" 43 | }, 44 | { 45 | "idiom" : "watch", 46 | "filename" : "cyan.png", 47 | "scale" : "2x" 48 | }, 49 | { 50 | "idiom" : "watch", 51 | "filename" : "cyan@2x.png", 52 | "screen-width" : "<=145", 53 | "scale" : "2x" 54 | }, 55 | { 56 | "idiom" : "watch", 57 | "scale" : "2x", 58 | "screen-width" : ">161" 59 | }, 60 | { 61 | "idiom" : "watch", 62 | "filename" : "cyan@3x.png", 63 | "screen-width" : ">145", 64 | "scale" : "2x" 65 | }, 66 | { 67 | "idiom" : "watch", 68 | "scale" : "2x", 69 | "screen-width" : ">183" 70 | }, 71 | { 72 | "idiom" : "mac", 73 | "filename" : "image.png", 74 | "scale" : "1x" 75 | }, 76 | { 77 | "idiom" : "mac", 78 | "filename" : "image@2x.png", 79 | "scale" : "2x" 80 | } 81 | ], 82 | "info" : { 83 | "version" : 1, 84 | "author" : "xcode" 85 | } 86 | } -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@3x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@3x-1.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/devices/mix/d_iphone_ipad_mac_watch.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blue.png", 11 | "graphics-feature-set" : "metal1v2", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "image@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "blue@2x.png", 22 | "graphics-feature-set" : "metal1v2", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "image@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "blue@3x.png", 33 | "graphics-feature-set" : "metal1v2", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_1v2.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_1v2.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blue.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "cyan.png", 11 | "graphics-feature-set" : "metal2v2", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "blue@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "cyan@2x.png", 22 | "graphics-feature-set" : "metal2v2", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "blue@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "cyan@3x.png", 33 | "graphics-feature-set" : "metal2v2", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_2v2.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_2v2.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "cyan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green.png", 11 | "graphics-feature-set" : "metal3v1", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "cyan@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "green@2x.png", 22 | "graphics-feature-set" : "metal3v1", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "cyan@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "green@3x.png", 33 | "graphics-feature-set" : "metal3v1", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_3v1.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_3v1.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "image.png", 11 | "graphics-feature-set" : "metal1v2", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "blue.png", 17 | "graphics-feature-set" : "metal2v2", 18 | "scale" : "1x" 19 | }, 20 | { 21 | "idiom" : "universal", 22 | "filename" : "cyan.png", 23 | "graphics-feature-set" : "metal3v1", 24 | "scale" : "1x" 25 | }, 26 | { 27 | "idiom" : "universal", 28 | "filename" : "green@2x.png", 29 | "scale" : "2x" 30 | }, 31 | { 32 | "idiom" : "universal", 33 | "filename" : "image@2x.png", 34 | "graphics-feature-set" : "metal1v2", 35 | "scale" : "2x" 36 | }, 37 | { 38 | "idiom" : "universal", 39 | "filename" : "blue@2x.png", 40 | "graphics-feature-set" : "metal2v2", 41 | "scale" : "2x" 42 | }, 43 | { 44 | "idiom" : "universal", 45 | "filename" : "cyan@2x.png", 46 | "graphics-feature-set" : "metal3v1", 47 | "scale" : "2x" 48 | }, 49 | { 50 | "idiom" : "universal", 51 | "filename" : "green@3x.png", 52 | "scale" : "3x" 53 | }, 54 | { 55 | "idiom" : "universal", 56 | "filename" : "image@3x.png", 57 | "graphics-feature-set" : "metal1v2", 58 | "scale" : "3x" 59 | }, 60 | { 61 | "idiom" : "universal", 62 | "filename" : "blue@3x.png", 63 | "graphics-feature-set" : "metal2v2", 64 | "scale" : "3x" 65 | }, 66 | { 67 | "idiom" : "universal", 68 | "filename" : "cyan@3x.png", 69 | "graphics-feature-set" : "metal3v1", 70 | "scale" : "3x" 71 | } 72 | ], 73 | "info" : { 74 | "version" : 1, 75 | "author" : "xcode" 76 | } 77 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_mix.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_mix.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_none.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_none.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_none.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_none.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_none.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/graphics/g_none.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/graphics/g_none.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blue.png", 11 | "memory" : "1GB", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "image@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "blue@2x.png", 22 | "memory" : "1GB", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "image@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "blue@3x.png", 33 | "memory" : "1GB", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_1gb.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_1gb.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blue.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "cyan.png", 11 | "memory" : "2GB", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "blue@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "cyan@2x.png", 22 | "memory" : "2GB", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "blue@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "cyan@3x.png", 33 | "memory" : "2GB", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_2gb.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_2gb.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "cyan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green.png", 11 | "memory" : "4GB", 12 | "scale" : "1x" 13 | }, 14 | { 15 | "idiom" : "universal", 16 | "filename" : "cyan@2x.png", 17 | "scale" : "2x" 18 | }, 19 | { 20 | "idiom" : "universal", 21 | "filename" : "green@2x.png", 22 | "memory" : "4GB", 23 | "scale" : "2x" 24 | }, 25 | { 26 | "idiom" : "universal", 27 | "filename" : "cyan@3x.png", 28 | "scale" : "3x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "green@3x.png", 33 | "memory" : "4GB", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_4gb.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_4gb.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_no.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/memory/m_no.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_no.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_no.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_no.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/memory/m_no.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/memory/m_no.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "facebook-2.pdf" 6 | }, 7 | { 8 | "idiom" : "iphone", 9 | "filename" : "facebook.pdf" 10 | }, 11 | { 12 | "idiom" : "iphone", 13 | "filename" : "facebook-1.pdf", 14 | "subtype" : "retina4" 15 | }, 16 | { 17 | "idiom" : "ipad", 18 | "filename" : "facebook-1-1.pdf" 19 | }, 20 | { 21 | "idiom" : "watch", 22 | "filename" : "facebook-3.pdf" 23 | }, 24 | { 25 | "idiom" : "watch", 26 | "filename" : "facebook-4.pdf", 27 | "screen-width" : "<=145" 28 | }, 29 | { 30 | "idiom" : "watch", 31 | "screen-width" : ">161" 32 | }, 33 | { 34 | "idiom" : "watch", 35 | "filename" : "facebook-5.pdf", 36 | "screen-width" : ">145" 37 | }, 38 | { 39 | "idiom" : "watch", 40 | "screen-width" : ">183" 41 | }, 42 | { 43 | "idiom" : "tv", 44 | "filename" : "facebook-6.pdf" 45 | }, 46 | { 47 | "idiom" : "mac", 48 | "filename" : "facebook-1-1-1.pdf" 49 | } 50 | ], 51 | "info" : { 52 | "version" : 1, 53 | "author" : "xcode" 54 | } 55 | } -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-1-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-1-1-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-1-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-2.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-3.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-4.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-5.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook-6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook-6.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_device.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_device.imageset/facebook.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "facebook-2.pdf" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "blue.png", 10 | "scale" : "1x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "blue@2x.png", 15 | "scale" : "2x" 16 | }, 17 | { 18 | "idiom" : "universal", 19 | "filename" : "blue@3x.png", 20 | "scale" : "3x" 21 | }, 22 | { 23 | "idiom" : "iphone", 24 | "filename" : "facebook.pdf" 25 | }, 26 | { 27 | "idiom" : "iphone", 28 | "filename" : "facebook-1.pdf", 29 | "subtype" : "retina4" 30 | }, 31 | { 32 | "idiom" : "iphone", 33 | "filename" : "green.png", 34 | "scale" : "1x" 35 | }, 36 | { 37 | "idiom" : "iphone", 38 | "subtype" : "retina4", 39 | "scale" : "1x" 40 | }, 41 | { 42 | "idiom" : "iphone", 43 | "filename" : "green@2x.png", 44 | "scale" : "2x" 45 | }, 46 | { 47 | "idiom" : "iphone", 48 | "filename" : "green@2x-1.png", 49 | "subtype" : "retina4", 50 | "scale" : "2x" 51 | }, 52 | { 53 | "idiom" : "iphone", 54 | "filename" : "green@3x.png", 55 | "scale" : "3x" 56 | }, 57 | { 58 | "idiom" : "iphone", 59 | "subtype" : "retina4", 60 | "scale" : "3x" 61 | }, 62 | { 63 | "idiom" : "ipad", 64 | "filename" : "facebook-1-1.pdf" 65 | }, 66 | { 67 | "idiom" : "ipad", 68 | "filename" : "green-1.png", 69 | "scale" : "1x" 70 | }, 71 | { 72 | "idiom" : "ipad", 73 | "filename" : "green@2x-2.png", 74 | "scale" : "2x" 75 | }, 76 | { 77 | "idiom" : "watch", 78 | "filename" : "facebook-3.pdf" 79 | }, 80 | { 81 | "idiom" : "watch", 82 | "filename" : "facebook-4.pdf", 83 | "screen-width" : "<=145" 84 | }, 85 | { 86 | "idiom" : "watch", 87 | "screen-width" : ">161" 88 | }, 89 | { 90 | "idiom" : "watch", 91 | "filename" : "facebook-5.pdf", 92 | "screen-width" : ">145" 93 | }, 94 | { 95 | "idiom" : "watch", 96 | "screen-width" : ">183" 97 | }, 98 | { 99 | "idiom" : "watch", 100 | "filename" : "cyan.png", 101 | "scale" : "2x" 102 | }, 103 | { 104 | "idiom" : "watch", 105 | "filename" : "cyan@2x.png", 106 | "screen-width" : "<=145", 107 | "scale" : "2x" 108 | }, 109 | { 110 | "idiom" : "watch", 111 | "scale" : "2x", 112 | "screen-width" : ">161" 113 | }, 114 | { 115 | "idiom" : "watch", 116 | "filename" : "cyan@3x.png", 117 | "screen-width" : ">145", 118 | "scale" : "2x" 119 | }, 120 | { 121 | "idiom" : "watch", 122 | "scale" : "2x", 123 | "screen-width" : ">183" 124 | }, 125 | { 126 | "idiom" : "tv", 127 | "filename" : "facebook-6.pdf" 128 | }, 129 | { 130 | "idiom" : "tv", 131 | "filename" : "image.png", 132 | "scale" : "1x" 133 | }, 134 | { 135 | "idiom" : "tv", 136 | "scale" : "2x" 137 | }, 138 | { 139 | "idiom" : "mac", 140 | "filename" : "facebook-1-1-1.pdf" 141 | }, 142 | { 143 | "idiom" : "mac", 144 | "filename" : "green-2.png", 145 | "scale" : "1x" 146 | }, 147 | { 148 | "idiom" : "mac", 149 | "filename" : "green@2x-3.png", 150 | "scale" : "2x" 151 | } 152 | ], 153 | "info" : { 154 | "version" : 1, 155 | "author" : "xcode" 156 | } 157 | } -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-1-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-1-1-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-1-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-1.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-2.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-2.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-3.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-3.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-4.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-4.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-5.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-5.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook-6.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook-6.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/facebook.pdf -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green-1.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green-2.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green@2x-1.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green@2x-2.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green@2x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green@2x-3.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_overrides.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_overrides.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_universal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "facebook.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Images.xcassets/pdf/v_universal.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/pdf/v_universal.imageset/facebook.pdf -------------------------------------------------------------------------------- /Images.xcassets/render/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/render/r_default.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/render/r_default.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_default.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_default.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_default.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_default.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_default.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_original.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "image@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "image@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | }, 23 | "properties" : { 24 | "template-rendering-intent" : "original" 25 | } 26 | } -------------------------------------------------------------------------------- /Images.xcassets/render/r_original.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_original.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_original.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_original.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_original.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_original.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_template.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blue.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blue@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "blue@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | }, 23 | "properties" : { 24 | "template-rendering-intent" : "template" 25 | } 26 | } -------------------------------------------------------------------------------- /Images.xcassets/render/r_template.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_template.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_template.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_template.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/render/r_template.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/render/r_template.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | }, 18 | { 19 | "idiom" : "universal", 20 | "filename" : "image.png", 21 | "height-class" : "regular", 22 | "scale" : "1x" 23 | }, 24 | { 25 | "idiom" : "universal", 26 | "filename" : "image@2x.png", 27 | "height-class" : "regular", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "image@3x.png", 33 | "height-class" : "regular", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_h_a&r.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_h_a&r.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | }, 18 | { 19 | "idiom" : "universal", 20 | "filename" : "image.png", 21 | "width-class" : "compact", 22 | "scale" : "1x" 23 | }, 24 | { 25 | "idiom" : "universal", 26 | "filename" : "image@2x.png", 27 | "width-class" : "compact", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "image@3x.png", 33 | "width-class" : "compact", 34 | "scale" : "3x" 35 | } 36 | ], 37 | "info" : { 38 | "version" : 1, 39 | "author" : "xcode" 40 | } 41 | } -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_w_a&c.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_w_a&c.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | }, 18 | { 19 | "idiom" : "universal", 20 | "filename" : "image.png", 21 | "height-class" : "compact", 22 | "scale" : "1x" 23 | }, 24 | { 25 | "idiom" : "universal", 26 | "filename" : "image@2x.png", 27 | "height-class" : "compact", 28 | "scale" : "2x" 29 | }, 30 | { 31 | "idiom" : "universal", 32 | "filename" : "image@3x.png", 33 | "height-class" : "compact", 34 | "scale" : "3x" 35 | }, 36 | { 37 | "idiom" : "universal", 38 | "filename" : "blue.png", 39 | "width-class" : "regular", 40 | "scale" : "1x" 41 | }, 42 | { 43 | "idiom" : "universal", 44 | "filename" : "blue@2x.png", 45 | "width-class" : "regular", 46 | "scale" : "2x" 47 | }, 48 | { 49 | "idiom" : "universal", 50 | "filename" : "blue@3x.png", 51 | "width-class" : "regular", 52 | "scale" : "3x" 53 | }, 54 | { 55 | "idiom" : "universal", 56 | "filename" : "cyan.png", 57 | "width-class" : "regular", 58 | "height-class" : "compact", 59 | "scale" : "1x" 60 | }, 61 | { 62 | "idiom" : "universal", 63 | "filename" : "cyan@2x.png", 64 | "width-class" : "regular", 65 | "height-class" : "compact", 66 | "scale" : "2x" 67 | }, 68 | { 69 | "idiom" : "universal", 70 | "filename" : "cyan@3x.png", 71 | "width-class" : "regular", 72 | "height-class" : "compact", 73 | "scale" : "3x" 74 | } 75 | ], 76 | "info" : { 77 | "version" : 1, 78 | "author" : "xcode" 79 | } 80 | } -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/blue@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/size class/sc_wh_a&r&c.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/size class/sc_wh_a&r&c.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "resizing" : { 5 | "mode" : "3-part-horizontal", 6 | "center" : { 7 | "mode" : "tile", 8 | "width" : 4 9 | }, 10 | "cap-insets" : { 11 | "right" : 10, 12 | "left" : 10 13 | } 14 | }, 15 | "idiom" : "universal", 16 | "filename" : "image.png", 17 | "scale" : "1x" 18 | }, 19 | { 20 | "resizing" : { 21 | "mode" : "3-part-horizontal", 22 | "center" : { 23 | "mode" : "stretch", 24 | "width" : 9 25 | }, 26 | "cap-insets" : { 27 | "right" : 19, 28 | "left" : 20 29 | } 30 | }, 31 | "idiom" : "universal", 32 | "filename" : "image@2x.png", 33 | "scale" : "2x" 34 | }, 35 | { 36 | "resizing" : { 37 | "mode" : "3-part-horizontal", 38 | "center" : { 39 | "mode" : "stretch", 40 | "width" : 5 41 | }, 42 | "cap-insets" : { 43 | "right" : 29, 44 | "left" : 29 45 | } 46 | }, 47 | "idiom" : "universal", 48 | "filename" : "image@3x.png", 49 | "scale" : "3x" 50 | } 51 | ], 52 | "info" : { 53 | "version" : 1, 54 | "author" : "xcode" 55 | } 56 | } -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal.imageset/image.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal.imageset/image@2x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal.imageset/image@3x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal_vertical.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "resizing" : { 5 | "mode" : "9-part", 6 | "center" : { 7 | "mode" : "stretch", 8 | "width" : 2, 9 | "height" : 3 10 | }, 11 | "cap-insets" : { 12 | "bottom" : 12, 13 | "top" : 10, 14 | "right" : 13, 15 | "left" : 11 16 | } 17 | }, 18 | "idiom" : "universal", 19 | "filename" : "cyan.png", 20 | "scale" : "1x" 21 | }, 22 | { 23 | "resizing" : { 24 | "mode" : "9-part", 25 | "center" : { 26 | "mode" : "tile", 27 | "width" : 6, 28 | "height" : 2 29 | }, 30 | "cap-insets" : { 31 | "bottom" : 20, 32 | "top" : 20, 33 | "right" : 19, 34 | "left" : 20 35 | } 36 | }, 37 | "idiom" : "universal", 38 | "filename" : "cyan@2x.png", 39 | "scale" : "2x" 40 | }, 41 | { 42 | "resizing" : { 43 | "mode" : "9-part", 44 | "center" : { 45 | "mode" : "tile", 46 | "width" : 8, 47 | "height" : 2 48 | }, 49 | "cap-insets" : { 50 | "bottom" : 30, 51 | "top" : 30, 52 | "right" : 29, 53 | "left" : 30 54 | } 55 | }, 56 | "idiom" : "universal", 57 | "filename" : "cyan@3x.png", 58 | "scale" : "3x" 59 | } 60 | ], 61 | "info" : { 62 | "version" : 1, 63 | "author" : "xcode" 64 | } 65 | } -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal_vertical.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal_vertical.imageset/cyan.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal_vertical.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal_vertical.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_horizontal_vertical.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_horizontal_vertical.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_none.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Images.xcassets/slices/s_none.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_none.imageset/green.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_none.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_none.imageset/green@2x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_none.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_none.imageset/green@3x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_vertical.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "resizing" : { 5 | "mode" : "3-part-vertical", 6 | "center" : { 7 | "mode" : "tile", 8 | "height" : 3 9 | }, 10 | "cap-insets" : { 11 | "top" : 10, 12 | "bottom" : 10 13 | } 14 | }, 15 | "idiom" : "universal", 16 | "filename" : "blue.png", 17 | "scale" : "1x" 18 | }, 19 | { 20 | "resizing" : { 21 | "mode" : "3-part-vertical", 22 | "center" : { 23 | "mode" : "stretch", 24 | "height" : 7 25 | }, 26 | "cap-insets" : { 27 | "top" : 20, 28 | "bottom" : 20 29 | } 30 | }, 31 | "idiom" : "universal", 32 | "filename" : "blue@2x.png", 33 | "scale" : "2x" 34 | }, 35 | { 36 | "resizing" : { 37 | "mode" : "3-part-vertical", 38 | "center" : { 39 | "mode" : "tile", 40 | "height" : 11 41 | }, 42 | "cap-insets" : { 43 | "top" : 29, 44 | "bottom" : 29 45 | } 46 | }, 47 | "idiom" : "universal", 48 | "filename" : "blue@3x.png", 49 | "scale" : "3x" 50 | } 51 | ], 52 | "info" : { 53 | "version" : 1, 54 | "author" : "xcode" 55 | } 56 | } -------------------------------------------------------------------------------- /Images.xcassets/slices/s_vertical.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_vertical.imageset/blue.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_vertical.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_vertical.imageset/blue@2x.png -------------------------------------------------------------------------------- /Images.xcassets/slices/s_vertical.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Images.xcassets/slices/s_vertical.imageset/blue@3x.png -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | The MIT License (MIT) 2 | 3 | Copyright (c) 2014 Bartosz Janda 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | 23 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | .PHONY: \ 2 | iphone ipad ios mac tv watch \ 3 | assets \ 4 | build test \ 5 | zip release clean 6 | 7 | define ACTOOL 8 | xcrun actool \ 9 | --output-format human-readable-text \ 10 | --notices \ 11 | --warnings 12 | endef 13 | 14 | ASSETS := "Assets.car" 15 | DATA := "acextractTests/data" 16 | 17 | all: 18 | 19 | # Builad assets 20 | assets: iphone ipad ios mac tv watch 21 | 22 | iphone: 23 | # --filter-for-device-model iPhone8,2 24 | # --filter-for-device-os-version 9.3 25 | # --platform iphonesimulator 26 | $(ACTOOL) \ 27 | --compress-pngs \ 28 | --enable-on-demand-resources YES \ 29 | --minimum-deployment-target 9.3 \ 30 | --platform iphoneos \ 31 | --target-device iphone \ 32 | --compile $(PWD) \ 33 | Images.xcassets 34 | mv $(ASSETS) $(DATA)/assets_iphone.car 35 | 36 | ipad: 37 | # --filter-for-device-model iPhone8,2 38 | # --filter-for-device-os-version 9.3 39 | # --platform iphonesimulator 40 | $(ACTOOL) \ 41 | --compress-pngs \ 42 | --enable-on-demand-resources YES \ 43 | --minimum-deployment-target 9.3 \ 44 | --platform iphoneos \ 45 | --target-device ipad \ 46 | --compile $(PWD) \ 47 | Images.xcassets 48 | mv $(ASSETS) $(DATA)/assets_ipad.car 49 | 50 | ios: 51 | # --filter-for-device-model iPhone8,2 52 | # --filter-for-device-os-version 9.3 53 | # --platform iphonesimulator 54 | $(ACTOOL) \ 55 | --compress-pngs \ 56 | --enable-on-demand-resources YES \ 57 | --minimum-deployment-target 9.3 \ 58 | --platform iphoneos \ 59 | --target-device ipad \ 60 | --target-device iphone \ 61 | --compile $(PWD) \ 62 | Images.xcassets 63 | cp $(ASSETS) $(DATA)/assets.car 64 | mv $(ASSETS) $(DATA)/assets_ios.car 65 | 66 | mac: 67 | $(ACTOOL) \ 68 | --enable-on-demand-resources NO \ 69 | --minimum-deployment-target 10.11 \ 70 | --platform macosx \ 71 | --target-device mac \ 72 | --compile $(PWD) \ 73 | Images.xcassets 74 | mv $(ASSETS) $(DATA)/assets_mac.car 75 | 76 | tv: 77 | # --platform appletvsimulator 78 | # --filter-for-device-model AppleTV5,3 79 | # --filter-for-device-os-version 9.2 80 | $(ACTOOL) \ 81 | --compress-pngs \ 82 | --enable-on-demand-resources YES \ 83 | --minimum-deployment-target 9.2 \ 84 | --platform appletvos \ 85 | --target-device tv \ 86 | --compile $(PWD) \ 87 | Images.xcassets 88 | mv $(ASSETS) $(DATA)/assets_tv.car 89 | 90 | watch: 91 | # --platform watchsimulator 92 | # --filter-for-device-model iPhone8,2 93 | # --filter-for-device-os-version 9.3 94 | $(ACTOOL) \ 95 | --compress-pngs \ 96 | --enable-on-demand-resources NO \ 97 | --minimum-deployment-target 2.2 \ 98 | --platform watchos \ 99 | --target-device watch \ 100 | --compile $(PWD) \ 101 | Images.xcassets 102 | mv $(ASSETS) $(DATA)/assets_watch.car 103 | 104 | # Build app 105 | PROJECT := acextract.xcodeproj 106 | SCHEME := acextract 107 | ARCHIVE := acextract.xcarchive 108 | ACEXTRACT_BIN_PATH := $(ARCHIVE)/Products/usr/local/bin/acextract 109 | build: 110 | -rm -r $(ARCHIVE) 111 | xcodebuild \ 112 | -project $(PROJECT) \ 113 | -scheme $(SCHEME) \ 114 | -archivePath $(PWD)/$(ARCHIVE) \ 115 | archive | xcpretty -c 116 | -rm $(PWD)/acextract.bin 117 | cp $(ACEXTRACT_BIN_PATH) $(PWD)/acextract.bin 118 | 119 | # Run unit tests 120 | test: 121 | xcodebuild \ 122 | -project $(PROJECT) \ 123 | -scheme $(SCHEME) \ 124 | clean test | xcpretty -c 125 | 126 | # Build and prepare ZIP file for release 127 | ZIP := acextract.zip 128 | zip: build 129 | -rm $(ZIP) 130 | zip -j $(ZIP) $(ACEXTRACT_BIN_PATH) 131 | 132 | # Release shourtcut 133 | release: test zip 134 | 135 | # Clean files 136 | clean: 137 | -rm -r $(ARCHIVE) 138 | -rm $(PWD)/acextract.bin 139 | -rm $(ZIP) 140 | -rm -r output 141 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | acextract 2 | ========= 3 | 4 | A tool to list and extract content from Assets.car files. 5 | 6 | Support Mac, iOS and AppleWatch assets. Can extract PNG and PDF files. 7 | 8 | ## Features 9 | 10 | | Feature | Status | 11 | | -------------------- | :----: | 12 | | iOS / iPhone / iPad | ✔ | 13 | | macOS | ✔ | 14 | | tvOS | ✔ | 15 | | watchOS | ✔ | 16 | | 4 inch iPhone | ✔ | 17 | | Size classes | ✔ | 18 | | Slicing | ✔ | 19 | | Memory class | ✔ | 20 | | Graphics class | ✔ | 21 | | Data | ✘ | 22 | | PDF | ✘ | 23 | | SpriteKit Atlas | ✘ | 24 | | AppleTV image stack | ✘ | 25 | | iMessage stickers | ✘ | 26 | 27 | ## Usage: 28 | input is required 29 | Usage: ./acextract [options] 30 | -i, --input: 31 | Path to input CAR file. 32 | -o, --output: 33 | Path to output directory. 34 | -l, --list: 35 | Print content of the CAR file without extracting. 36 | -h, --help: 37 | Show help message. 38 | -v, --verbose: 39 | Print more detail. You can use -vv or -vvv for more info. 40 | 41 | ## Installation: 42 | 43 | ### From archive 44 | 45 | - download the newest [version](https://github.com/bartoszj/acextract/releases) from GitHub 46 | - extract archive 47 | - copy `acextract` to `/usr/local/bin/` folder 48 | 49 | ### Manual compilation 50 | 51 | git clone https://github.com/bartoszj/acextract.git --recursive 52 | 53 | or 54 | 55 | git clone https://github.com/bartoszj/acextract.git 56 | cd acextract 57 | git submodule update --init --recursive 58 | 59 | ## Example usage: 60 | 61 | **Print content** 62 | 63 | acextract -i ~/Assets.car -l 64 | 65 | **Extract content** 66 | 67 | mkdir -p ~/AssetsOutput 68 | acextract -i ~/Assets.car -o ~/AssetsOutput 69 | 70 | ## Similar tools: 71 | - [iOS-Asset-Extractor](https://github.com/Marxon13/iOS-Asset-Extractor) 72 | 73 | -------------------------------------------------------------------------------- /Templates.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "blue.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "blue@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "blue@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue.imageset/blue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue.imageset/blue.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue.imageset/blue@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue.imageset/blue@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue.imageset/blue@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue.imageset/blue@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue_jpeg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "blue.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "blue@2x.jpg" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "blue@3x.jpg" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue_jpeg.imageset/blue.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue_jpeg.imageset/blue.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue_jpeg.imageset/blue@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue_jpeg.imageset/blue@2x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/blue_jpeg.imageset/blue@3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/blue_jpeg.imageset/blue@3x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "cyan.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "cyan@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "cyan@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan.imageset/cyan.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan_jpeg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "cyan.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "cyan@2x.jpg" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "cyan@3x.jpg" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan_jpeg.imageset/cyan.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan_jpeg.imageset/cyan.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan_jpeg.imageset/cyan@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan_jpeg.imageset/cyan@2x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/cyan_jpeg.imageset/cyan@3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/cyan_jpeg.imageset/cyan@3x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/green.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "green.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "green@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "green@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/green.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green.imageset/green.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/green.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green.imageset/green@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/green.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green.imageset/green@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/green_jpeg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "green.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "green@2x.jpg" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "green@3x.jpg" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/green_jpeg.imageset/green.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green_jpeg.imageset/green.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/green_jpeg.imageset/green@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green_jpeg.imageset/green@2x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/green_jpeg.imageset/green@3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/green_jpeg.imageset/green@3x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/red.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "image.png", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "filename" : "image@2x.png", 11 | "scale" : "2x" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "filename" : "image@3x.png", 16 | "scale" : "3x" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/red.imageset/image.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red.imageset/image.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/red.imageset/image@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red.imageset/image@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/red.imageset/image@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red.imageset/image@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/colors/red_jpeg.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x", 6 | "filename" : "image.jpg" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x", 11 | "filename" : "image@2x.jpg" 12 | }, 13 | { 14 | "idiom" : "universal", 15 | "scale" : "3x", 16 | "filename" : "image@3x.jpg" 17 | } 18 | ], 19 | "info" : { 20 | "version" : 1, 21 | "author" : "xcode" 22 | } 23 | } -------------------------------------------------------------------------------- /Templates.xcassets/colors/red_jpeg.imageset/image.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red_jpeg.imageset/image.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/red_jpeg.imageset/image@2x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red_jpeg.imageset/image@2x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/colors/red_jpeg.imageset/image@3x.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/colors/red_jpeg.imageset/image@3x.jpg -------------------------------------------------------------------------------- /Templates.xcassets/old/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "filename" : "facebook.pdf" 6 | }, 7 | { 8 | "idiom" : "iphone", 9 | "filename" : "facebook-1.pdf", 10 | "subtype" : "retina4" 11 | }, 12 | { 13 | "idiom" : "ipad", 14 | "filename" : "facebook-1-1.pdf" 15 | }, 16 | { 17 | "idiom" : "mac", 18 | "filename" : "facebook-1-1-1.pdf" 19 | } 20 | ], 21 | "info" : { 22 | "version" : 1, 23 | "author" : "xcode" 24 | } 25 | } -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device.imageset/facebook-1-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device.imageset/facebook-1-1-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device.imageset/facebook-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device.imageset/facebook-1-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device.imageset/facebook-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device.imageset/facebook-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device.imageset/facebook.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "iphone", 5 | "filename" : "facebook.pdf" 6 | }, 7 | { 8 | "idiom" : "iphone", 9 | "filename" : "facebook-1.pdf", 10 | "subtype" : "retina4" 11 | }, 12 | { 13 | "idiom" : "iphone", 14 | "filename" : "green.png", 15 | "scale" : "1x" 16 | }, 17 | { 18 | "idiom" : "iphone", 19 | "subtype" : "retina4", 20 | "scale" : "1x" 21 | }, 22 | { 23 | "idiom" : "iphone", 24 | "filename" : "green@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "idiom" : "iphone", 29 | "filename" : "green@2x-1.png", 30 | "subtype" : "retina4", 31 | "scale" : "2x" 32 | }, 33 | { 34 | "idiom" : "iphone", 35 | "filename" : "green@3x.png", 36 | "scale" : "3x" 37 | }, 38 | { 39 | "idiom" : "iphone", 40 | "subtype" : "retina4", 41 | "scale" : "3x" 42 | }, 43 | { 44 | "idiom" : "ipad", 45 | "filename" : "facebook-1-1.pdf" 46 | }, 47 | { 48 | "idiom" : "ipad", 49 | "filename" : "green-1.png", 50 | "scale" : "1x" 51 | }, 52 | { 53 | "idiom" : "ipad", 54 | "filename" : "green@2x-2.png", 55 | "scale" : "2x" 56 | }, 57 | { 58 | "idiom" : "watch" 59 | }, 60 | { 61 | "idiom" : "watch", 62 | "screen-width" : "<=145" 63 | }, 64 | { 65 | "idiom" : "watch", 66 | "screen-width" : ">161" 67 | }, 68 | { 69 | "idiom" : "watch", 70 | "screen-width" : ">145" 71 | }, 72 | { 73 | "idiom" : "watch", 74 | "screen-width" : ">183" 75 | }, 76 | { 77 | "idiom" : "watch", 78 | "filename" : "cyan.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "idiom" : "watch", 83 | "filename" : "cyan@2x.png", 84 | "screen-width" : "<=145", 85 | "scale" : "2x" 86 | }, 87 | { 88 | "idiom" : "watch", 89 | "scale" : "2x", 90 | "screen-width" : ">161" 91 | }, 92 | { 93 | "idiom" : "watch", 94 | "filename" : "cyan@3x.png", 95 | "screen-width" : ">145", 96 | "scale" : "2x" 97 | }, 98 | { 99 | "idiom" : "watch", 100 | "scale" : "2x", 101 | "screen-width" : ">183" 102 | }, 103 | { 104 | "idiom" : "mac", 105 | "filename" : "facebook-1-1-1.pdf" 106 | }, 107 | { 108 | "idiom" : "mac", 109 | "filename" : "green-2.png", 110 | "scale" : "1x" 111 | }, 112 | { 113 | "idiom" : "mac", 114 | "filename" : "green@2x-3.png", 115 | "scale" : "2x" 116 | } 117 | ], 118 | "info" : { 119 | "version" : 1, 120 | "author" : "xcode" 121 | } 122 | } -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/cyan.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/cyan.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/cyan@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/cyan@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/cyan@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/cyan@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/facebook-1-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/facebook-1-1-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/facebook-1-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/facebook-1-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/facebook-1.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/facebook-1.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/facebook.pdf -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green-1.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green-2.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green@2x-1.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green@2x-2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green@2x-2.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green@2x-3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green@2x-3.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green@2x.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_device2.imageset/green@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_device2.imageset/green@3x.png -------------------------------------------------------------------------------- /Templates.xcassets/old/v_universal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "facebook.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Templates.xcassets/old/v_universal.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/old/v_universal.imageset/facebook.pdf -------------------------------------------------------------------------------- /Templates.xcassets/vectors/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Templates.xcassets/vectors/v_universal.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "facebook.pdf" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /Templates.xcassets/vectors/v_universal.imageset/facebook.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/Templates.xcassets/vectors/v_universal.imageset/facebook.pdf -------------------------------------------------------------------------------- /TestApps/MacTestApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // MacTestApp 4 | // 5 | // Created by Bartosz Janda on 22.12.2014. 6 | // Copyright (c) 2014 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | @NSApplicationMain 12 | class AppDelegate: NSObject, NSApplicationDelegate { 13 | 14 | func applicationDidFinishLaunching(aNotification: NSNotification) { 15 | // Insert code here to initialize your application 16 | } 17 | 18 | func applicationWillTerminate(aNotification: NSNotification) { 19 | // Insert code here to tear down your application 20 | } 21 | } 22 | -------------------------------------------------------------------------------- /TestApps/MacTestApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIconFile 10 | 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | LSMinimumSystemVersion 26 | $(MACOSX_DEPLOYMENT_TARGET) 27 | NSHumanReadableCopyright 28 | Copyright © 2014 Bartosz Janda. All rights reserved. 29 | NSMainStoryboardFile 30 | Main 31 | NSPrincipalClass 32 | NSApplication 33 | 34 | 35 | -------------------------------------------------------------------------------- /TestApps/MacTestApp/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // MacTestApp 4 | // 5 | // Created by Bartosz Janda on 22.12.2014. 6 | // Copyright (c) 2014 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import Cocoa 10 | 11 | class ViewController: NSViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | 16 | // Do any additional setup after loading the view. 17 | } 18 | 19 | override var representedObject: Any? { 20 | didSet { 21 | // Update the view, if already loaded. 22 | } 23 | } 24 | } 25 | -------------------------------------------------------------------------------- /TestApps/iOSTestApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // iOSTestApp 4 | // 5 | // Created by Bartosz Janda on 22.12.2014. 6 | // Copyright (c) 2014 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> 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 throttle down OpenGL ES frame rates. 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 inactive 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 | -------------------------------------------------------------------------------- /TestApps/iOSTestApp/Base.lproj/LaunchScreen.xib: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 20 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | -------------------------------------------------------------------------------- /TestApps/iOSTestApp/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 | -------------------------------------------------------------------------------- /TestApps/iOSTestApp/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 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UILaunchStoryboardName 26 | LaunchScreen 27 | UIMainStoryboardFile 28 | Main 29 | UIRequiredDeviceCapabilities 30 | 31 | armv7 32 | 33 | UISupportedInterfaceOrientations 34 | 35 | UIInterfaceOrientationPortrait 36 | UIInterfaceOrientationLandscapeLeft 37 | UIInterfaceOrientationLandscapeRight 38 | 39 | UISupportedInterfaceOrientations~ipad 40 | 41 | UIInterfaceOrientationPortrait 42 | UIInterfaceOrientationPortraitUpsideDown 43 | UIInterfaceOrientationLandscapeLeft 44 | UIInterfaceOrientationLandscapeRight 45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /TestApps/iOSTestApp/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // iOSTestApp 4 | // 5 | // Created by Bartosz Janda on 22.12.2014. 6 | // Copyright (c) 2014 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | 23 | } 24 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // tvTestApp 4 | // 5 | // Created by Bartosz Janda on 12.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | @UIApplicationMain 12 | class AppDelegate: UIResponder, UIApplicationDelegate { 13 | 14 | var window: UIWindow? 15 | 16 | private func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> 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 throttle down OpenGL ES frame rates. 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 inactive 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 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "layers" : [ 3 | { 4 | "filename" : "Front.imagestacklayer" 5 | }, 6 | { 7 | "filename" : "Middle.imagestacklayer" 8 | }, 9 | { 10 | "filename" : "Back.imagestacklayer" 11 | } 12 | ], 13 | "info" : { 14 | "version" : 1, 15 | "author" : "xcode" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Large.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Back.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "layers" : [ 3 | { 4 | "filename" : "Front.imagestacklayer" 5 | }, 6 | { 7 | "filename" : "Middle.imagestacklayer" 8 | }, 9 | { 10 | "filename" : "Back.imagestacklayer" 11 | } 12 | ], 13 | "info" : { 14 | "version" : 1, 15 | "author" : "xcode" 16 | } 17 | } 18 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Front.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon - Small.imagestack/Middle.imagestacklayer/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "assets" : [ 3 | { 4 | "size" : "1280x768", 5 | "idiom" : "tv", 6 | "filename" : "App Icon - Large.imagestack", 7 | "role" : "primary-app-icon" 8 | }, 9 | { 10 | "size" : "400x240", 11 | "idiom" : "tv", 12 | "filename" : "App Icon - Small.imagestack", 13 | "role" : "primary-app-icon" 14 | }, 15 | { 16 | "size" : "1920x720", 17 | "idiom" : "tv", 18 | "filename" : "Top Shelf Image.imageset", 19 | "role" : "top-shelf-image" 20 | } 21 | ], 22 | "info" : { 23 | "version" : 1, 24 | "author" : "xcode" 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "tv", 5 | "scale" : "1x" 6 | } 7 | ], 8 | "info" : { 9 | "version" : 1, 10 | "author" : "xcode" 11 | } 12 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/Assets.xcassets/LaunchImage.launchimage/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "orientation" : "landscape", 5 | "idiom" : "tv", 6 | "extent" : "full-screen", 7 | "minimum-system-version" : "9.0", 8 | "scale" : "1x" 9 | } 10 | ], 11 | "info" : { 12 | "version" : 1, 13 | "author" : "xcode" 14 | } 15 | } -------------------------------------------------------------------------------- /TestApps/tvTestApp/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 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/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 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | LSRequiresIPhoneOS 24 | 25 | UIMainStoryboardFile 26 | Main 27 | UIRequiredDeviceCapabilities 28 | 29 | arm64 30 | 31 | 32 | 33 | -------------------------------------------------------------------------------- /TestApps/tvTestApp/ViewController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViewController.swift 3 | // tvTestApp 4 | // 5 | // Created by Bartosz Janda on 12.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | 11 | class ViewController: UIViewController { 12 | 13 | override func viewDidLoad() { 14 | super.viewDidLoad() 15 | // Do any additional setup after loading the view, typically from a nib. 16 | } 17 | 18 | override func didReceiveMemoryWarning() { 19 | super.didReceiveMemoryWarning() 20 | // Dispose of any resources that can be recreated. 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /TestApps/watchTestApp Extension/Assets.xcassets/README__ignoredByTemplate__: -------------------------------------------------------------------------------- 1 | Did you know that git does not support storing empty directories? 2 | -------------------------------------------------------------------------------- /TestApps/watchTestApp Extension/ExtensionDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ExtensionDelegate.swift 3 | // watchTestApp Extension 4 | // 5 | // Created by Bartosz Janda on 12.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import WatchKit 10 | 11 | class ExtensionDelegate: NSObject, WKExtensionDelegate { 12 | 13 | func applicationDidFinishLaunching() { 14 | // Perform any final initialization of your application. 15 | } 16 | 17 | func applicationDidBecomeActive() { 18 | // 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. 19 | } 20 | 21 | func applicationWillResignActive() { 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, etc. 24 | } 25 | 26 | } 27 | -------------------------------------------------------------------------------- /TestApps/watchTestApp Extension/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | watchTestApp Extension 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | XPC! 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | NSExtension 26 | 27 | NSExtensionAttributes 28 | 29 | WKAppBundleIdentifier 30 | com.bjanda.iOSTestApp.watchkitapp 31 | 32 | NSExtensionPointIdentifier 33 | com.apple.watchkit 34 | 35 | WKExtensionDelegateClassName 36 | $(PRODUCT_MODULE_NAME).ExtensionDelegate 37 | 38 | 39 | -------------------------------------------------------------------------------- /TestApps/watchTestApp Extension/InterfaceController.swift: -------------------------------------------------------------------------------- 1 | // 2 | // InterfaceController.swift 3 | // watchTestApp Extension 4 | // 5 | // Created by Bartosz Janda on 12.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import WatchKit 10 | import Foundation 11 | 12 | class InterfaceController: WKInterfaceController { 13 | 14 | override func awake(withContext context: Any?) { 15 | super.awake(withContext: context) 16 | // Configure interface objects here. 17 | } 18 | 19 | override func willActivate() { 20 | // This method is called when watch view controller is about to be visible to user 21 | super.willActivate() 22 | } 23 | 24 | override func didDeactivate() { 25 | // This method is called when watch view controller is no longer visible 26 | super.didDeactivate() 27 | } 28 | } 29 | -------------------------------------------------------------------------------- /TestApps/watchTestApp/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "24x24", 5 | "idiom" : "watch", 6 | "scale" : "2x", 7 | "role" : "notificationCenter", 8 | "subtype" : "38mm" 9 | }, 10 | { 11 | "size" : "27.5x27.5", 12 | "idiom" : "watch", 13 | "scale" : "2x", 14 | "role" : "notificationCenter", 15 | "subtype" : "42mm" 16 | }, 17 | { 18 | "size" : "29x29", 19 | "idiom" : "watch", 20 | "role" : "companionSettings", 21 | "scale" : "2x" 22 | }, 23 | { 24 | "size" : "29x29", 25 | "idiom" : "watch", 26 | "role" : "companionSettings", 27 | "scale" : "3x" 28 | }, 29 | { 30 | "size" : "40x40", 31 | "idiom" : "watch", 32 | "scale" : "2x", 33 | "role" : "appLauncher", 34 | "subtype" : "38mm" 35 | }, 36 | { 37 | "size" : "86x86", 38 | "idiom" : "watch", 39 | "scale" : "2x", 40 | "role" : "quickLook", 41 | "subtype" : "38mm" 42 | }, 43 | { 44 | "size" : "98x98", 45 | "idiom" : "watch", 46 | "scale" : "2x", 47 | "role" : "quickLook", 48 | "subtype" : "42mm" 49 | } 50 | ], 51 | "info" : { 52 | "version" : 1, 53 | "author" : "xcode" 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /TestApps/watchTestApp/Base.lproj/Interface.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /TestApps/watchTestApp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | en 7 | CFBundleDisplayName 8 | iOSTestApp 9 | CFBundleExecutable 10 | $(EXECUTABLE_NAME) 11 | CFBundleIdentifier 12 | $(PRODUCT_BUNDLE_IDENTIFIER) 13 | CFBundleInfoDictionaryVersion 14 | 6.0 15 | CFBundleName 16 | $(PRODUCT_NAME) 17 | CFBundlePackageType 18 | APPL 19 | CFBundleShortVersionString 20 | 1.0 21 | CFBundleSignature 22 | ???? 23 | CFBundleVersion 24 | 1 25 | UISupportedInterfaceOrientations 26 | 27 | UIInterfaceOrientationPortrait 28 | UIInterfaceOrientationPortraitUpsideDown 29 | 30 | WKCompanionAppBundleIdentifier 31 | com.bjanda.iOSTestApp 32 | WKWatchKitApp 33 | 34 | 35 | 36 | -------------------------------------------------------------------------------- /acextract.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /acextract.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /acextract.xcodeproj/xcshareddata/xcschemes/iOSTestApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /acextract.xcodeproj/xcshareddata/xcschemes/macTestApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /acextract.xcodeproj/xcshareddata/xcschemes/tvTestApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 54 | 56 | 62 | 63 | 64 | 65 | 66 | 67 | 73 | 75 | 81 | 82 | 83 | 84 | 86 | 87 | 90 | 91 | 92 | -------------------------------------------------------------------------------- /acextract.xcodeproj/xcshareddata/xcschemes/watchTestApp.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 60 | 61 | 67 | 68 | 69 | 70 | 71 | 72 | 82 | 86 | 92 | 93 | 94 | 95 | 101 | 102 | 103 | 104 | 105 | 106 | 112 | 116 | 122 | 123 | 124 | 125 | 131 | 132 | 133 | 134 | 136 | 137 | 140 | 141 | 142 | -------------------------------------------------------------------------------- /acextract.xcodeproj/xcshareddata/xcschemes/watchTestApp_notification.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 29 | 35 | 36 | 37 | 43 | 49 | 50 | 51 | 52 | 53 | 58 | 59 | 60 | 61 | 67 | 68 | 69 | 70 | 71 | 72 | 83 | 87 | 93 | 94 | 95 | 96 | 102 | 103 | 104 | 105 | 106 | 107 | 114 | 118 | 124 | 125 | 126 | 127 | 133 | 134 | 135 | 136 | 138 | 139 | 142 | 143 | 144 | -------------------------------------------------------------------------------- /acextract/AssetsCatalog.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CatalogReader.swift 3 | // 4 | // The MIT License (MIT) 5 | // 6 | // Copyright (c) 2014 Bartosz Janda 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in all 16 | // copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | // SOFTWARE. 25 | 26 | import Foundation 27 | 28 | enum AssetsCatalogError: Error { 29 | case fileDoesntExists 30 | case cannotOpenAssetsCatalog 31 | } 32 | 33 | struct AssetsCatalog { 34 | // MARK: Properties 35 | let filePath: String 36 | let catalog: CUICatalog 37 | 38 | /** 39 | Returns all image sets from assets catalog. 40 | 41 | - returns: List of image sets. 42 | */ 43 | var imageSets: [ImageSet] { 44 | let array = self.catalog.allImageNames() 45 | var swiftArray = [ImageSet]() 46 | for string in array { 47 | swiftArray.append(imageSet(withName: String(string))) 48 | } 49 | return swiftArray 50 | } 51 | 52 | // MARK: Initialization 53 | init(path: String) throws { 54 | let filePath = (path as NSString).expandingTildeInPath 55 | guard FileManager.default.fileExists(atPath: filePath) else { 56 | throw AssetsCatalogError.fileDoesntExists 57 | } 58 | 59 | let url = NSURL(fileURLWithPath: filePath) 60 | self.filePath = filePath 61 | 62 | do { 63 | self.catalog = try CUICatalog(url: url as URL) 64 | } catch { 65 | throw AssetsCatalogError.cannotOpenAssetsCatalog 66 | } 67 | } 68 | 69 | // MARK: Methods 70 | /** 71 | Return image set with given name. 72 | 73 | - parameter name: Name of image set. 74 | 75 | - returns: Image set with given name. 76 | */ 77 | func imageSet(withName name: String) -> ImageSet { 78 | let images = self.catalog.images(withName: name) 79 | var swiftArray = [CUINamedImage]() 80 | for item in images { 81 | if let image = item as? CUINamedImage { 82 | swiftArray.append(image) 83 | } 84 | } 85 | return ImageSet(name: name, namedImages: swiftArray) 86 | } 87 | } 88 | 89 | extension AssetsCatalog { 90 | func performOperation(operation: Operation) throws { 91 | try operation.read(catalog: self) 92 | } 93 | 94 | func performOperations(operations: [Operation]) throws { 95 | let compundOperation = CompoundOperation(operations: operations) 96 | try performOperation(operation: compundOperation) 97 | } 98 | } 99 | -------------------------------------------------------------------------------- /acextract/ImageSet.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ImageSet.swift 3 | // 4 | // The MIT License (MIT) 5 | // 6 | // Copyright (c) 2014 Bartosz Janda 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in all 16 | // copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | // SOFTWARE. 25 | 26 | import Foundation 27 | 28 | struct ImageSet { 29 | // MARK: Properties 30 | let name: String 31 | let namedImages: [CUINamedImage] 32 | 33 | // MARK: Initialization 34 | init(name: String, namedImages: [CUINamedImage]) { 35 | self.name = name 36 | self.namedImages = namedImages 37 | } 38 | } 39 | 40 | extension ImageSet: CustomStringConvertible { 41 | var description: String { 42 | return "\(name)" 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /acextract/acextract-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // acextract-Bridging-Header.h 3 | // 4 | // The MIT License (MIT) 5 | // 6 | // Copyright (c) 2014 Bartosz Janda 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in all 16 | // copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | // SOFTWARE. 25 | 26 | #import "CoreUI.h" 27 | -------------------------------------------------------------------------------- /acextract/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // 4 | // The MIT License (MIT) 5 | // 6 | // Copyright (c) 2014 Bartosz Janda 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in all 16 | // copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | // SOFTWARE. 25 | 26 | import Foundation 27 | 28 | // Command line. 29 | let cli = CommandLineTool() 30 | let cliHelp = BoolOption(shortFlag: "h", longFlag: "help", helpMessage: "Show help message.") 31 | let cliList = BoolOption(shortFlag: "l", longFlag: "list", helpMessage: "Print content of the CAR file without extracting.") 32 | let cliVerbose = CounterOption(shortFlag: "v", longFlag: "verbose", helpMessage: "Print more detail. You can use -vv or -vvv for more info.") 33 | let cliInput = StringOption(shortFlag: "i", longFlag: "input", required: true, helpMessage: "Path to input CAR file.") 34 | let cliOutput = StringOption(shortFlag: "o", longFlag: "output", required: false, helpMessage: "Path to output directory.") 35 | cli.addOptions([cliInput, cliOutput, cliList, cliHelp, cliVerbose]) 36 | 37 | // Parse. 38 | do { 39 | try cli.parse() 40 | } catch { 41 | print(error) 42 | cli.printUsage() 43 | if cliHelp.value { 44 | exit(EX_OK) 45 | } else { 46 | exit(EX_USAGE) 47 | } 48 | } 49 | 50 | // Print help screen. 51 | if cliHelp.value { 52 | cli.printUsage() 53 | exit(EX_OK) 54 | } 55 | // List or extract assets catalog. 56 | else if let input = cliInput.value { 57 | do { 58 | let assetsCatalog = try AssetsCatalog(path: input) 59 | // Print content of the file. 60 | if cliList.value { 61 | let verbose: PrintInformationOperation.Verbose 62 | switch cliVerbose.value { 63 | case 0: verbose = .name 64 | case 1: verbose = .verbose 65 | case 2: verbose = .veryVerbose 66 | default: verbose = .veryVeryVerbose 67 | } 68 | let pio = PrintInformationOperation(verbose: verbose) 69 | try assetsCatalog.performOperation(operation: pio) 70 | } 71 | // Extract to folder. 72 | if let output = cliOutput.value { 73 | let extract = ExtractOperation(path: output) 74 | try assetsCatalog.performOperation(operation: extract) 75 | } 76 | } 77 | // Cannot create catalog reader. 78 | catch { 79 | print("Error: \(error)") 80 | cli.printUsage() 81 | exit(EX_USAGE) 82 | } 83 | } 84 | -------------------------------------------------------------------------------- /acextractTests/AlignmentTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AlignmentTests.swift 3 | // acextract 4 | // 5 | // Created by Bartosz Janda on 26.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class AlignmentTests: XCTestCase { 12 | // Image Alignment 13 | func testNoAlignment() { 14 | let imageSet = assetsContainer.iOS.imageSet(withName: "a_no") 15 | let images = imageSet.namedImages 16 | XCTAssertEqual(images.count, 3) 17 | if let image = images.filter({ return $0.scale == 1.0 }).first { 18 | XCTAssertFalse(image.hasAlignmentInformation) 19 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) 20 | XCTAssertEqual(image.acImageName, "a_no.png") 21 | XCTAssertNotNil(image._rendition().unslicedImage()) 22 | } else { 23 | XCTFail("Cannot find image") 24 | } 25 | 26 | if let image = images.filter({ return $0.scale == 2.0 }).first { 27 | XCTAssertFalse(image.hasAlignmentInformation) 28 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) 29 | XCTAssertEqual(image.acImageName, "a_no@2x.png") 30 | XCTAssertNotNil(image._rendition().unslicedImage()) 31 | } else { 32 | XCTFail("Cannot find image") 33 | } 34 | 35 | if let image = images.filter({ return $0.scale == 3.0 }).first { 36 | XCTAssertFalse(image.hasAlignmentInformation) 37 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets()) 38 | XCTAssertEqual(image.acImageName, "a_no@3x.png") 39 | XCTAssertNotNil(image._rendition().unslicedImage()) 40 | } else { 41 | XCTFail("Cannot find image") 42 | } 43 | } 44 | 45 | func testAnyAlignment() { 46 | let imageSet = assetsContainer.iOS.imageSet(withName: "a_any") 47 | let images = imageSet.namedImages 48 | XCTAssertEqual(images.count, 3) 49 | if let image = images.filter({ return $0.scale == 1.0 }).first { 50 | XCTAssertTrue(image.hasAlignmentInformation) 51 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 5, left: 10, bottom: 15, right: 20)) 52 | XCTAssertEqual(image.acImageName, "a_any.png") 53 | XCTAssertNotNil(image._rendition().unslicedImage()) 54 | } else { 55 | XCTFail("Cannot find image") 56 | } 57 | 58 | if let image = images.filter({ return $0.scale == 2.0 }).first { 59 | XCTAssertTrue(image.hasAlignmentInformation) 60 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 3, left: 6, bottom: 9, right: 12)) 61 | XCTAssertEqual(image.acImageName, "a_any@2x.png") 62 | XCTAssertNotNil(image._rendition().unslicedImage()) 63 | } else { 64 | XCTFail("Cannot find image") 65 | } 66 | 67 | if let image = images.filter({ return $0.scale == 3.0 }).first { 68 | XCTAssertTrue(image.hasAlignmentInformation) 69 | XCTAssertEqual(image.alignmentEdgeInsets, NSEdgeInsets(top: 4, left: 8, bottom: 12, right: 16)) 70 | XCTAssertEqual(image.acImageName, "a_any@3x.png") 71 | XCTAssertNotNil(image._rendition().unslicedImage()) 72 | } else { 73 | XCTFail("Cannot find image") 74 | } 75 | } 76 | } 77 | -------------------------------------------------------------------------------- /acextractTests/Assets.swift: -------------------------------------------------------------------------------- 1 | // 2 | // Assets.swift 3 | // acextract 4 | // 5 | // Created by Bartosz Janda on 25.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import Foundation 10 | 11 | enum Asset: String { 12 | // MARK: Cases 13 | case iOS = "data/assets_ios" 14 | case iPhone = "data/assets_iphone" 15 | case iPad = "data/assets_ipad" 16 | case macOS = "data/assets_mac" 17 | case tvOS = "data/assets_tv" 18 | case watchOS = "data/assets_watch" 19 | case assets = "data/assets" 20 | 21 | // MARK: Properties 22 | var path: String { 23 | guard let path = Asset.path(catalog: self) else { 24 | fatalError("Missing car file") 25 | } 26 | 27 | return path 28 | } 29 | 30 | // MARK: Static 31 | static let bundleIdentifer = "com.bjanda.acextractTests" 32 | static let bundle = Bundle(identifier: bundleIdentifer)! 33 | static func path(name: String) -> String? { 34 | return bundle.path(forResource: name, ofType: "car") 35 | } 36 | static func path(catalog: Asset) -> String? { 37 | return path(name: catalog.rawValue) 38 | } 39 | } 40 | 41 | struct AssetsContainer { 42 | var iOS: AssetsCatalog! 43 | var iPad: AssetsCatalog! 44 | var iPhone: AssetsCatalog! 45 | var macOS: AssetsCatalog! 46 | var tvOS: AssetsCatalog! 47 | var watchOS: AssetsCatalog! 48 | 49 | init() { 50 | do { 51 | iOS = try AssetsCatalog(path: Asset.iOS.path) 52 | iPad = try AssetsCatalog(path: Asset.iPad.path) 53 | iPhone = try AssetsCatalog(path: Asset.iPhone.path) 54 | macOS = try AssetsCatalog(path: Asset.macOS.path) 55 | tvOS = try AssetsCatalog(path: Asset.tvOS.path) 56 | watchOS = try AssetsCatalog(path: Asset.watchOS.path) 57 | } catch { 58 | fatalError("Cannot create assets") 59 | } 60 | } 61 | } 62 | 63 | let assetsContainer = AssetsContainer() 64 | -------------------------------------------------------------------------------- /acextractTests/AssetsCatalogTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AcextractTests.swift 3 | // AcextractTests 4 | // 5 | // Created by Bartosz Janda on 12.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class FakeOperation: Operation { 12 | var executed = false 13 | 14 | func read(catalog: AssetsCatalog) throws { 15 | executed = true 16 | } 17 | } 18 | 19 | class AssetsCatalogTests: XCTestCase { 20 | 21 | // MARK: Tests 22 | /** 23 | Success 24 | */ 25 | func testCreateAssetsCatalog01() { 26 | do { 27 | _ = try AssetsCatalog(path: Asset.assets.path) 28 | } catch { 29 | XCTFail("Cannot create AssetsCatalog object") 30 | } 31 | } 32 | 33 | /** 34 | File not found. 35 | */ 36 | func testCreateAssetsCatalog02() { 37 | do { 38 | _ = try AssetsCatalog(path: "Fake path") 39 | XCTFail("AssetsCatalog should not be created") 40 | } catch AssetsCatalogError.fileDoesntExists { 41 | 42 | } catch { 43 | XCTFail("Unknown exception \(error)") 44 | } 45 | } 46 | 47 | /** 48 | Incorrect file. 49 | */ 50 | func testCreateAssetsCatalog03() { 51 | guard let path = Asset.bundle.path(forResource: "data/fake_assets", ofType: nil) else { 52 | XCTFail("Cannot find fake asset") 53 | return 54 | } 55 | 56 | do { 57 | _ = try AssetsCatalog(path: path) 58 | XCTFail("AssetsCatalog should not be created") 59 | } catch AssetsCatalogError.cannotOpenAssetsCatalog { 60 | 61 | } catch { 62 | XCTFail("Unknown exception \(error)") 63 | } 64 | } 65 | 66 | /** 67 | Test one operation. 68 | */ 69 | func testOperation01() { 70 | do { 71 | let operation = FakeOperation() 72 | try assetsContainer.iOS.performOperation(operation: operation) 73 | XCTAssertTrue(operation.executed) 74 | } catch { 75 | XCTFail("Unknown exception \(error)") 76 | } 77 | } 78 | 79 | /** 80 | Test two operations. 81 | */ 82 | func testOperation02() { 83 | do { 84 | let operation1 = FakeOperation() 85 | let operation2 = FakeOperation() 86 | try assetsContainer.iOS.performOperations(operations: [operation1, operation2]) 87 | XCTAssertTrue(operation1.executed) 88 | XCTAssertTrue(operation2.executed) 89 | } catch { 90 | XCTFail("Unknown exception \(error)") 91 | } 92 | } 93 | } 94 | -------------------------------------------------------------------------------- /acextractTests/CorrectnessTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // CorrectnessTests.swift 3 | // acextract 4 | // 5 | // Created by Bartosz Janda on 19.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | // Check correctness by printing verbose information 12 | class CorrectnessTests: XCTestCase { 13 | // MARK: Properties 14 | let printOperation = PrintInformationOperation(verbose: .veryVeryVerbose) 15 | 16 | // MARK: Test correctness 17 | func testIOSCorrectness() { 18 | printOperation.read(catalog: assetsContainer.iOS) 19 | } 20 | 21 | func testIPadCorrectness() { 22 | printOperation.read(catalog: assetsContainer.iPad) 23 | } 24 | 25 | func testIPhoneCorrectness() { 26 | printOperation.read(catalog: assetsContainer.iPhone) 27 | } 28 | 29 | func testMacCorrectness() { 30 | printOperation.read(catalog: assetsContainer.macOS) 31 | } 32 | 33 | func testTVCorrectness() { 34 | printOperation.read(catalog: assetsContainer.tvOS) 35 | } 36 | 37 | func testWatchCorrectness() { 38 | printOperation.read(catalog: assetsContainer.watchOS) 39 | } 40 | 41 | func testPrintInformationName() { 42 | PrintInformationOperation(verbose: .name).read(catalog: assetsContainer.iOS) 43 | } 44 | 45 | func testPrintInformationVerbose() { 46 | PrintInformationOperation(verbose: .verbose).read(catalog: assetsContainer.iOS) 47 | } 48 | 49 | func testPrintInformationVeryVerbose() { 50 | PrintInformationOperation(verbose: .veryVerbose).read(catalog: assetsContainer.iOS) 51 | } 52 | } 53 | -------------------------------------------------------------------------------- /acextractTests/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 | CFBundleSignature 20 | ???? 21 | CFBundleVersion 22 | 1 23 | 24 | 25 | -------------------------------------------------------------------------------- /acextractTests/TemplateRenderingTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // TemplateRenderingTests.swift 3 | // acextract 4 | // 5 | // Created by Bartosz Janda on 26.06.2016. 6 | // Copyright © 2016 Bartosz Janda. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | 11 | class TemplateRenderingTests: XCTestCase { 12 | // MARK: Template rendering 13 | func testDefault() { 14 | let imageSet = assetsContainer.iOS.imageSet(withName: "r_default") 15 | let images = imageSet.namedImages 16 | XCTAssertEqual(images.count, 3) 17 | if let image = images.filter({ return $0.scale == 1.0 }).first { 18 | XCTAssertFalse(image.isTemplate) 19 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.default) 20 | XCTAssertEqual(image.acImageName, "r_default.png") 21 | XCTAssertNotNil(image._rendition().unslicedImage()) 22 | } else { 23 | XCTFail("Cannot find image") 24 | } 25 | 26 | if let image = images.filter({ return $0.scale == 2.0 }).first { 27 | XCTAssertFalse(image.isTemplate) 28 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.default) 29 | XCTAssertEqual(image.acImageName, "r_default@2x.png") 30 | XCTAssertNotNil(image._rendition().unslicedImage()) 31 | } else { 32 | XCTFail("Cannot find image") 33 | } 34 | 35 | if let image = images.filter({ return $0.scale == 3.0 }).first { 36 | XCTAssertFalse(image.isTemplate) 37 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.default) 38 | XCTAssertEqual(image.acImageName, "r_default@3x.png") 39 | XCTAssertNotNil(image._rendition().unslicedImage()) 40 | } else { 41 | XCTFail("Cannot find image") 42 | } 43 | } 44 | 45 | func testOriginal() { 46 | let imageSet = assetsContainer.iOS.imageSet(withName: "r_original") 47 | let images = imageSet.namedImages 48 | XCTAssertEqual(images.count, 3) 49 | if let image = images.filter({ return $0.scale == 1.0 }).first { 50 | XCTAssertFalse(image.isTemplate) 51 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.original) 52 | XCTAssertEqual(image.acImageName, "r_original.png") 53 | XCTAssertNotNil(image._rendition().unslicedImage()) 54 | } else { 55 | XCTFail("Cannot find image") 56 | } 57 | 58 | if let image = images.filter({ return $0.scale == 2.0 }).first { 59 | XCTAssertFalse(image.isTemplate) 60 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.original) 61 | XCTAssertEqual(image.acImageName, "r_original@2x.png") 62 | XCTAssertNotNil(image._rendition().unslicedImage()) 63 | } else { 64 | XCTFail("Cannot find image") 65 | } 66 | 67 | if let image = images.filter({ return $0.scale == 3.0 }).first { 68 | XCTAssertFalse(image.isTemplate) 69 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.original) 70 | XCTAssertEqual(image.acImageName, "r_original@3x.png") 71 | XCTAssertNotNil(image._rendition().unslicedImage()) 72 | } else { 73 | XCTFail("Cannot find image") 74 | } 75 | } 76 | 77 | func testTemplate() { 78 | let imageSet = assetsContainer.iOS.imageSet(withName: "r_template") 79 | let images = imageSet.namedImages 80 | XCTAssertEqual(images.count, 3) 81 | if let image = images.filter({ return $0.scale == 1.0 }).first { 82 | XCTAssertTrue(image.isTemplate) 83 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.template) 84 | XCTAssertEqual(image.acImageName, "r_template.png") 85 | XCTAssertNotNil(image._rendition().unslicedImage()) 86 | } else { 87 | XCTFail("Cannot find image") 88 | } 89 | 90 | if let image = images.filter({ return $0.scale == 2.0 }).first { 91 | XCTAssertTrue(image.isTemplate) 92 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.template) 93 | XCTAssertEqual(image.acImageName, "r_template@2x.png") 94 | XCTAssertNotNil(image._rendition().unslicedImage()) 95 | } else { 96 | XCTFail("Cannot find image") 97 | } 98 | 99 | if let image = images.filter({ return $0.scale == 3.0 }).first { 100 | XCTAssertTrue(image.isTemplate) 101 | XCTAssertEqual(image.templateRenderingMode, CUIRenderMode.template) 102 | XCTAssertEqual(image.acImageName, "r_template@3x.png") 103 | XCTAssertNotNil(image._rendition().unslicedImage()) 104 | } else { 105 | XCTFail("Cannot find image") 106 | } 107 | } 108 | } 109 | -------------------------------------------------------------------------------- /acextractTests/acextractTests-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // acextract-Bridging-Header.h 3 | // 4 | // The MIT License (MIT) 5 | // 6 | // Copyright (c) 2014 Bartosz Janda 7 | // 8 | // Permission is hereby granted, free of charge, to any person obtaining a copy 9 | // of this software and associated documentation files (the "Software"), to deal 10 | // in the Software without restriction, including without limitation the rights 11 | // to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 12 | // copies of the Software, and to permit persons to whom the Software is 13 | // furnished to do so, subject to the following conditions: 14 | // 15 | // The above copyright notice and this permission notice shall be included in all 16 | // copies or substantial portions of the Software. 17 | // 18 | // THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 19 | // IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 20 | // FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 21 | // AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 22 | // LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 23 | // OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 24 | // SOFTWARE. 25 | 26 | #import "CoreUI.h" 27 | -------------------------------------------------------------------------------- /acextractTests/data/assets.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets.car -------------------------------------------------------------------------------- /acextractTests/data/assets_ios.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_ios.car -------------------------------------------------------------------------------- /acextractTests/data/assets_ipad.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_ipad.car -------------------------------------------------------------------------------- /acextractTests/data/assets_iphone.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_iphone.car -------------------------------------------------------------------------------- /acextractTests/data/assets_mac.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_mac.car -------------------------------------------------------------------------------- /acextractTests/data/assets_tv.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_tv.car -------------------------------------------------------------------------------- /acextractTests/data/assets_watch.car: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/assets_watch.car -------------------------------------------------------------------------------- /acextractTests/data/fake_assets: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/bartoszj/acextract/df3b018d53cd4b684a5f6d63535dcc4156be1a97/acextractTests/data/fake_assets --------------------------------------------------------------------------------