├── ..Podfile.patch ├── .Podfile.patch ├── .Podfile.patch.sample ├── .gitignore ├── .swiftlint.yml ├── .travis.yml ├── 1.Podfile.patch ├── Gemfile ├── Gemfile.lock ├── LICENSE ├── Podfile ├── Podfile.backup ├── Podfile.lock ├── Podfile.txt ├── PushService ├── Info.plist ├── NotificationService.swift └── PushService-Bridging-Header.h ├── R.generated.swift ├── README.md ├── Vite.xcodeproj ├── project.pbxproj ├── project.xcworkspace │ ├── contents.xcworkspacedata │ └── xcshareddata │ │ └── IDEWorkspaceChecks.plist └── xcshareddata │ └── xcschemes │ ├── PushService.xcscheme │ ├── Vite.xcscheme │ ├── ViteDapp.xcscheme │ ├── ViteOfficial.xcscheme │ └── ViteTest.xcscheme ├── Vite.xcworkspace ├── contents.xcworkspacedata └── xcshareddata │ ├── IDEWorkspaceChecks.plist │ └── WorkspaceSettings.xcsettings ├── Vite ├── AppDelegate.swift ├── Assets.xcassets │ ├── AppIcon-dapp.appiconset │ │ ├── 20pt@1x.png │ │ ├── 20pt@2x-1.png │ │ ├── 20pt@2x.png │ │ ├── 20pt@3x.png │ │ ├── 29pt@1x-1.png │ │ ├── 29pt@1x.png │ │ ├── 29pt@2x-1.png │ │ ├── 29pt@2x.png │ │ ├── 29pt@3x.png │ │ ├── 40pt@1x.png │ │ ├── 40pt@2x-1.png │ │ ├── 40pt@2x.png │ │ ├── 40pt@3x.png │ │ ├── 50@1x.png │ │ ├── 50@2x.png │ │ ├── 57@1x.png │ │ ├── 57@2x.png │ │ ├── 60pt@2x.png │ │ ├── 60pt@3x.png │ │ ├── 72@1x.png │ │ ├── 72@2x.png │ │ ├── 76pt@1x.png │ │ ├── 76pt@2x.png │ │ ├── Contents.json │ │ ├── Icon Template.png │ │ └── Icon-App-83.5x83.5@2x.png │ ├── AppIcon.appiconset │ │ ├── Contents.json │ │ ├── Icon-App-20x20@1x.png │ │ ├── Icon-App-20x20@2x.png │ │ ├── Icon-App-20x20@3x.png │ │ ├── Icon-App-29x29@1x.png │ │ ├── Icon-App-29x29@2x.png │ │ ├── Icon-App-29x29@3x.png │ │ ├── Icon-App-40x40@1x.png │ │ ├── Icon-App-40x40@2x.png │ │ ├── Icon-App-40x40@3x.png │ │ ├── Icon-App-57x57@1x.png │ │ ├── Icon-App-57x57@2x.png │ │ ├── Icon-App-60x60@2x.png │ │ ├── Icon-App-60x60@3x.png │ │ ├── Icon-App-72x72@1x.png │ │ ├── Icon-App-72x72@2x.png │ │ ├── Icon-App-76x76@1x.png │ │ ├── Icon-App-76x76@2x.png │ │ ├── Icon-App-83.5x83.5@2x.png │ │ ├── Icon-Small-50x50@1x.png │ │ ├── Icon-Small-50x50@2x.png │ │ └── iTunesArtwork@2x.png │ ├── Contents.json │ ├── icon_tabbar_discover.imageset │ │ ├── Contents.json │ │ ├── icon_tabbar_discover@2x.png │ │ └── icon_tabbar_discover@3x.png │ ├── icon_tabbar_discover_select.imageset │ │ ├── Contents.json │ │ ├── icon_tabbar_discover_select@2x.png │ │ └── icon_tabbar_discover_select@3x.png │ └── launch_logo.imageset │ │ ├── Contents.json │ │ └── launch_logo.pdf ├── DenyPtrace.c ├── Info.plist ├── LaunchScreen.storyboard ├── Resource │ ├── Firebase │ │ ├── enterprise │ │ │ └── GoogleService-Info.plist │ │ └── official │ │ │ └── GoogleService-Info.plist │ └── Localization │ │ ├── Localizable.strings │ │ ├── en.lproj │ │ └── Localizable.strings │ │ └── zh-Hans.lproj │ │ └── Localizable.strings ├── Vite-Bridging-Header.h ├── Vite.entitlements ├── en.lproj │ └── InfoPlist.strings ├── main.swift └── zh-Hans.lproj │ └── InfoPlist.strings ├── ViteDapp └── Info.plist ├── ViteOfficial └── Info.plist ├── ViteTest └── Info.plist ├── ViteTests ├── Info.plist ├── ViteCryptoTest.swift ├── ViteInputValidTest.swift ├── ViteNetworkTests.swift ├── ViteTests.swift └── ViteURITest.swift ├── ViteUITests └── Info.plist ├── bootstrap ├── bootstrap_dapp ├── bootstrap_official ├── bootstrap_test ├── certs └── distribution │ ├── 86NNRW9D36.cer │ └── 86NNRW9D36.p12 ├── fastlane ├── Appfile ├── Fastfile ├── Matchfile ├── Pluginfile ├── README.md └── Scanfile ├── profiles └── appstore │ └── AppStore_net.vite.wallet.mobileprovision └── vite_pod.rb /..Podfile.patch: -------------------------------------------------------------------------------- 1 | # Podfile 非入侵式修改的自定义配置 2 | # 执行pod install 非侵入式修改 3 | 4 | ### cp .Podfile.patch.sample .Podfile.patch 5 | 6 | pod 'ViteBusiness', :path =>'/Users/haoshenyang/vitelabs/vite-business-ios' 7 | #pod 'ViteUtils', :path =>'/Users/haoshenyang/vitelabs/vite-utils-ios' 8 | #pod 'ViteCommunity', :path =>'/Users/haoshenyang/vitelabs/vite-community-ios' 9 | -------------------------------------------------------------------------------- /.Podfile.patch: -------------------------------------------------------------------------------- 1 | ### cp .Podfile.patch.sample .Podfile.patch 2 | 3 | #pod 'ViteCommunity', :path =>'../vite-community-ios/ViteCommunity.podspec' 4 | #pod 'ViteBusiness', :path =>'../vite-business-ios/ViteBusiness.podspec' 5 | #pod 'ViteWallet', :path =>'../vite-swift-kit/ViteWallet.podspec' 6 | 7 | #pod 'Vite_HDWalletKit', :path =>'../vite-hd-wallet-kit-ios/Vite_HDWalletKit.podspec' 8 | #pod 'BinanceChain', :path =>'../SwiftBinanceChain/BinanceChain.podspec' 9 | #pod 'HDWalletKit', :path =>'../HDWallet/HDWalletKit.podspec' 10 | #pod 'web3swift', :path =>'../web3swift/web3swift.podspec' -------------------------------------------------------------------------------- /.Podfile.patch.sample: -------------------------------------------------------------------------------- 1 | # Podfile 非入侵式修改的自定义配置 2 | # 执行pod install 非侵入式修改 3 | 4 | ### cp .Podfile.patch.sample .Podfile.patch 5 | 6 | pod 'Vite_HDWalletKit', :path =>'../Vite_HDWalletKit/Vite_HDWalletKit.podspec' -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | # Xcode 2 | # 3 | # gitignore contributors: remember to update Global/Xcode.gitignore, Objective-C.gitignore & Swift.gitignore 4 | 5 | .DS_Store 6 | 7 | ## Build generated 8 | build/ 9 | DerivedData/ 10 | 11 | ## Various settings 12 | *.pbxuser 13 | !default.pbxuser 14 | *.mode1v3 15 | !default.mode1v3 16 | *.mode2v3 17 | !default.mode2v3 18 | *.perspectivev3 19 | !default.perspectivev3 20 | xcuserdata/ 21 | 22 | ## Other 23 | *.moved-aside 24 | *.xccheckout 25 | *.xcscmblueprint 26 | 27 | ## Obj-C/Swift specific 28 | *.hmap 29 | *.ipa 30 | *.dSYM.zip 31 | *.dSYM 32 | 33 | ## Playgrounds 34 | timeline.xctimeline 35 | playground.xcworkspace 36 | 37 | # Swift Package Manager 38 | # 39 | # Add this line if you want to avoid checking in source code from Swift Package Manager dependencies. 40 | # Packages/ 41 | # Package.pins 42 | # Package.resolved 43 | .build/ 44 | 45 | # CocoaPods 46 | # 47 | # We recommend against adding the Pods directory to your .gitignore. However 48 | # you should judge for yourself, the pros and cons are mentioned at: 49 | # https://guides.cocoapods.org/using/using-cocoapods.html#should-i-check-the-pods-directory-into-source-control 50 | # 51 | Pods/ 52 | 53 | # Carthage 54 | # 55 | # Add this line if you want to avoid checking in source code from Carthage dependencies. 56 | # Carthage/Checkouts 57 | 58 | Carthage/Build 59 | 60 | # fastlane 61 | # 62 | # It is recommended to not store the screenshots in the git repo. Instead, use fastlane to re-generate the 63 | # screenshots whenever they are needed. 64 | # For more information about the recommended setup visit: 65 | # https://docs.fastlane.tools/best-practices/source-control/#source-control 66 | 67 | fastlane/report.xml 68 | fastlane/Preview.html 69 | fastlane/screenshots/**/*.png 70 | fastlane/test_output 71 | fastlane/.env 72 | match_version.txt 73 | 74 | #R.swift xcode10 Compile Sources build 75 | #*.generated.swift 76 | 77 | #Travis 78 | .bundle/ 79 | vendor/ 80 | .idea/ 81 | -------------------------------------------------------------------------------- /.swiftlint.yml: -------------------------------------------------------------------------------- 1 | swiftlint_version: 0.31.0 2 | disabled_rules: 3 | - cyclomatic_complexity 4 | - force_cast 5 | - force_try 6 | - identifier_name 7 | - nesting 8 | - redundant_discardable_let 9 | - todo 10 | - type_name 11 | - unused_optional_binding 12 | - xctfail_message 13 | - fallthrough 14 | - line_length 15 | - redundant_string_enum_value 16 | - trailing_comma 17 | - trailing_whitespace 18 | opt_in_rules: 19 | - closure_end_indentation 20 | - closure_spacing 21 | - empty_count 22 | - multiline_parameters 23 | - vertical_parameter_alignment_on_call 24 | included: 25 | - Vite 26 | excluded: 27 | - Vite/Vendors 28 | - Vite/R.generated.swift 29 | function_parameter_count: 30 | warning: 20 31 | error: 25 32 | line_length: 33 | warning: 250 34 | error: 450 35 | large_tuple: 36 | warning: 4 37 | type_body_length: 38 | warning: 450 39 | error: 650 40 | function_body_length: 80 41 | file_length: 42 | warning: 600 43 | error: 1200 44 | trailing_comma: 45 | mandatory_comma: true 46 | superfluous_disable_command: warning 47 | reporter: "xcode" 48 | -------------------------------------------------------------------------------- /.travis.yml: -------------------------------------------------------------------------------- 1 | language: swift 2 | osx_image: xcode10.1 3 | before_install: 4 | - echo -e "machine github.com\n login $CI_USER_TOKEN" > ~/.netrc 5 | - brew update 6 | - brew install imagemagick 7 | - bundle install 8 | - pod cache list --verbose 9 | script: 10 | - fastlane vite_test 11 | env: 12 | global: 13 | - secure: xeQ1yNSgE6T3PVK2KwDE6S4ELwcA8LOUElo9kzpEMURetlw4JkYaBIP3L3gSHy5T1EBH3CTSFjb+1Kd9O2wzFCKLCVuKJHJHS12G12iOdGQO6zeE0UBGgb5hfSsX8jx2aVJTO9q6AJASb/R/fud52DmyCBps4bWHWFdhFue5piWDL2Dq0l0VgXfiX/OKoPZahRp36/CE7hkqncIrFGH4/0zcEeL2DeCG+/EDF1ym9b3KcZtFGXIifD+4yjpTmwME5tyrTSXsv0fW0gTzeMd74eNGzgBoD6VrFsYK3jnuboWBSfAp0QdsnmkK2SKQIX/zLqEr9rCWTRS5Cb5mhReYzpIL344cW12G1AAlzbG7J56ItTUPQER45KIwWh54JWZZ5iSGPrFW8bndnGKXT/Oagt/zb5HaSBG4yvJkPi14i+ETsvunF3pjzKB9vYfJt3tL738MiIvsSMa+kdAP5xJ7beKr+fVrtmHWTrZWncquRGkTlM0yRieuY8y97oWcniZEYhHK4Cb+fwLS00aE3S7vwWngNoayDggkdBrbg5R3MOVH2BbSsFquGgg/CbzTJ4AKsItHNCGsPrqQYM61BLdjjhhNN1vImJbNY42VtxV66bHj4e08xK03W0dZggkb1FI1TqTum09Gz03FoPnaJu50Yw7F4Vgij7J0Zdas2UaRlgA= 14 | - secure: FsOAiHxTQXUyjhJEP/Ngz5LTDUjZnYFuCiQhU7yZkm9JmmulXSttc1aL7XZm66IZhltwEw89Hg+gBf9jpgl8l+vrSH+WZEIwF/VlTeYKE3HcIsZFpr1Cf6xtbbFWJ5t5LxN0M30SASUIujlIcuLsmdPsTmZ0gRSS7JSJTWZpbM16rChqE4oJzHZAuEz93fJjtM8YlTD150dy9PZylms9Btimeo7HVmv/6pJdWSt1qRKgMsrM8/rAkZ6pVmf4o9DlrRmj2P4Y6scJeaBNQu2Lk9gMZKZntSfruYnq4wivDAGWHAYn1u9PIGgI2a1tXh9f6HgQ92KBgxEpGJc8nKdSGBjsw6uRmwlna40DURWDXhdvd849Zs8rHL0xFwzqY2lv9IRw3lGVM5O4ECYySo+VmkpCtMmItFgR4lLZF7HaPQUGn/fzyLCcaMw/fQBS/PXWVono8mxPdB7/fQuqFwe5R0CRDWOwT8VUnKq2Xldyz41YlZ+qEWcOlqbgcSLLTENyG0RGruPJjFQLmj0kM24xi4PrVl8K8i6w8FThO4DILVjTiP9tm70I2w7SeFwkBCEv7D8IFxOjem0F31Syyer4QBEFQuGsA1/+Ju9dRC2FJh31Gr3xcW9imTm60y+zSfuFiNX4cTrvKOj+eSPMSuePGMW0mhSIbZh9AW4aQ/WNm38= 15 | - secure: y4lDeq3dVsHNTommtnCroWuUKwWCnMY7+Ca0FaK5feAnnH3c0KfsJSvEe5J44VTVqytQApxeEMduEOWd/XOBdJVh1hRnVzkNay9bBGZVi61n7V6cxv83AOQ5grhQNA29zrYqA+xYzbjxQeNooM9V5wprJ3a+h+wkIQYnGsZArnpZtJwYk1JwxQJ/4+GUK0/tptojvxjFpaws22HbKVeblwqemW2D5JreD4zVel4qwbP1eajyMk7gzewL2nJprD/P4l7FtgngPk/0BDawQwW3gUucoTzdJtArLEn0rXeEhQO8v3/R3kV9pWQ3pebt3O5YuBZcS2FUWqRs0hI5QzIzTrRsqVFzqsR3gej18+flgWLY87FSa3P6gYCvsUaFLdehHIFr3UBD8Uuwj7CA2Q6lmowXOyM18Ykxwaj7G9VHrFFuxSa11QTqfVjoGVeXO3GpFGKoOmRAh4rHGE4RqeFHMRdV/isTK9JJIPhXomtSbvjYtP2O6jrM7F8jPKqeD9qzZVy81WV7KcOVZWuGOAaPU6P3iZHhVH/D90xRZITUO19yinwTkbAExSfl6CEb5DKaYUmzht6lUpAWfVDlcLwXja9kF4Fwa3ZQLqgjIMklQdQApPWFLHnvQ/OtP+skvlYWSErNj8xuzWKCWWHi1fy7nGzXgMI0mhRB7aUfVvLk8Po= 16 | cache: 17 | - bundler 18 | addons: 19 | ssh_known_hosts: 20 | - github.com 21 | 22 | branches: 23 | only: 24 | - develop 25 | - pre-mainnet 26 | - grin 27 | - travis 28 | -------------------------------------------------------------------------------- /1.Podfile.patch: -------------------------------------------------------------------------------- 1 | # Podfile 非入侵式修改的自定义配置 2 | # 执行pod install 非侵入式修改 3 | 4 | ### cp .Podfile.patch.sample .Podfile.patch 5 | 6 | pod 'ViteBusiness', :path =>'/Users/haoshenyang/vitelabs/vite-business-ios' 7 | #pod 'ViteUtils', :path =>'/Users/haoshenyang/vitelabs/vite-utils-ios' 8 | #pod 'ViteCommunity', :path =>'/Users/haoshenyang/vitelabs/vite-community-ios' 9 | -------------------------------------------------------------------------------- /Gemfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | source "https://rubygems.org" 6 | 7 | gem 'fastlane' 8 | gem 'cocoapods' 9 | gem 'danger' 10 | gem 'danger-swiftlint' 11 | 12 | plugins_path = File.join(File.dirname(__FILE__), 'fastlane', 'Pluginfile') 13 | eval_gemfile(plugins_path) if File.exist?(plugins_path) 14 | -------------------------------------------------------------------------------- /Gemfile.lock: -------------------------------------------------------------------------------- 1 | GEM 2 | remote: https://rubygems.org/ 3 | specs: 4 | CFPropertyList (3.0.2) 5 | activesupport (4.2.11.1) 6 | i18n (~> 0.7) 7 | minitest (~> 5.1) 8 | thread_safe (~> 0.3, >= 0.3.4) 9 | tzinfo (~> 1.1) 10 | addressable (2.7.0) 11 | public_suffix (>= 2.0.2, < 5.0) 12 | atomos (0.1.3) 13 | babosa (1.0.3) 14 | badge (0.11.0) 15 | curb (~> 0.9) 16 | fastimage (>= 1.6) 17 | fastlane (>= 2.0) 18 | mini_magick (~> 4.9.5) 19 | claide (1.0.3) 20 | claide-plugins (0.9.2) 21 | cork 22 | nap 23 | open4 (~> 1.3) 24 | cocoapods (1.7.5) 25 | activesupport (>= 4.0.2, < 5) 26 | claide (>= 1.0.2, < 2.0) 27 | cocoapods-core (= 1.7.5) 28 | cocoapods-deintegrate (>= 1.0.3, < 2.0) 29 | cocoapods-downloader (>= 1.2.2, < 2.0) 30 | cocoapods-plugins (>= 1.0.0, < 2.0) 31 | cocoapods-search (>= 1.0.0, < 2.0) 32 | cocoapods-stats (>= 1.0.0, < 2.0) 33 | cocoapods-trunk (>= 1.3.1, < 2.0) 34 | cocoapods-try (>= 1.1.0, < 2.0) 35 | colored2 (~> 3.1) 36 | escape (~> 0.0.4) 37 | fourflusher (>= 2.3.0, < 3.0) 38 | gh_inspector (~> 1.0) 39 | molinillo (~> 0.6.6) 40 | nap (~> 1.0) 41 | ruby-macho (~> 1.4) 42 | xcodeproj (>= 1.10.0, < 2.0) 43 | cocoapods-core (1.7.5) 44 | activesupport (>= 4.0.2, < 6) 45 | fuzzy_match (~> 2.0.4) 46 | nap (~> 1.0) 47 | cocoapods-deintegrate (1.0.4) 48 | cocoapods-downloader (1.2.2) 49 | cocoapods-plugins (1.0.0) 50 | nap 51 | cocoapods-search (1.0.0) 52 | cocoapods-stats (1.1.0) 53 | cocoapods-trunk (1.3.1) 54 | nap (>= 0.8, < 2.0) 55 | netrc (~> 0.11) 56 | cocoapods-try (1.1.0) 57 | colored (1.2) 58 | colored2 (3.1.2) 59 | commander-fastlane (4.4.6) 60 | highline (~> 1.7.2) 61 | concurrent-ruby (1.1.5) 62 | cork (0.3.0) 63 | colored2 (~> 3.1) 64 | curb (0.9.10) 65 | danger (6.0.9) 66 | claide (~> 1.0) 67 | claide-plugins (>= 0.9.2) 68 | colored2 (~> 3.1) 69 | cork (~> 0.1) 70 | faraday (~> 0.9) 71 | faraday-http-cache (~> 2.0) 72 | git (~> 1.5) 73 | kramdown (~> 2.0) 74 | kramdown-parser-gfm (~> 1.0) 75 | no_proxy_fix 76 | octokit (~> 4.7) 77 | terminal-table (~> 1) 78 | danger-swiftlint (0.23.0) 79 | danger 80 | rake (> 10) 81 | thor (~> 0.19) 82 | declarative (0.0.10) 83 | declarative-option (0.1.0) 84 | digest-crc (0.4.1) 85 | domain_name (0.5.20190701) 86 | unf (>= 0.0.5, < 1.0.0) 87 | dotenv (2.7.5) 88 | emoji_regex (1.0.1) 89 | escape (0.0.4) 90 | excon (0.72.0) 91 | faraday (0.17.3) 92 | multipart-post (>= 1.2, < 3) 93 | faraday-cookie_jar (0.0.6) 94 | faraday (>= 0.7.4) 95 | http-cookie (~> 1.0.0) 96 | faraday-http-cache (2.0.0) 97 | faraday (~> 0.8) 98 | faraday_middleware (0.13.1) 99 | faraday (>= 0.7.4, < 1.0) 100 | fastimage (2.1.7) 101 | fastlane (2.141.0) 102 | CFPropertyList (>= 2.3, < 4.0.0) 103 | addressable (>= 2.3, < 3.0.0) 104 | babosa (>= 1.0.2, < 2.0.0) 105 | bundler (>= 1.12.0, < 3.0.0) 106 | colored 107 | commander-fastlane (>= 4.4.6, < 5.0.0) 108 | dotenv (>= 2.1.1, < 3.0.0) 109 | emoji_regex (>= 0.1, < 2.0) 110 | excon (>= 0.71.0, < 1.0.0) 111 | faraday (~> 0.17) 112 | faraday-cookie_jar (~> 0.0.6) 113 | faraday_middleware (~> 0.13.1) 114 | fastimage (>= 2.1.0, < 3.0.0) 115 | gh_inspector (>= 1.1.2, < 2.0.0) 116 | google-api-client (>= 0.29.2, < 0.37.0) 117 | google-cloud-storage (>= 1.15.0, < 2.0.0) 118 | highline (>= 1.7.2, < 2.0.0) 119 | json (< 3.0.0) 120 | jwt (~> 2.1.0) 121 | mini_magick (>= 4.9.4, < 5.0.0) 122 | multi_xml (~> 0.5) 123 | multipart-post (~> 2.0.0) 124 | plist (>= 3.1.0, < 4.0.0) 125 | public_suffix (~> 2.0.0) 126 | rubyzip (>= 1.3.0, < 2.0.0) 127 | security (= 0.1.3) 128 | simctl (~> 1.6.3) 129 | slack-notifier (>= 2.0.0, < 3.0.0) 130 | terminal-notifier (>= 2.0.0, < 3.0.0) 131 | terminal-table (>= 1.4.5, < 2.0.0) 132 | tty-screen (>= 0.6.3, < 1.0.0) 133 | tty-spinner (>= 0.8.0, < 1.0.0) 134 | word_wrap (~> 1.0.0) 135 | xcodeproj (>= 1.13.0, < 2.0.0) 136 | xcpretty (~> 0.3.0) 137 | xcpretty-travis-formatter (>= 0.0.3) 138 | fastlane-plugin-badge (1.3.0) 139 | badge (~> 0.11.0) 140 | fourflusher (2.3.1) 141 | fuzzy_match (2.0.4) 142 | gh_inspector (1.1.3) 143 | git (1.5.0) 144 | google-api-client (0.36.4) 145 | addressable (~> 2.5, >= 2.5.1) 146 | googleauth (~> 0.9) 147 | httpclient (>= 2.8.1, < 3.0) 148 | mini_mime (~> 1.0) 149 | representable (~> 3.0) 150 | retriable (>= 2.0, < 4.0) 151 | signet (~> 0.12) 152 | google-cloud-core (1.5.0) 153 | google-cloud-env (~> 1.0) 154 | google-cloud-errors (~> 1.0) 155 | google-cloud-env (1.3.0) 156 | faraday (~> 0.11) 157 | google-cloud-errors (1.0.0) 158 | google-cloud-storage (1.25.1) 159 | addressable (~> 2.5) 160 | digest-crc (~> 0.4) 161 | google-api-client (~> 0.33) 162 | google-cloud-core (~> 1.2) 163 | googleauth (~> 0.9) 164 | mini_mime (~> 1.0) 165 | googleauth (0.10.0) 166 | faraday (~> 0.12) 167 | jwt (>= 1.4, < 3.0) 168 | memoist (~> 0.16) 169 | multi_json (~> 1.11) 170 | os (>= 0.9, < 2.0) 171 | signet (~> 0.12) 172 | highline (1.7.10) 173 | http-cookie (1.0.3) 174 | domain_name (~> 0.5) 175 | httpclient (2.8.3) 176 | i18n (0.9.5) 177 | concurrent-ruby (~> 1.0) 178 | json (2.3.0) 179 | jwt (2.1.0) 180 | kramdown (2.1.0) 181 | kramdown-parser-gfm (1.1.0) 182 | kramdown (~> 2.0) 183 | memoist (0.16.2) 184 | mini_magick (4.9.5) 185 | mini_mime (1.0.2) 186 | minitest (5.11.3) 187 | molinillo (0.6.6) 188 | multi_json (1.14.1) 189 | multi_xml (0.6.0) 190 | multipart-post (2.0.0) 191 | nanaimo (0.2.6) 192 | nap (1.1.0) 193 | naturally (2.2.0) 194 | netrc (0.11.0) 195 | no_proxy_fix (0.1.2) 196 | octokit (4.14.0) 197 | sawyer (~> 0.8.0, >= 0.5.3) 198 | open4 (1.3.4) 199 | os (1.0.1) 200 | plist (3.5.0) 201 | public_suffix (2.0.5) 202 | rake (12.3.3) 203 | representable (3.0.4) 204 | declarative (< 0.1.0) 205 | declarative-option (< 0.2.0) 206 | uber (< 0.2.0) 207 | retriable (3.1.2) 208 | rouge (2.0.7) 209 | ruby-macho (1.4.0) 210 | rubyzip (1.3.0) 211 | sawyer (0.8.2) 212 | addressable (>= 2.3.5) 213 | faraday (> 0.8, < 2.0) 214 | security (0.1.3) 215 | signet (0.12.0) 216 | addressable (~> 2.3) 217 | faraday (~> 0.9) 218 | jwt (>= 1.5, < 3.0) 219 | multi_json (~> 1.10) 220 | simctl (1.6.8) 221 | CFPropertyList 222 | naturally 223 | slack-notifier (2.3.2) 224 | terminal-notifier (2.0.0) 225 | terminal-table (1.8.0) 226 | unicode-display_width (~> 1.1, >= 1.1.1) 227 | thor (0.20.3) 228 | thread_safe (0.3.6) 229 | tty-cursor (0.7.1) 230 | tty-screen (0.7.1) 231 | tty-spinner (0.9.3) 232 | tty-cursor (~> 0.7) 233 | tzinfo (1.2.5) 234 | thread_safe (~> 0.1) 235 | uber (0.1.0) 236 | unf (0.1.4) 237 | unf_ext 238 | unf_ext (0.0.7.6) 239 | unicode-display_width (1.6.1) 240 | word_wrap (1.0.0) 241 | xcodeproj (1.15.0) 242 | CFPropertyList (>= 2.3.3, < 4.0) 243 | atomos (~> 0.1.3) 244 | claide (>= 1.0.2, < 2.0) 245 | colored2 (~> 3.1) 246 | nanaimo (~> 0.2.6) 247 | xcpretty (0.3.0) 248 | rouge (~> 2.0.7) 249 | xcpretty-travis-formatter (1.0.0) 250 | xcpretty (~> 0.2, >= 0.0.7) 251 | 252 | PLATFORMS 253 | ruby 254 | 255 | DEPENDENCIES 256 | cocoapods 257 | danger 258 | danger-swiftlint 259 | fastlane 260 | fastlane-plugin-badge 261 | 262 | BUNDLED WITH 263 | 2.1.4 264 | -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Vite Labs 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 | -------------------------------------------------------------------------------- /Podfile: -------------------------------------------------------------------------------- 1 | platform :ios, '12.0' 2 | inhibit_all_warnings! 3 | source 'https://github.com/CocoaPods/Specs.git' 4 | require './vite_pod' 5 | 6 | # Vite ViteOfficial ViteTest ViteDapp 7 | target_name = 'ViteOfficial' 8 | 9 | 10 | def vite_config(config, name) 11 | if name == 'Vite' 12 | if config.name.include?("Debug") 13 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','DEBUG=1'] 14 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['DEBUG'] 15 | config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -Xfrontend -debug-time-function-bodies' 16 | elsif config.name.include?("Release") 17 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)'] 18 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = [] 19 | end 20 | elsif name == 'ViteOfficial' 21 | if config.name.include?("Debug") 22 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','DEBUG=1','OFFICIAL=1'] 23 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['DEBUG','OFFICIAL'] 24 | config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -Xfrontend -debug-time-function-bodies' 25 | elsif config.name.include?("Release") 26 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','OFFICIAL=1'] 27 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = 'OFFICIAL' 28 | end 29 | elsif name == 'ViteTest' 30 | if config.name.include?("Debug") 31 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','DEBUG=1','OFFICIAL=1','TEST=1'] 32 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['DEBUG','OFFICIAL', 'TEST'] 33 | config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -Xfrontend -debug-time-function-bodies' 34 | elsif config.name.include?("Release") 35 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','OFFICIAL=1','TEST=1'] 36 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['OFFICIAL', 'TEST'] 37 | end 38 | elsif name == 'ViteDapp' 39 | if config.name.include?("Debug") 40 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','DEBUG=1','DAPP=1'] 41 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = ['DEBUG','DAPP'] 42 | config.build_settings['OTHER_SWIFT_FLAGS'] = '$(inherited) -Xfrontend -debug-time-function-bodies' 43 | elsif config.name.include?("Release") 44 | config.build_settings['GCC_PREPROCESSOR_DEFINITIONS'] ||= ['$(inherited)','DAPP=1'] 45 | config.build_settings['SWIFT_ACTIVE_COMPILATION_CONDITIONS'] = 'DAPP' 46 | end 47 | end 48 | end 49 | 50 | #app_project = Xcodeproj::Project.open(Dir.glob("*.xcodeproj")[0]) 51 | #app_project.native_targets.each do |target| 52 | # if target.name == 'Vite' 53 | # target.build_configurations.each do |config| 54 | # vite_config config, isOfficial 55 | # end 56 | # end 57 | #end 58 | #app_project.save 59 | 60 | 61 | 62 | target target_name do 63 | use_frameworks! 64 | 65 | #vite kit 66 | 67 | vite_community_git = 'git@github.com:vitelabs/vite-community-ios.git' 68 | vite_business_git = 'https://github.com/vitelabs/vite-business-ios.git' 69 | vite_wallet_git = 'https://github.com/vitelabs/vite-swift-kit.git' 70 | vite_hd_git = 'https://github.com/vitelabs/vite-hd-wallet-kit-ios.git' 71 | HDWalletKit_git = 'https://github.com/vitelabs/HDWallet.git' 72 | web3_git = 'https://github.com/vitelabs/web3swift.git' 73 | 74 | vite_community_commit = 'ab006971c2b605c60c83424fe5b96846cbdf4216' 75 | vite_business_commit = 'bc934e2e2b9f3b42139fa1351cbc8c5f277a6673' 76 | vite_wallet_commit = '981a92d5012a0dcae0324b29e8657e78bced55ed' 77 | vite_hd_commit = 'db67644220ab1582459d08d47119ed26dcba8d47' 78 | HDWalletKit_commit = '26df860a4ce7cb26e299aa4f3e0338e8e7041b26' 79 | web3_commit = 'd2507cce4faa17916efa14fd84922a3e6b411634' 80 | 81 | if target_name == 'ViteOfficial' || target_name == 'ViteTest' 82 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit 83 | end 84 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit 85 | vite_pod 'ViteWallet', :git => vite_wallet_git, :commit => vite_wallet_commit 86 | 87 | # pod_branch = 'pre-mainnet' 88 | # if isOfficial 89 | # vite_pod 'ViteCommunity', :git => vite_community_git, :branch => pod_branch 90 | # end 91 | # vite_pod 'ViteBusiness', :git => vite_business_git, :branch => pod_branch 92 | # vite_pod 'ViteWallet', :git => vite_wallet_git, :branch => pod_branch 93 | 94 | 95 | vite_pod 'Vite_HDWalletKit', :git => vite_hd_git, :commit => vite_hd_commit 96 | vite_pod 'HDWalletKit', :git => HDWalletKit_git, :commit => HDWalletKit_commit 97 | vite_pod 'web3swift', :git => web3_git, :commit => web3_commit 98 | 99 | pod 'Charts', :git => 'https://github.com/danielgindi/Charts.git', :tag => 'v4.1.0' 100 | 101 | # pod 'HDWalletKit', '0.3.6' 102 | pod 'SnapKit', '~> 4.0.0' 103 | pod 'BigInt', '~> 5.0' 104 | pod 'R.swift', '5.0.0.alpha.3' 105 | pod 'JSONRPCKit', '~> 3.0.0' 106 | pod 'PromiseKit', '~> 6.8.4' 107 | pod 'APIKit' 108 | pod 'ObjectMapper' 109 | pod 'MBProgressHUD' 110 | pod 'KeychainSwift', '13.0.0' 111 | pod 'Moya' 112 | pod 'MJRefresh', '3.1.15.7' 113 | pod 'KMNavigationBarTransition' 114 | pod 'XCGLogger', '~> 7.0' 115 | pod 'pop', '~> 1.0' 116 | pod 'DACircularProgress', '2.3.1' 117 | pod 'Kingfisher', '~> 4.0' 118 | pod 'NYXImagesKit', '2.3' 119 | pod 'SwiftProtobuf', '1.17.0' 120 | 121 | #request 122 | pod 'SwiftyJSON' 123 | 124 | #UI Control 125 | pod 'ActionSheetPicker-3.0' 126 | pod 'MBProgressHUD' 127 | pod 'Toast-Swift', '~> 4.0.1' 128 | pod 'RazzleDazzle', :git => 'https://github.com/mazhigbee-pb/RazzleDazzle.git', :branch => 'xcode-13-beta-fixes' 129 | pod 'CHIPageControl' 130 | 131 | #table static form 132 | pod 'Eureka', '~> 5.3.0' 133 | # pod 'Eureka', :git => 'https://github.com/xmartlabs/Eureka.git', :branch => 'xcode12' 134 | 135 | #RX 136 | pod 'RxSwift', '~> 4.0' 137 | pod 'RxCocoa' 138 | pod 'RxDataSources', '~> 3.0' 139 | pod 'NSObject+Rx' 140 | pod 'RxOptional' 141 | pod 'RxGesture' 142 | pod 'Then' 143 | pod 'Action' 144 | pod 'ReusableKit', '~> 2.1.0' 145 | pod 'ReactorKit' 146 | 147 | #code review 148 | pod 'SwiftLint', '0.31.0' 149 | 150 | #crash 151 | # pod 'Firebase/Core' 152 | # pod 'Firebase/Analytics' 153 | # pod 'Firebase/Performance' 154 | # pod 'Firebase/RemoteConfig' 155 | 156 | # pod 'MLeaksFinder', :configurations => ['Debug'] 157 | # pod 'LookinServer', :configurations => ['Debug'] 158 | 159 | if target_name == 'ViteTest' 160 | pod 'Bagel', '~> 1.3.2' 161 | else 162 | pod 'Bagel', '~> 1.3.2', :configurations => ['Debug'] 163 | end 164 | 165 | pod 'FSPagerView' 166 | 167 | target 'ViteTests' do 168 | inherit! :search_paths 169 | end 170 | end 171 | 172 | post_install do |installer| 173 | 174 | installer.pods_project.targets.each do |target| 175 | 176 | target.build_configurations.each do |config| 177 | config.build_settings['ENABLE_BITCODE'] = 'NO' 178 | if config.name.include?("Debug") 179 | config.build_settings['ONLY_ACTIVE_ARCH'] = 'YES' 180 | else 181 | config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO' 182 | end 183 | vite_config config, target_name 184 | end 185 | 186 | if ['RazzleDazzle', 'JSONRPCKit', 'APIKit'].include? target.name 187 | target.build_configurations.each do |config| 188 | config.build_settings['SWIFT_VERSION'] = '4.0' 189 | end 190 | elsif ['web3.swift.pod', 'Charts'].include? target.name 191 | target.build_configurations.each do |config| 192 | config.build_settings['SWIFT_VERSION'] = '5.0' 193 | end 194 | else 195 | target.build_configurations.each do |config| 196 | config.build_settings['SWIFT_VERSION'] = '4.2' 197 | end 198 | end 199 | 200 | end 201 | 202 | 203 | end 204 | -------------------------------------------------------------------------------- /Podfile.backup: -------------------------------------------------------------------------------- 1 | platform :ios, '10.0' 2 | inhibit_all_warnings! 3 | source 'https://github.com/CocoaPods/Specs.git' 4 | require './vite_pod' 5 | 6 | targetArray = ['Vite', 'Vite-official', 'Vite-test', 'Vite-enterprise'] 7 | 8 | targetArray.each do |t| 9 | target t do 10 | use_frameworks! 11 | 12 | #vite kit 13 | 14 | vite_community_git = 'https://github.com/vitelabs/vite-community-ios.git' 15 | vite_community_commit = '5b84a9fcb0825d174ea5e21c2d515f6b28e6fed4' 16 | 17 | vite_business_git = 'https://github.com/vitelabs/vite-business-ios.git' 18 | vite_business_commit = '05307d9c50a8f31ac1fde1f118e4c7896973995a' 19 | 20 | if t == 'Vite-official' 21 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Official'] 22 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Official'] 23 | elsif t == 'Vite-test' 24 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Test'] 25 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Test'] 26 | elsif t == 'Vite-enterprise' 27 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Enterprise'] 28 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Enterprise'] 29 | else 30 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit 31 | end 32 | 33 | vite_pod 'ViteUtils', :git => 'https://github.com/vitelabs/vite-utils-ios.git', :commit => '68ccb4840e8b4eab141306e27ffa555352b1b190' 34 | vite_pod 'ViteWallet', :git => 'https://github.com/vitelabs/vite-wallet-ios.git', :commit => 'fbb842cdf99e101fd9659016825739f63ccecc03' 35 | vite_pod 'Vite_HDWalletKit', '1.2.0' 36 | 37 | pod 'SnapKit', '~> 4.0.0' 38 | pod 'BigInt', '~> 3.0' 39 | pod 'R.swift', '5.0.0.alpha.3' 40 | pod 'JSONRPCKit', '~> 3.0.0' 41 | pod 'PromiseKit', '~> 6.0' 42 | pod 'APIKit' 43 | pod 'ObjectMapper' 44 | pod 'MBProgressHUD' 45 | pod 'KeychainSwift' 46 | pod 'Moya' 47 | pod 'MJRefresh' 48 | pod 'KMNavigationBarTransition' 49 | pod 'XCGLogger', '~> 6.1.0' 50 | pod 'pop', '~> 1.0' 51 | pod 'DACircularProgress', '2.3.1' 52 | pod 'Kingfisher', '~> 4.0' 53 | pod 'NYXImagesKit', '2.3' 54 | 55 | #request 56 | pod 'SwiftyJSON' 57 | 58 | #statistics 59 | pod 'BaiduMobStat' 60 | 61 | #UI Control 62 | pod 'ActionSheetPicker-3.0' 63 | pod 'MBProgressHUD' 64 | pod 'Toast-Swift', '~> 4.0.1' 65 | pod 'RazzleDazzle' 66 | pod 'CHIPageControl' 67 | 68 | #table static form 69 | pod 'Eureka', '~> 4.3.0' 70 | 71 | #RX 72 | pod 'RxSwift', '~> 4.0' 73 | pod 'RxCocoa' 74 | pod 'RxDataSources', '~> 3.0' 75 | pod 'NSObject+Rx' 76 | pod 'RxOptional' 77 | pod 'RxGesture' 78 | pod 'Then' 79 | pod 'Action' 80 | pod 'ReusableKit', '~> 2.1.0' 81 | pod 'ReactorKit' 82 | 83 | #code review 84 | pod 'SwiftLint' 85 | 86 | #crash 87 | pod 'Fabric' 88 | pod 'Crashlytics' 89 | 90 | pod 'MLeaksFinder', :configurations => ['Debug'] 91 | 92 | pod 'FSPagerView' 93 | pod 'DNSPageView' 94 | 95 | if t == 'Vite' 96 | target 'ViteTests' do 97 | inherit! :search_paths 98 | end 99 | end 100 | 101 | end 102 | end 103 | 104 | post_install do |installer| 105 | installer.pods_project.targets.each do |target| 106 | if ['RazzleDazzle', 'JSONRPCKit', 'APIKit'].include? target.name 107 | target.build_configurations.each do |config| 108 | config.build_settings['SWIFT_VERSION'] = '4.0' 109 | end 110 | end 111 | end 112 | end 113 | -------------------------------------------------------------------------------- /Podfile.lock: -------------------------------------------------------------------------------- 1 | PODS: 2 | - Action (3.11.0): 3 | - RxCocoa (~> 4.0) 4 | - RxSwift (~> 4.0) 5 | - ActionSheetPicker-3.0 (2.3.0) 6 | - ActiveLabel (1.1.0) 7 | - Alamofire (4.9.1) 8 | - APIKit (5.0.0) 9 | - Bagel (1.3.2): 10 | - CocoaAsyncSocket 11 | - BigInt (5.2.0) 12 | - Charts (4.1.0): 13 | - Charts/Core (= 4.1.0) 14 | - Charts/Core (4.1.0): 15 | - SwiftAlgorithms (~> 1.0) 16 | - CHIPageControl (0.2): 17 | - CHIPageControl/Aji (= 0.2) 18 | - CHIPageControl/Aleppo (= 0.2) 19 | - CHIPageControl/Chimayo (= 0.2) 20 | - CHIPageControl/Fresno (= 0.2) 21 | - CHIPageControl/Jalapeno (= 0.2) 22 | - CHIPageControl/Jaloro (= 0.2) 23 | - CHIPageControl/Paprika (= 0.2) 24 | - CHIPageControl/Puya (= 0.2) 25 | - CHIPageControl/Aji (0.2) 26 | - CHIPageControl/Aleppo (0.2) 27 | - CHIPageControl/Chimayo (0.2) 28 | - CHIPageControl/Fresno (0.2) 29 | - CHIPageControl/Jalapeno (0.2) 30 | - CHIPageControl/Jaloro (0.2) 31 | - CHIPageControl/Paprika (0.2) 32 | - CHIPageControl/Puya (0.2) 33 | - CocoaAsyncSocket (7.6.3) 34 | - CryptoSwift (1.4.0) 35 | - DACircularProgress (2.3.1) 36 | - Differentiator (3.1.0) 37 | - Eureka (5.3.2) 38 | - FSPagerView (0.8.3) 39 | - HDWalletKit (0.3.6): 40 | - CryptoSwift (~> 1.4.0) 41 | - secp256k1.c (~> 0.1) 42 | - JSONRPCKit (3.0.0): 43 | - Result (~> 3.2.0) 44 | - KeychainSwift (13.0.0) 45 | - Kingfisher (4.10.1) 46 | - KMNavigationBarTransition (1.1.8) 47 | - MBProgressHUD (1.1.0) 48 | - MJRefresh (3.1.15.7) 49 | - Moya (11.0.2): 50 | - Moya/Core (= 11.0.2) 51 | - Moya/Core (11.0.2): 52 | - Alamofire (~> 4.1) 53 | - Result (~> 3.0) 54 | - "NSObject+Rx (4.4.1)": 55 | - RxSwift (~> 4.3) 56 | - NYXImagesKit (2.3) 57 | - ObjcExceptionBridging (1.0.1): 58 | - ObjcExceptionBridging/ObjcExceptionBridging (= 1.0.1) 59 | - ObjcExceptionBridging/ObjcExceptionBridging (1.0.1) 60 | - ObjectMapper (3.5.1) 61 | - pop (1.0.12) 62 | - PPBadgeViewSwift (3.1.0) 63 | - PromiseKit (6.8.5): 64 | - PromiseKit/CorePromise (= 6.8.5) 65 | - PromiseKit/Foundation (= 6.8.5) 66 | - PromiseKit/UIKit (= 6.8.5) 67 | - PromiseKit/Alamofire (6.8.5): 68 | - Alamofire (~> 4.0) 69 | - PromiseKit/CorePromise 70 | - PromiseKit/CorePromise (6.8.5) 71 | - PromiseKit/Foundation (6.8.5): 72 | - PromiseKit/CorePromise 73 | - PromiseKit/UIKit (6.8.5): 74 | - PromiseKit/CorePromise 75 | - R.swift (5.0.0.alpha.3): 76 | - R.swift.Library (~> 5.0.0.alpha.2) 77 | - R.swift.Library (5.0.1) 78 | - RazzleDazzle (0.1.5) 79 | - ReactorKit (1.2.1): 80 | - RxSwift (>= 4.0.0) 81 | - Result (3.2.4) 82 | - ReusableKit (2.1.0): 83 | - ReusableKit/Core (= 2.1.0) 84 | - ReusableKit/Core (2.1.0) 85 | - RxCocoa (4.5.0): 86 | - RxSwift (>= 4.4.2, ~> 4.4) 87 | - RxDataSources (3.1.0): 88 | - Differentiator (~> 3.0) 89 | - RxCocoa (~> 4.0) 90 | - RxSwift (~> 4.0) 91 | - RxGesture (2.2.0): 92 | - RxCocoa (~> 4.5) 93 | - RxSwift (~> 4.5) 94 | - RxOptional (3.6.2): 95 | - RxCocoa (~> 4.0) 96 | - RxSwift (~> 4.0) 97 | - RxSwift (4.5.0) 98 | - secp256k1.c (0.1.2) 99 | - SnapKit (4.0.1) 100 | - Starscream (3.1.1) 101 | - SwiftAlgorithms (1.0.0) 102 | - SwiftLint (0.31.0) 103 | - SwiftProtobuf (1.17.0) 104 | - SwiftyJSON (4.3.0) 105 | - Then (2.6.0) 106 | - Toast-Swift (4.0.1) 107 | - TrezorCryptoEd25519WithBlake2b (0.0.1) 108 | - URLNavigator (2.4.1) 109 | - Vite_HDWalletKit (1.4.0): 110 | - BigInt 111 | - CryptoSwift (= 1.4.0) 112 | - TrezorCryptoEd25519WithBlake2b (~> 0.0.1) 113 | - ViteBusiness (0.0.1): 114 | - Action 115 | - ActionSheetPicker-3.0 116 | - ActiveLabel (= 1.1.0) 117 | - Alamofire 118 | - APIKit 119 | - BigInt 120 | - Charts (= 4.1.0) 121 | - CHIPageControl 122 | - CryptoSwift 123 | - DACircularProgress (= 2.3.1) 124 | - Eureka (~> 5.3.0) 125 | - FSPagerView 126 | - JSONRPCKit (~> 3.0.0) 127 | - KeychainSwift 128 | - Kingfisher (~> 4.0) 129 | - KMNavigationBarTransition (= 1.1.8) 130 | - MBProgressHUD 131 | - MJRefresh 132 | - Moya 133 | - "NSObject+Rx" 134 | - NYXImagesKit (= 2.3) 135 | - ObjectMapper (= 3.5.1) 136 | - pop (~> 1.0) 137 | - PPBadgeViewSwift (= 3.1.0) 138 | - PromiseKit (~> 6.0) 139 | - PromiseKit/Alamofire 140 | - R.swift (= 5.0.0.alpha.3) 141 | - RazzleDazzle 142 | - ReactorKit 143 | - ReusableKit (~> 2.1.0) 144 | - RxCocoa 145 | - RxDataSources (~> 3.0) 146 | - RxGesture 147 | - RxOptional 148 | - RxSwift (~> 4.0) 149 | - SnapKit (~> 4.0.0) 150 | - Starscream 151 | - SwiftLint 152 | - SwiftProtobuf 153 | - SwiftyJSON 154 | - Then 155 | - Toast-Swift (~> 4.0.1) 156 | - URLNavigator 157 | - Vite_HDWalletKit 158 | - ViteWallet 159 | - web3swift 160 | - XCGLogger (~> 7.0) 161 | - ViteCommunity (0.1.0): 162 | - FSPagerView 163 | - Moya 164 | - R.swift 165 | - URLNavigator 166 | - ViteBusiness 167 | - ViteWallet (0.1.0): 168 | - APIKit 169 | - BigInt 170 | - CryptoSwift 171 | - JSONRPCKit 172 | - ObjectMapper 173 | - PromiseKit 174 | - SwiftyJSON 175 | - Vite_HDWalletKit 176 | - web3swift (2.3.0): 177 | - BigInt (~> 5.0) 178 | - CryptoSwift (~> 1.4.0) 179 | - PromiseKit (~> 6.8.4) 180 | - secp256k1.c (~> 0.1) 181 | - Starscream (~> 3.1.0) 182 | - XCGLogger (7.0.0): 183 | - XCGLogger/Core (= 7.0.0) 184 | - XCGLogger/Core (7.0.0): 185 | - ObjcExceptionBridging 186 | 187 | DEPENDENCIES: 188 | - Action 189 | - ActionSheetPicker-3.0 190 | - APIKit 191 | - Bagel (~> 1.3.2) 192 | - BigInt (~> 5.0) 193 | - Charts (from `https://github.com/danielgindi/Charts.git`, tag `v4.1.0`) 194 | - CHIPageControl 195 | - DACircularProgress (= 2.3.1) 196 | - Eureka (~> 5.3.0) 197 | - FSPagerView 198 | - HDWalletKit (from `https://github.com/vitelabs/HDWallet.git`, commit `26df860a4ce7cb26e299aa4f3e0338e8e7041b26`) 199 | - JSONRPCKit (~> 3.0.0) 200 | - KeychainSwift (= 13.0.0) 201 | - Kingfisher (~> 4.0) 202 | - KMNavigationBarTransition 203 | - MBProgressHUD 204 | - MJRefresh (= 3.1.15.7) 205 | - Moya 206 | - "NSObject+Rx" 207 | - NYXImagesKit (= 2.3) 208 | - ObjectMapper 209 | - pop (~> 1.0) 210 | - PromiseKit (~> 6.8.4) 211 | - R.swift (= 5.0.0.alpha.3) 212 | - RazzleDazzle (from `https://github.com/mazhigbee-pb/RazzleDazzle.git`, branch `xcode-13-beta-fixes`) 213 | - ReactorKit 214 | - ReusableKit (~> 2.1.0) 215 | - RxCocoa 216 | - RxDataSources (~> 3.0) 217 | - RxGesture 218 | - RxOptional 219 | - RxSwift (~> 4.0) 220 | - SnapKit (~> 4.0.0) 221 | - SwiftLint (= 0.31.0) 222 | - SwiftProtobuf (= 1.17.0) 223 | - SwiftyJSON 224 | - Then 225 | - Toast-Swift (~> 4.0.1) 226 | - Vite_HDWalletKit (from `https://github.com/vitelabs/vite-hd-wallet-kit-ios.git`, commit `db67644220ab1582459d08d47119ed26dcba8d47`) 227 | - ViteBusiness (from `https://github.com/vitelabs/vite-business-ios.git`, commit `bc934e2e2b9f3b42139fa1351cbc8c5f277a6673`) 228 | - "ViteCommunity (from `git@github.com:vitelabs/vite-community-ios.git`, commit `ab006971c2b605c60c83424fe5b96846cbdf4216`)" 229 | - ViteWallet (from `https://github.com/vitelabs/vite-swift-kit.git`, commit `981a92d5012a0dcae0324b29e8657e78bced55ed`) 230 | - web3swift (from `https://github.com/vitelabs/web3swift.git`, commit `d2507cce4faa17916efa14fd84922a3e6b411634`) 231 | - XCGLogger (~> 7.0) 232 | 233 | SPEC REPOS: 234 | https://github.com/CocoaPods/Specs.git: 235 | - Action 236 | - ActionSheetPicker-3.0 237 | - ActiveLabel 238 | - Alamofire 239 | - APIKit 240 | - Bagel 241 | - BigInt 242 | - CHIPageControl 243 | - CocoaAsyncSocket 244 | - CryptoSwift 245 | - DACircularProgress 246 | - Differentiator 247 | - Eureka 248 | - FSPagerView 249 | - JSONRPCKit 250 | - KeychainSwift 251 | - Kingfisher 252 | - KMNavigationBarTransition 253 | - MBProgressHUD 254 | - MJRefresh 255 | - Moya 256 | - "NSObject+Rx" 257 | - NYXImagesKit 258 | - ObjcExceptionBridging 259 | - ObjectMapper 260 | - pop 261 | - PPBadgeViewSwift 262 | - PromiseKit 263 | - R.swift 264 | - R.swift.Library 265 | - ReactorKit 266 | - Result 267 | - ReusableKit 268 | - RxCocoa 269 | - RxDataSources 270 | - RxGesture 271 | - RxOptional 272 | - RxSwift 273 | - secp256k1.c 274 | - SnapKit 275 | - Starscream 276 | - SwiftAlgorithms 277 | - SwiftLint 278 | - SwiftProtobuf 279 | - SwiftyJSON 280 | - Then 281 | - Toast-Swift 282 | - TrezorCryptoEd25519WithBlake2b 283 | - URLNavigator 284 | - XCGLogger 285 | 286 | EXTERNAL SOURCES: 287 | Charts: 288 | :git: https://github.com/danielgindi/Charts.git 289 | :tag: v4.1.0 290 | HDWalletKit: 291 | :commit: 26df860a4ce7cb26e299aa4f3e0338e8e7041b26 292 | :git: https://github.com/vitelabs/HDWallet.git 293 | RazzleDazzle: 294 | :branch: xcode-13-beta-fixes 295 | :git: https://github.com/mazhigbee-pb/RazzleDazzle.git 296 | Vite_HDWalletKit: 297 | :commit: db67644220ab1582459d08d47119ed26dcba8d47 298 | :git: https://github.com/vitelabs/vite-hd-wallet-kit-ios.git 299 | ViteBusiness: 300 | :commit: bc934e2e2b9f3b42139fa1351cbc8c5f277a6673 301 | :git: https://github.com/vitelabs/vite-business-ios.git 302 | ViteCommunity: 303 | :commit: ab006971c2b605c60c83424fe5b96846cbdf4216 304 | :git: "git@github.com:vitelabs/vite-community-ios.git" 305 | ViteWallet: 306 | :commit: 981a92d5012a0dcae0324b29e8657e78bced55ed 307 | :git: https://github.com/vitelabs/vite-swift-kit.git 308 | web3swift: 309 | :commit: d2507cce4faa17916efa14fd84922a3e6b411634 310 | :git: https://github.com/vitelabs/web3swift.git 311 | 312 | CHECKOUT OPTIONS: 313 | Charts: 314 | :git: https://github.com/danielgindi/Charts.git 315 | :tag: v4.1.0 316 | HDWalletKit: 317 | :commit: 26df860a4ce7cb26e299aa4f3e0338e8e7041b26 318 | :git: https://github.com/vitelabs/HDWallet.git 319 | RazzleDazzle: 320 | :commit: 5d07292537f20a0b97dcd0d0ff5206fc94a6cbbc 321 | :git: https://github.com/mazhigbee-pb/RazzleDazzle.git 322 | Vite_HDWalletKit: 323 | :commit: db67644220ab1582459d08d47119ed26dcba8d47 324 | :git: https://github.com/vitelabs/vite-hd-wallet-kit-ios.git 325 | ViteBusiness: 326 | :commit: bc934e2e2b9f3b42139fa1351cbc8c5f277a6673 327 | :git: https://github.com/vitelabs/vite-business-ios.git 328 | ViteCommunity: 329 | :commit: ab006971c2b605c60c83424fe5b96846cbdf4216 330 | :git: "git@github.com:vitelabs/vite-community-ios.git" 331 | ViteWallet: 332 | :commit: 981a92d5012a0dcae0324b29e8657e78bced55ed 333 | :git: https://github.com/vitelabs/vite-swift-kit.git 334 | web3swift: 335 | :commit: d2507cce4faa17916efa14fd84922a3e6b411634 336 | :git: https://github.com/vitelabs/web3swift.git 337 | 338 | SPEC CHECKSUMS: 339 | Action: 689181e4c3f6566844178d8a7da6fef39a9597fc 340 | ActionSheetPicker-3.0: eef157d75e151f255c5333d26656c7fbfe905a51 341 | ActiveLabel: 5e3f4de79a1952d4604b845a0610d4776e4b82b3 342 | Alamofire: 85e8a02c69d6020a0d734f6054870d7ecb75cf18 343 | APIKit: b27d79b022733b2f50e7a092e67c4cb9ea30f968 344 | Bagel: 199e0105ac694d6eee9db54dd006c940da6ce81b 345 | BigInt: f668a80089607f521586bbe29513d708491ef2f7 346 | Charts: 354f86803d11d9c35de280587fef50d1af063978 347 | CHIPageControl: a787bf7205c9b7e7fbfc412be36c5e8636b68f86 348 | CocoaAsyncSocket: eafaa68a7e0ec99ead0a7b35015e0bf25d2c8987 349 | CryptoSwift: 7cc902df1784de3b389a387756c7d710f197730c 350 | DACircularProgress: 4dd437c0fc3da5161cb289e07ac449493d41db71 351 | Differentiator: be49ca3408f0ecfc761e4c7763d20c62be01b9ad 352 | Eureka: 1c2b8b5892bfb0e972d0fe05f8c09fd89f8625ec 353 | FSPagerView: 670405b2f18e2a87fa37f20b00de783e562c25a8 354 | HDWalletKit: d55aa7a373cb3e2c1ad66d05d7b60f4d62a5a04c 355 | JSONRPCKit: 50e0dc5e7f873e87f81562feb8836b7d1974da6d 356 | KeychainSwift: 23d6c16cbc33f20fafa30c3d783241b4b87d998c 357 | Kingfisher: c148cd7b47ebde9989f6bc7c27dcaa79d81279a0 358 | KMNavigationBarTransition: 7ee1a05ff758bce9258845a803f7a8b00585bd58 359 | MBProgressHUD: e7baa36a220447d8aeb12769bf0585582f3866d9 360 | MJRefresh: 697f8ec75ebdbe9207767bb682cf0f51b0d8a41f 361 | Moya: a725035953bc1c0eb1be505ab903984501d82440 362 | "NSObject+Rx": 9884a92f19b610795c431e10b4e601913b59c9e9 363 | NYXImagesKit: 8163e3335a40eaa173ca5bbbf81fafb57d3947eb 364 | ObjcExceptionBridging: c30e00eb3700467e695faeea30e26e18bd445001 365 | ObjectMapper: 70187b8941977c62ccfb423caf6b50be405cabf0 366 | pop: d582054913807fd11fd50bfe6a539d91c7e1a55a 367 | PPBadgeViewSwift: 18a219a9897f418342c22dd1a54f7b18ac56546b 368 | PromiseKit: 9616b0afef31eae56ab9ce044c8ec2b8612a15cd 369 | R.swift: ca4207ecc94545a1611ca0b2ae1197458b6ba30a 370 | R.swift.Library: cfe85d569d9bae6cb262922db130e7c3a7a5fad1 371 | RazzleDazzle: 6689b7ffb2e6b115ef2249828473e854e004b67c 372 | ReactorKit: 8be57f0527ad1ac2963cd5c338274a46a01e57a3 373 | Result: d2d07204ce72856f1fd9130bbe42c35a7b0fea10 374 | ReusableKit: d0b040de03b293288b0ca27a78602691d3346d9b 375 | RxCocoa: cbf70265dc65a981d4ac982e513c10cf23df24a0 376 | RxDataSources: a843bad90c29817f5923ec8163f4af2de084ceb3 377 | RxGesture: c1b7bf17166b0ef9d642a9510f8bac5785f18990 378 | RxOptional: 80426a0ddbd092573e4c482d8cc13302078c4d5e 379 | RxSwift: f172070dfd1a93d70a9ab97a5a01166206e1c575 380 | secp256k1.c: db47b726585d80f027423682eb369729e61b3b20 381 | SnapKit: 0de968a9fec17499afa29683b05d0c775b6d1c29 382 | Starscream: 4bb2f9942274833f7b4d296a55504dcfc7edb7b0 383 | SwiftAlgorithms: 38dda4731d19027fdeee1125f973111bf3386b53 384 | SwiftLint: 7a0227733d786395817373b2d0ca799fd0093ff3 385 | SwiftProtobuf: 9c85136c6ba74b0a1b84279dbf0f6db8efb714e0 386 | SwiftyJSON: 6faa0040f8b59dead0ee07436cbf76b73c08fd08 387 | Then: 90cd104fd951cec1980a03f57704ad8f784d4d79 388 | Toast-Swift: e42a638589a2f95036b4bb7626cfbdde7daf0393 389 | TrezorCryptoEd25519WithBlake2b: e70fc022094a2f2aa8b86117ab1085d7a7b62098 390 | URLNavigator: 9e277a422a5c131a3e37970c2558e0e866cc22bd 391 | Vite_HDWalletKit: 4745b9c3a8ddff3fc00623057dcd194e08fea909 392 | ViteBusiness: f28e37d98328ca03bc28eafb604da0035c69b70c 393 | ViteCommunity: 53ba654a4dfaf02a0c5513f76a817df86177f993 394 | ViteWallet: 3e4470f11ad780bfecbecf5f720ee75a0259d7ad 395 | web3swift: 22ac889fe28306c5d79704711f20b5ed4b21ba5e 396 | XCGLogger: 0434f15e3909cdc450bb63faf638b8792ab782ab 397 | 398 | PODFILE CHECKSUM: c7899baff07d2adb9c5d4b68f3ed1e4e8970be52 399 | 400 | COCOAPODS: 1.11.3 401 | -------------------------------------------------------------------------------- /Podfile.txt: -------------------------------------------------------------------------------- 1 | platform :ios, '10.0' 2 | inhibit_all_warnings! 3 | source 'https://github.com/CocoaPods/Specs.git' 4 | require './vite_pod' 5 | 6 | targetArray = ['Vite'] 7 | 8 | targetArray.each do |t| 9 | target t do 10 | use_frameworks! 11 | 12 | #vite kit 13 | 14 | vite_community_git = 'https://github.com/vitelabs/vite-community-ios.git' 15 | vite_community_commit = '5b84a9fcb0825d174ea5e21c2d515f6b28e6fed4' 16 | 17 | vite_business_git = 'https://github.com/vitelabs/vite-business-ios.git' 18 | vite_business_commit = '05307d9c50a8f31ac1fde1f118e4c7896973995a' 19 | 20 | if t == 'Vite-official' 21 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Official'] 22 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Official'] 23 | elsif t == 'Vite-test' 24 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Test'] 25 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Test'] 26 | elsif t == 'Vite-enterprise' 27 | vite_pod 'ViteCommunity', :git => vite_community_git, :commit => vite_community_commit, :subspecs => ['Enterprise'] 28 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit, :subspecs => ['Enterprise'] 29 | else 30 | vite_pod 'ViteBusiness', :git => vite_business_git, :commit => vite_business_commit 31 | end 32 | 33 | vite_pod 'ViteUtils', :git => 'https://github.com/vitelabs/vite-utils-ios.git', :commit => '68ccb4840e8b4eab141306e27ffa555352b1b190' 34 | vite_pod 'ViteWallet', :git => 'https://github.com/vitelabs/vite-wallet-ios.git', :commit => 'fbb842cdf99e101fd9659016825739f63ccecc03' 35 | vite_pod 'Vite_HDWalletKit', '1.2.0' 36 | 37 | pod 'SnapKit', '~> 4.0.0' 38 | pod 'BigInt', '~> 3.0' 39 | pod 'R.swift', '5.0.0.alpha.3' 40 | pod 'JSONRPCKit', '~> 3.0.0' 41 | pod 'PromiseKit', '~> 6.0' 42 | pod 'APIKit' 43 | pod 'ObjectMapper' 44 | pod 'MBProgressHUD' 45 | pod 'KeychainSwift' 46 | pod 'Moya' 47 | pod 'MJRefresh' 48 | pod 'KMNavigationBarTransition' 49 | pod 'XCGLogger', '~> 6.1.0' 50 | pod 'pop', '~> 1.0' 51 | pod 'DACircularProgress', '2.3.1' 52 | pod 'Kingfisher', '~> 4.0' 53 | pod 'NYXImagesKit', '2.3' 54 | 55 | #request 56 | pod 'SwiftyJSON' 57 | 58 | #statistics 59 | pod 'BaiduMobStat' 60 | 61 | #UI Control 62 | pod 'ActionSheetPicker-3.0' 63 | pod 'MBProgressHUD' 64 | pod 'Toast-Swift', '~> 4.0.1' 65 | pod 'RazzleDazzle' 66 | pod 'CHIPageControl' 67 | 68 | #table static form 69 | pod 'Eureka', '~> 4.3.0' 70 | 71 | #RX 72 | pod 'RxSwift', '~> 4.0' 73 | pod 'RxCocoa' 74 | pod 'RxDataSources', '~> 3.0' 75 | pod 'NSObject+Rx' 76 | pod 'RxOptional' 77 | pod 'RxGesture' 78 | pod 'Then' 79 | pod 'Action' 80 | pod 'ReusableKit', '~> 2.1.0' 81 | pod 'ReactorKit' 82 | 83 | #code review 84 | pod 'SwiftLint' 85 | 86 | #crash 87 | pod 'Fabric' 88 | pod 'Crashlytics' 89 | 90 | pod 'MLeaksFinder', :configurations => ['Debug'] 91 | 92 | pod 'FSPagerView' 93 | pod 'DNSPageView' 94 | 95 | if t == 'Vite' 96 | target 'ViteTests' do 97 | inherit! :search_paths 98 | end 99 | end 100 | 101 | end 102 | end 103 | 104 | post_install do |installer| 105 | installer.pods_project.targets.each do |target| 106 | if ['RazzleDazzle', 'JSONRPCKit', 'APIKit'].include? target.name 107 | target.build_configurations.each do |config| 108 | config.build_settings['SWIFT_VERSION'] = '4.0' 109 | end 110 | end 111 | end 112 | end 113 | -------------------------------------------------------------------------------- /PushService/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleDisplayName 8 | PushService 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 | $(MARKETING_VERSION) 21 | CFBundleVersion 22 | $(CURRENT_PROJECT_VERSION) 23 | NSExtension 24 | 25 | NSExtensionPointIdentifier 26 | com.apple.usernotifications.service 27 | NSExtensionPrincipalClass 28 | $(PRODUCT_MODULE_NAME).NotificationService 29 | 30 | 31 | 32 | -------------------------------------------------------------------------------- /PushService/NotificationService.swift: -------------------------------------------------------------------------------- 1 | // 2 | // NotificationService.swift 3 | // PushService 4 | // 5 | // Created by haoshenyang on 2018/12/17. 6 | // Copyright © 2018 vite labs. All rights reserved. 7 | // 8 | 9 | import UserNotifications 10 | 11 | class NotificationService: UNNotificationServiceExtension { 12 | 13 | var contentHandler: ((UNNotificationContent) -> Void)? 14 | var bestAttemptContent: UNMutableNotificationContent? 15 | 16 | override func didReceive(_ request: UNNotificationRequest, withContentHandler contentHandler: @escaping (UNNotificationContent) -> Void) { 17 | 18 | self.contentHandler = contentHandler 19 | bestAttemptContent = (request.content.mutableCopy() as? UNMutableNotificationContent) 20 | 21 | if let bestAttemptContent = bestAttemptContent { 22 | contentHandler(bestAttemptContent) 23 | } 24 | } 25 | 26 | override func serviceExtensionTimeWillExpire() { 27 | // Called just before the extension will be terminated by the system. 28 | // Use this as an opportunity to deliver your "best attempt" at modified content, otherwise the original push payload will be used. 29 | if let contentHandler = contentHandler, let bestAttemptContent = bestAttemptContent { 30 | contentHandler(bestAttemptContent) 31 | } 32 | } 33 | 34 | } 35 | -------------------------------------------------------------------------------- /PushService/PushService-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Use this file to import your target's public headers that you would like to expose to Swift. 3 | // 4 | 5 | -------------------------------------------------------------------------------- /R.generated.swift: -------------------------------------------------------------------------------- 1 | // 2 | // This is a generated file, do not edit! 3 | // Generated by R.swift, see https://github.com/mac-cain13/R.swift 4 | // 5 | 6 | import Foundation 7 | import Rswift 8 | import UIKit 9 | 10 | /// This `R` struct is generated and contains references to static resources. 11 | struct R: Rswift.Validatable { 12 | fileprivate static let applicationLocale = hostingBundle.preferredLocalizations.first.flatMap(Locale.init) ?? Locale.current 13 | fileprivate static let hostingBundle = Bundle(for: R.Class.self) 14 | 15 | static func validate() throws { 16 | try intern.validate() 17 | } 18 | 19 | /// This `R.file` struct is generated, and contains static references to 1 files. 20 | struct file { 21 | /// Resource file `GoogleService-Info.plist`. 22 | static let googleServiceInfoPlist = Rswift.FileResource(bundle: R.hostingBundle, name: "GoogleService-Info", pathExtension: "plist") 23 | 24 | /// `bundle.url(forResource: "GoogleService-Info", withExtension: "plist")` 25 | static func googleServiceInfoPlist(_: Void = ()) -> Foundation.URL? { 26 | let fileResource = R.file.googleServiceInfoPlist 27 | return fileResource.bundle.url(forResource: fileResource) 28 | } 29 | 30 | fileprivate init() {} 31 | } 32 | 33 | /// This `R.image` struct is generated, and contains static references to 3 images. 34 | struct image { 35 | /// Image `icon_tabbar_discover_select`. 36 | static let icon_tabbar_discover_select = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_tabbar_discover_select") 37 | /// Image `icon_tabbar_discover`. 38 | static let icon_tabbar_discover = Rswift.ImageResource(bundle: R.hostingBundle, name: "icon_tabbar_discover") 39 | /// Image `launch_logo`. 40 | static let launch_logo = Rswift.ImageResource(bundle: R.hostingBundle, name: "launch_logo") 41 | 42 | /// `UIImage(named: "icon_tabbar_discover", bundle: ..., traitCollection: ...)` 43 | static func icon_tabbar_discover(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { 44 | return UIKit.UIImage(resource: R.image.icon_tabbar_discover, compatibleWith: traitCollection) 45 | } 46 | 47 | /// `UIImage(named: "icon_tabbar_discover_select", bundle: ..., traitCollection: ...)` 48 | static func icon_tabbar_discover_select(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { 49 | return UIKit.UIImage(resource: R.image.icon_tabbar_discover_select, compatibleWith: traitCollection) 50 | } 51 | 52 | /// `UIImage(named: "launch_logo", bundle: ..., traitCollection: ...)` 53 | static func launch_logo(compatibleWith traitCollection: UIKit.UITraitCollection? = nil) -> UIKit.UIImage? { 54 | return UIKit.UIImage(resource: R.image.launch_logo, compatibleWith: traitCollection) 55 | } 56 | 57 | fileprivate init() {} 58 | } 59 | 60 | /// This `R.storyboard` struct is generated, and contains static references to 1 storyboards. 61 | struct storyboard { 62 | /// Storyboard `LaunchScreen`. 63 | static let launchScreen = _R.storyboard.launchScreen() 64 | 65 | /// `UIStoryboard(name: "LaunchScreen", bundle: ...)` 66 | static func launchScreen(_: Void = ()) -> UIKit.UIStoryboard { 67 | return UIKit.UIStoryboard(resource: R.storyboard.launchScreen) 68 | } 69 | 70 | fileprivate init() {} 71 | } 72 | 73 | fileprivate struct intern: Rswift.Validatable { 74 | fileprivate static func validate() throws { 75 | try _R.validate() 76 | } 77 | 78 | fileprivate init() {} 79 | } 80 | 81 | fileprivate class Class {} 82 | 83 | fileprivate init() {} 84 | } 85 | 86 | struct _R: Rswift.Validatable { 87 | static func validate() throws { 88 | try storyboard.validate() 89 | } 90 | 91 | struct storyboard: Rswift.Validatable { 92 | static func validate() throws { 93 | try launchScreen.validate() 94 | } 95 | 96 | struct launchScreen: Rswift.StoryboardResourceWithInitialControllerType, Rswift.Validatable { 97 | typealias InitialController = UIKit.UIViewController 98 | 99 | let bundle = R.hostingBundle 100 | let name = "LaunchScreen" 101 | 102 | static func validate() throws { 103 | if UIKit.UIImage(named: "launch_logo", in: R.hostingBundle, compatibleWith: nil) == nil { throw Rswift.ValidationError(description: "[R.swift] Image named 'launch_logo' is used in storyboard 'LaunchScreen', but couldn't be loaded.") } 104 | if #available(iOS 11.0, *) { 105 | } 106 | } 107 | 108 | fileprivate init() {} 109 | } 110 | 111 | fileprivate init() {} 112 | } 113 | 114 | fileprivate init() {} 115 | } 116 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Vite App for iOS 2 | 3 |
4 |
5 | Logo 6 |
7 |
8 | 9 | [![Build Status](https://travis-ci.org/vitelabs/vite-app-ios.svg?branch=release)](https://travis-ci.org/vitelabs/vite-app-ios) 10 | 11 | ## What is Vite? 12 | 13 | --- 14 | 15 | Vite is a next-generation Reactive Blockchain that adopts a _message-driven, asynchronous architecture and a DAG-based ledger_. The goal for Vite’s design is to _provide a reliable public platform for industrial dApps_, with features of ultra-high throughput and scalability. 16 | 17 | 18 | --- 19 | 20 | ## Guides & Documentation 21 | * [White Paper](https://www.vite.org/whitepaper/vite_en.pdf) 22 | * [Documentation](https://vite.wiki/) 23 | * [Techblog](https://vite.blog/) 24 | 25 | ## Product 26 | * [Desktop Wallet](https://github.com/vitelabs/vite-wallet) 27 | * [Testnet Explorer](https://testnet.vite.net/) 28 | * [Vite.net](https://vite.net/) 29 | 30 | ## Links & Resources 31 | * [Website](https://www.vite.org/) 32 | * [Twitter](https://twitter.com/vitelabs) 33 | * [Telegram](https://t.me/vite_en) 34 | * [Telegram Announcement](https://t.me/vite_ann) 35 | * [Reddit](https://www.reddit.com/r/vitelabs) 36 | * [Discord](https://discordapp.com/invite/CsVY76q) 37 | * [Youtube](https://www.youtube.com/channel/UC8qft2rEzBnP9yJOGdsJBVg) 38 | 39 | ## Build 40 | 1. [Download](https://developer.apple.com/xcode/download/) the Xcode 41 | 2. Clone this repository. 42 | 3. Enter vite-app-ios folder 43 | 4. bundle install 44 | 5. sh bootstrap 45 | 6. Open Vite.xcworkspace 46 | 7. Run 47 | -------------------------------------------------------------------------------- /Vite.xcodeproj/project.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 8 | -------------------------------------------------------------------------------- /Vite.xcodeproj/project.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Vite.xcodeproj/xcshareddata/xcschemes/PushService.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 6 | 9 | 10 | 16 | 22 | 23 | 24 | 30 | 36 | 37 | 38 | 44 | 50 | 51 | 52 | 53 | 54 | 59 | 60 | 61 | 62 | 68 | 69 | 70 | 71 | 72 | 73 | 84 | 85 | 91 | 92 | 93 | 94 | 95 | 96 | 103 | 104 | 110 | 111 | 112 | 113 | 115 | 116 | 119 | 120 | 121 | -------------------------------------------------------------------------------- /Vite.xcodeproj/xcshareddata/xcschemes/Vite.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 32 | 33 | 39 | 40 | 41 | 42 | 43 | 44 | 55 | 57 | 63 | 64 | 65 | 66 | 67 | 68 | 74 | 76 | 82 | 83 | 84 | 85 | 87 | 88 | 91 | 92 | 93 | -------------------------------------------------------------------------------- /Vite.xcodeproj/xcshareddata/xcschemes/ViteDapp.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 | -------------------------------------------------------------------------------- /Vite.xcodeproj/xcshareddata/xcschemes/ViteOfficial.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 52 | 54 | 60 | 61 | 62 | 63 | 69 | 71 | 77 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /Vite.xcodeproj/xcshareddata/xcschemes/ViteTest.xcscheme: -------------------------------------------------------------------------------- 1 | 2 | 5 | 8 | 9 | 15 | 21 | 22 | 23 | 24 | 25 | 30 | 31 | 37 | 38 | 39 | 40 | 41 | 42 | 52 | 54 | 60 | 61 | 62 | 63 | 69 | 71 | 77 | 78 | 79 | 80 | 82 | 83 | 86 | 87 | 88 | -------------------------------------------------------------------------------- /Vite.xcworkspace/contents.xcworkspacedata: -------------------------------------------------------------------------------- 1 | 2 | 4 | 6 | 7 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Vite.xcworkspace/xcshareddata/IDEWorkspaceChecks.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEDidComputeMac32BitWarning 6 | 7 | 8 | 9 | -------------------------------------------------------------------------------- /Vite.xcworkspace/xcshareddata/WorkspaceSettings.xcsettings: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | IDEWorkspaceSharedSettings_AutocreateContextsIfNeeded 6 | 7 | PreviewsEnabled 8 | 9 | 10 | 11 | -------------------------------------------------------------------------------- /Vite/AppDelegate.swift: -------------------------------------------------------------------------------- 1 | // 2 | // AppDelegate.swift 3 | // Vite 4 | // 5 | // Created by Water on 2018/8/15. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import UIKit 10 | import RxSwift 11 | import NSObject_Rx 12 | import Vite_HDWalletKit 13 | import ViteBusiness 14 | //import Firebase 15 | import UserNotifications 16 | 17 | #if OFFICIAL 18 | import ViteCommunity 19 | #endif 20 | 21 | #if TEST 22 | import Bagel 23 | #endif 24 | 25 | class AppDelegate: UIResponder, UIApplicationDelegate { 26 | 27 | let window = UIWindow(frame: UIScreen.main.bounds) 28 | 29 | func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool { 30 | 31 | plog(level: .info, log: "DidFinishLaunching", tag: .life) 32 | 33 | #if TEST 34 | Bagel.start() 35 | #endif 36 | 37 | #if OFFICIAL 38 | // FirebaseApp.configure() 39 | VitePushManager.instance.start() 40 | ViteCommunity.register() 41 | ViteBusinessLanucher.instance.add(homePageSubTabViewController: DiscoverViewController.createNavVC(), atIndex: 1) 42 | #endif 43 | 44 | ViteBusinessLanucher.instance.start(with: window) 45 | return true 46 | } 47 | 48 | func application(_ app: UIApplication, open url: URL, options: [UIApplication.OpenURLOptionsKey: Any] = [:]) -> Bool { 49 | return ViteBusinessLanucher.instance.application(app, open: url) 50 | } 51 | 52 | func application(_ application: UIApplication, continue userActivity: NSUserActivity, restorationHandler: @escaping ([UIUserActivityRestoring]?) -> Void) -> Bool { 53 | if userActivity.activityType == NSUserActivityTypeBrowsingWeb, let url = userActivity.webpageURL { 54 | _ = ViteBusinessLanucher.instance.application(application, open: url) 55 | } 56 | return true 57 | } 58 | 59 | func applicationWillResignActive(_ application: UIApplication) { 60 | plog(level: .info, log: "WillResignActive", tag: .life) 61 | } 62 | 63 | func applicationDidEnterBackground(_ application: UIApplication) { 64 | application.applicationIconBadgeNumber = 0 65 | plog(level: .info, log: "DidEnterBackground", tag: .life) 66 | } 67 | 68 | func applicationWillEnterForeground(_ application: UIApplication) { 69 | plog(level: .info, log: "WillEnterForeground", tag: .life) 70 | } 71 | 72 | func applicationDidBecomeActive(_ application: UIApplication) { 73 | plog(level: .info, log: "DidBecomeActive", tag: .life) 74 | } 75 | 76 | func applicationWillTerminate(_ application: UIApplication) { 77 | plog(level: .info, log: "WillTerminate", tag: .life) 78 | } 79 | #if OFFICIAL 80 | func application(_ application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: Data) { 81 | VitePushManager.instance.model.deviceToken = deviceToken.toHexString() 82 | } 83 | #endif 84 | } 85 | -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@2x-1.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/20pt@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@1x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@1x-1.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@2x-1.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/29pt@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@2x-1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@2x-1.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/40pt@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/50@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/50@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/57@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/57@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/60pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/60pt@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/60pt@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/60pt@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/72@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/72@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/76pt@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/76pt@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/76pt@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/76pt@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "20pt@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "20pt@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "29pt@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "29pt@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "29pt@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "40pt@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "40pt@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "57x57", 47 | "idiom" : "iphone", 48 | "filename" : "57@1x.png", 49 | "scale" : "1x" 50 | }, 51 | { 52 | "size" : "57x57", 53 | "idiom" : "iphone", 54 | "filename" : "57@2x.png", 55 | "scale" : "2x" 56 | }, 57 | { 58 | "size" : "60x60", 59 | "idiom" : "iphone", 60 | "filename" : "60pt@2x.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "60x60", 65 | "idiom" : "iphone", 66 | "filename" : "60pt@3x.png", 67 | "scale" : "3x" 68 | }, 69 | { 70 | "size" : "20x20", 71 | "idiom" : "ipad", 72 | "filename" : "20pt@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "20x20", 77 | "idiom" : "ipad", 78 | "filename" : "20pt@2x-1.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "29x29", 83 | "idiom" : "ipad", 84 | "filename" : "29pt@1x-1.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "29x29", 89 | "idiom" : "ipad", 90 | "filename" : "29pt@2x-1.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "40x40", 95 | "idiom" : "ipad", 96 | "filename" : "40pt@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "40x40", 101 | "idiom" : "ipad", 102 | "filename" : "40pt@2x-1.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "50x50", 107 | "idiom" : "ipad", 108 | "filename" : "50@1x.png", 109 | "scale" : "1x" 110 | }, 111 | { 112 | "size" : "50x50", 113 | "idiom" : "ipad", 114 | "filename" : "50@2x.png", 115 | "scale" : "2x" 116 | }, 117 | { 118 | "size" : "72x72", 119 | "idiom" : "ipad", 120 | "filename" : "72@1x.png", 121 | "scale" : "1x" 122 | }, 123 | { 124 | "size" : "72x72", 125 | "idiom" : "ipad", 126 | "filename" : "72@2x.png", 127 | "scale" : "2x" 128 | }, 129 | { 130 | "size" : "76x76", 131 | "idiom" : "ipad", 132 | "filename" : "76pt@1x.png", 133 | "scale" : "1x" 134 | }, 135 | { 136 | "size" : "76x76", 137 | "idiom" : "ipad", 138 | "filename" : "76pt@2x.png", 139 | "scale" : "2x" 140 | }, 141 | { 142 | "size" : "83.5x83.5", 143 | "idiom" : "ipad", 144 | "filename" : "Icon-App-83.5x83.5@2x.png", 145 | "scale" : "2x" 146 | }, 147 | { 148 | "size" : "1024x1024", 149 | "idiom" : "ios-marketing", 150 | "filename" : "Icon Template.png", 151 | "scale" : "1x" 152 | } 153 | ], 154 | "info" : { 155 | "version" : 1, 156 | "author" : "xcode" 157 | } 158 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/Icon Template.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/Icon Template.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon-dapp.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon-dapp.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "size" : "20x20", 5 | "idiom" : "iphone", 6 | "filename" : "Icon-App-20x20@2x.png", 7 | "scale" : "2x" 8 | }, 9 | { 10 | "size" : "20x20", 11 | "idiom" : "iphone", 12 | "filename" : "Icon-App-20x20@3x.png", 13 | "scale" : "3x" 14 | }, 15 | { 16 | "size" : "29x29", 17 | "idiom" : "iphone", 18 | "filename" : "Icon-App-29x29@1x.png", 19 | "scale" : "1x" 20 | }, 21 | { 22 | "size" : "29x29", 23 | "idiom" : "iphone", 24 | "filename" : "Icon-App-29x29@2x.png", 25 | "scale" : "2x" 26 | }, 27 | { 28 | "size" : "29x29", 29 | "idiom" : "iphone", 30 | "filename" : "Icon-App-29x29@3x.png", 31 | "scale" : "3x" 32 | }, 33 | { 34 | "size" : "40x40", 35 | "idiom" : "iphone", 36 | "filename" : "Icon-App-40x40@2x.png", 37 | "scale" : "2x" 38 | }, 39 | { 40 | "size" : "40x40", 41 | "idiom" : "iphone", 42 | "filename" : "Icon-App-40x40@3x.png", 43 | "scale" : "3x" 44 | }, 45 | { 46 | "size" : "57x57", 47 | "idiom" : "iphone", 48 | "filename" : "Icon-App-57x57@1x.png", 49 | "scale" : "1x" 50 | }, 51 | { 52 | "size" : "57x57", 53 | "idiom" : "iphone", 54 | "filename" : "Icon-App-57x57@2x.png", 55 | "scale" : "2x" 56 | }, 57 | { 58 | "size" : "60x60", 59 | "idiom" : "iphone", 60 | "filename" : "Icon-App-60x60@2x.png", 61 | "scale" : "2x" 62 | }, 63 | { 64 | "size" : "60x60", 65 | "idiom" : "iphone", 66 | "filename" : "Icon-App-60x60@3x.png", 67 | "scale" : "3x" 68 | }, 69 | { 70 | "size" : "20x20", 71 | "idiom" : "ipad", 72 | "filename" : "Icon-App-20x20@1x.png", 73 | "scale" : "1x" 74 | }, 75 | { 76 | "size" : "20x20", 77 | "idiom" : "ipad", 78 | "filename" : "Icon-App-20x20@2x.png", 79 | "scale" : "2x" 80 | }, 81 | { 82 | "size" : "29x29", 83 | "idiom" : "ipad", 84 | "filename" : "Icon-App-29x29@1x.png", 85 | "scale" : "1x" 86 | }, 87 | { 88 | "size" : "29x29", 89 | "idiom" : "ipad", 90 | "filename" : "Icon-App-29x29@2x.png", 91 | "scale" : "2x" 92 | }, 93 | { 94 | "size" : "40x40", 95 | "idiom" : "ipad", 96 | "filename" : "Icon-App-40x40@1x.png", 97 | "scale" : "1x" 98 | }, 99 | { 100 | "size" : "40x40", 101 | "idiom" : "ipad", 102 | "filename" : "Icon-App-40x40@2x.png", 103 | "scale" : "2x" 104 | }, 105 | { 106 | "size" : "50x50", 107 | "idiom" : "ipad", 108 | "filename" : "Icon-Small-50x50@1x.png", 109 | "scale" : "1x" 110 | }, 111 | { 112 | "size" : "50x50", 113 | "idiom" : "ipad", 114 | "filename" : "Icon-Small-50x50@2x.png", 115 | "scale" : "2x" 116 | }, 117 | { 118 | "size" : "72x72", 119 | "idiom" : "ipad", 120 | "filename" : "Icon-App-72x72@1x.png", 121 | "scale" : "1x" 122 | }, 123 | { 124 | "size" : "72x72", 125 | "idiom" : "ipad", 126 | "filename" : "Icon-App-72x72@2x.png", 127 | "scale" : "2x" 128 | }, 129 | { 130 | "size" : "76x76", 131 | "idiom" : "ipad", 132 | "filename" : "Icon-App-76x76@1x.png", 133 | "scale" : "1x" 134 | }, 135 | { 136 | "size" : "76x76", 137 | "idiom" : "ipad", 138 | "filename" : "Icon-App-76x76@2x.png", 139 | "scale" : "2x" 140 | }, 141 | { 142 | "size" : "83.5x83.5", 143 | "idiom" : "ipad", 144 | "filename" : "Icon-App-83.5x83.5@2x.png", 145 | "scale" : "2x" 146 | }, 147 | { 148 | "size" : "1024x1024", 149 | "idiom" : "ios-marketing", 150 | "filename" : "iTunesArtwork@2x.png", 151 | "scale" : "1x" 152 | } 153 | ], 154 | "info" : { 155 | "version" : 1, 156 | "author" : "xcode" 157 | } 158 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-20x20@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-29x29@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-40x40@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-57x57@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-60x60@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-72x72@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-76x76@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-App-83.5x83.5@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@1x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@1x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/Icon-Small-50x50@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/AppIcon.appiconset/iTunesArtwork@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "info" : { 3 | "version" : 1, 4 | "author" : "xcode" 5 | } 6 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_tabbar_discover@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_tabbar_discover@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover.imageset/icon_tabbar_discover@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/icon_tabbar_discover.imageset/icon_tabbar_discover@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover.imageset/icon_tabbar_discover@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/icon_tabbar_discover.imageset/icon_tabbar_discover@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover_select.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "scale" : "1x" 6 | }, 7 | { 8 | "idiom" : "universal", 9 | "filename" : "icon_tabbar_discover_select@2x.png", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "filename" : "icon_tabbar_discover_select@3x.png", 15 | "scale" : "3x" 16 | } 17 | ], 18 | "info" : { 19 | "version" : 1, 20 | "author" : "xcode" 21 | } 22 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover_select.imageset/icon_tabbar_discover_select@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/icon_tabbar_discover_select.imageset/icon_tabbar_discover_select@2x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/icon_tabbar_discover_select.imageset/icon_tabbar_discover_select@3x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/icon_tabbar_discover_select.imageset/icon_tabbar_discover_select@3x.png -------------------------------------------------------------------------------- /Vite/Assets.xcassets/launch_logo.imageset/Contents.json: -------------------------------------------------------------------------------- 1 | { 2 | "images" : [ 3 | { 4 | "idiom" : "universal", 5 | "filename" : "launch_logo.pdf", 6 | "scale" : "1x" 7 | }, 8 | { 9 | "idiom" : "universal", 10 | "scale" : "2x" 11 | }, 12 | { 13 | "idiom" : "universal", 14 | "scale" : "3x" 15 | } 16 | ], 17 | "info" : { 18 | "version" : 1, 19 | "author" : "xcode" 20 | } 21 | } -------------------------------------------------------------------------------- /Vite/Assets.xcassets/launch_logo.imageset/launch_logo.pdf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Assets.xcassets/launch_logo.imageset/launch_logo.pdf -------------------------------------------------------------------------------- /Vite/DenyPtrace.c: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // Vite 4 | // 5 | // Created by Water on 2019/1/24. 6 | // Copyright © 2019 vite labs. All rights reserved. 7 | // 8 | 9 | #include 10 | #import 11 | #import 12 | #import 13 | #define A(c) (c) - 0x19 14 | #define UNHIDE_STR(str) do { char *p = str; while (*p) *p++ += 0x19; } while (0) 15 | #define HIDE_STR(str) do { char *p = str; while (*p) *p++ -= 0x19; } while (0) 16 | typedef int (*ptrace_ptr_t)(int _request, pid_t _pid, caddr_t _addr, int _data); 17 | #if !defined(PT_DENY_ATTACH) 18 | #define PT_DENY_ATTACH 31 19 | #endif 20 | 21 | void disable_gdb() { 22 | void* handle = dlopen(0, RTLD_GLOBAL | RTLD_NOW); 23 | char str[ ] = { 24 | A('p'), A('t'), A('r'), A('a'), A('c'), 25 | A('e'), 0 26 | }; 27 | UNHIDE_STR(str); 28 | char string[6]; 29 | int i; 30 | for(i=0;i<6;i++){ 31 | string[i]=str[i]; 32 | } 33 | string[i]='\0'; 34 | ptrace_ptr_t ptrace_ptr = dlsym(handle, string); 35 | ptrace_ptr(PT_DENY_ATTACH, 0, 0, 0); 36 | dlclose(handle); 37 | } 38 | -------------------------------------------------------------------------------- /Vite/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleAllowMixedLocalizations 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | $(PRODUCT_NAME) 11 | CFBundleDocumentTypes 12 | 13 | 14 | CFBundleTypeIconFiles 15 | 16 | CFBundleTypeName 17 | Grin Slate Initial File 18 | CFBundleTypeRole 19 | Editor 20 | LSHandlerRank 21 | Owner 22 | LSItemContentTypes 23 | 24 | com.vite.grinwallet.grinslateinitial 25 | 26 | 27 | 28 | CFBundleTypeIconFiles 29 | 30 | CFBundleTypeName 31 | Grin Slate Response File 32 | CFBundleTypeRole 33 | Editor 34 | LSHandlerRank 35 | Owner 36 | LSItemContentTypes 37 | 38 | com.vite.grinwallet.grinslateresponse 39 | 40 | 41 | 42 | CFBundleTypeIconFiles 43 | 44 | CFBundleTypeName 45 | Grin Slate File 46 | CFBundleTypeRole 47 | Viewer 48 | LSHandlerRank 49 | Default 50 | LSItemContentTypes 51 | 52 | public.data 53 | public.content 54 | 55 | 56 | 57 | CFBundleExecutable 58 | $(EXECUTABLE_NAME) 59 | CFBundleIdentifier 60 | $(PRODUCT_BUNDLE_IDENTIFIER) 61 | CFBundleInfoDictionaryVersion 62 | 6.0 63 | CFBundleName 64 | $(PRODUCT_NAME) 65 | CFBundlePackageType 66 | APPL 67 | CFBundleShortVersionString 68 | $(MARKETING_VERSION) 69 | CFBundleURLTypes 70 | 71 | 72 | CFBundleTypeRole 73 | Editor 74 | CFBundleURLName 75 | net.vite.wallet 76 | CFBundleURLSchemes 77 | 78 | viteapp 79 | 80 | 81 | 82 | CFBundleVersion 83 | $(CURRENT_PROJECT_VERSION) 84 | ITSAppUsesNonExemptEncryption 85 | 86 | LSRequiresIPhoneOS 87 | 88 | LSSupportsOpeningDocumentsInPlace 89 | 90 | NSAppTransportSecurity 91 | 92 | NSAllowsArbitraryLoads 93 | 94 | 95 | NSCameraUsageDescription 96 | This app uses the camera to read QR codes 97 | NSFaceIDUsageDescription 98 | This app can unlock with Face ID 99 | NSPhotoLibraryAddUsageDescription 100 | This app uses the album to import QR codes 101 | NSPhotoLibraryUsageDescription 102 | This app uses the album to import QR codes 103 | UIBackgroundModes 104 | 105 | remote-notification 106 | 107 | UILaunchStoryboardName 108 | LaunchScreen 109 | UIRequiredDeviceCapabilities 110 | 111 | armv7 112 | 113 | UISupportedInterfaceOrientations 114 | 115 | UIInterfaceOrientationPortrait 116 | 117 | UISupportedInterfaceOrientations~ipad 118 | 119 | UIInterfaceOrientationPortrait 120 | UIInterfaceOrientationPortraitUpsideDown 121 | UIInterfaceOrientationLandscapeLeft 122 | UIInterfaceOrientationLandscapeRight 123 | 124 | UIViewControllerBasedStatusBarAppearance 125 | 126 | UTExportedTypeDeclarations 127 | 128 | 129 | UTTypeConformsTo 130 | 131 | public.data 132 | public.content 133 | 134 | UTTypeDescription 135 | Grin Slate Initial File 136 | UTTypeIconFiles 137 | 138 | UTTypeIdentifier 139 | com.vite.grinwallet.grinslateinitial 140 | UTTypeTagSpecification 141 | 142 | public.filename-extension 143 | 144 | grinslate 145 | 146 | 147 | 148 | 149 | UTTypeConformsTo 150 | 151 | public.data 152 | public.content 153 | 154 | UTTypeDescription 155 | Grin Slate Response File 156 | UTTypeIconFiles 157 | 158 | UTTypeIdentifier 159 | com.vite.grinwallet.grinslateresponse 160 | UTTypeTagSpecification 161 | 162 | public.filename-extension 163 | 164 | response 165 | 166 | 167 | 168 | 169 | UTTypeConformsTo 170 | 171 | public.data 172 | public.content 173 | 174 | UTTypeDescription 175 | Grin Slate File 176 | UTTypeIconFiles 177 | 178 | UTTypeIdentifier 179 | com.vite.grinwallet.grinslatejson 180 | UTTypeTagSpecification 181 | 182 | public.filename-extension 183 | 184 | json 185 | tx 186 | txt 187 | 188 | 189 | 190 | 191 | 192 | 193 | -------------------------------------------------------------------------------- /Vite/LaunchScreen.storyboard: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | -------------------------------------------------------------------------------- /Vite/Resource/Firebase/enterprise/GoogleService-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | AD_UNIT_ID_FOR_BANNER_TEST 6 | ca-app-pub-3940256099942544/2934735716 7 | AD_UNIT_ID_FOR_INTERSTITIAL_TEST 8 | ca-app-pub-3940256099942544/4411468910 9 | CLIENT_ID 10 | 249575909042-fl4265e88c0vp5n2vbcdt8l87is08fuu.apps.googleusercontent.com 11 | REVERSED_CLIENT_ID 12 | com.googleusercontent.apps.249575909042-fl4265e88c0vp5n2vbcdt8l87is08fuu 13 | API_KEY 14 | AIzaSyDn0AleV96MCXGn0Wd47tYYwubboDx2lLs 15 | GCM_SENDER_ID 16 | 249575909042 17 | PLIST_VERSION 18 | 1 19 | BUNDLE_ID 20 | net.vite.wallet.ep 21 | PROJECT_ID 22 | vitelabs-212608 23 | STORAGE_BUCKET 24 | vitelabs-212608.appspot.com 25 | IS_ADS_ENABLED 26 | 27 | IS_ANALYTICS_ENABLED 28 | 29 | IS_APPINVITE_ENABLED 30 | 31 | IS_GCM_ENABLED 32 | 33 | IS_SIGNIN_ENABLED 34 | 35 | GOOGLE_APP_ID 36 | 1:249575909042:ios:b76164cbd4bc00ab 37 | DATABASE_URL 38 | https://vitelabs-212608.firebaseio.com 39 | 40 | -------------------------------------------------------------------------------- /Vite/Resource/Firebase/official/GoogleService-Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CLIENT_ID 6 | 386323295256-27hipt1g950jj6fsv6qctm6vdr4mi3h7.apps.googleusercontent.com 7 | REVERSED_CLIENT_ID 8 | com.googleusercontent.apps.386323295256-27hipt1g950jj6fsv6qctm6vdr4mi3h7 9 | API_KEY 10 | AIzaSyDQC9J3TPJqgTa2mkadwquh8gQd7UncSt0 11 | GCM_SENDER_ID 12 | 386323295256 13 | PLIST_VERSION 14 | 1 15 | BUNDLE_ID 16 | net.vite.wallet 17 | PROJECT_ID 18 | vite-wallet-ios-app 19 | STORAGE_BUCKET 20 | vite-wallet-ios-app.appspot.com 21 | IS_ADS_ENABLED 22 | 23 | IS_ANALYTICS_ENABLED 24 | 25 | IS_APPINVITE_ENABLED 26 | 27 | IS_GCM_ENABLED 28 | 29 | IS_SIGNIN_ENABLED 30 | 31 | GOOGLE_APP_ID 32 | 1:386323295256:ios:8535365715c3a766ec276d 33 | 34 | -------------------------------------------------------------------------------- /Vite/Resource/Localization/Localizable.strings: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/vitelabs/vite-app-ios/59d9b627c0b5997dd47f7ff99fd43ac3018a9a75/Vite/Resource/Localization/Localizable.strings -------------------------------------------------------------------------------- /Vite/Resource/Localization/en.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Vite 4 | 5 | Created by Water on 2018/8/20. 6 | Copyright © 2018 vite labs. All rights reserved. 7 | */ 8 | 9 | 10 | -------------------------------------------------------------------------------- /Vite/Resource/Localization/zh-Hans.lproj/Localizable.strings: -------------------------------------------------------------------------------- 1 | /* 2 | Localizable.strings 3 | Vite 4 | 5 | Created by Water on 2018/8/20. 6 | Copyright © 2018年 vite labs. All rights reserved. 7 | */ 8 | 9 | -------------------------------------------------------------------------------- /Vite/Vite-Bridging-Header.h: -------------------------------------------------------------------------------- 1 | // 2 | // Vite-Bridging-Header.h 3 | // Vite 4 | // 5 | // Created by Water on 2018/9/17. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | 10 | void disable_gdb(); 11 | -------------------------------------------------------------------------------- /Vite/Vite.entitlements: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | aps-environment 6 | development 7 | com.apple.developer.associated-domains 8 | 9 | applinks:app.vite.net 10 | applinks:vite-wallet-test2.netlify.com 11 | 12 | keychain-access-groups 13 | 14 | $(AppIdentifierPrefix)com.vite.org.Vite 15 | 16 | 17 | 18 | -------------------------------------------------------------------------------- /Vite/en.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | Vite 4 | 5 | Created by Stone on 2018/10/18. 6 | Copyright © 2018年 vite labs. All rights reserved. 7 | */ 8 | 9 | NSCameraUsageDescription = "This app uses the camera to read QR codes"; 10 | NSFaceIDUsageDescription = "This app can unlock with Face ID"; 11 | NSPhotoLibraryAddUsageDescription = "This app uses the album to import QR codes"; 12 | NSPhotoLibraryUsageDescription = "This app uses the album to import QR codes"; 13 | -------------------------------------------------------------------------------- /Vite/main.swift: -------------------------------------------------------------------------------- 1 | // 2 | // main.swift 3 | // Vite 4 | // 5 | // Created by Water on 2019/1/24. 6 | // Copyright © 2019 vite labs. All rights reserved. 7 | // 8 | import Foundation 9 | import UIKit 10 | 11 | autoreleasepool { 12 | #if !(DEBUG) 13 | disable_gdb() 14 | #endif 15 | UIApplicationMain( 16 | CommandLine.argc, CommandLine.unsafeArgv, 17 | nil, NSStringFromClass(AppDelegate.self) 18 | ) 19 | } 20 | -------------------------------------------------------------------------------- /Vite/zh-Hans.lproj/InfoPlist.strings: -------------------------------------------------------------------------------- 1 | /* 2 | InfoPlist.strings 3 | Vite 4 | 5 | Created by Stone on 2018/10/18. 6 | Copyright © 2018年 vite labs. All rights reserved. 7 | */ 8 | 9 | NSCameraUsageDescription = "App 可以通过相机扫描二维码地址"; 10 | NSFaceIDUsageDescription = "App 可以通过 Face ID 进行解锁"; 11 | NSPhotoLibraryAddUsageDescription = "App 可以通过相册识别二维码地址"; 12 | NSPhotoLibraryUsageDescription = "App 可以通过相册识别二维码地址"; 13 | -------------------------------------------------------------------------------- /ViteDapp/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleAllowMixedLocalizations 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | Dapp Master 11 | CFBundleDocumentTypes 12 | 13 | 14 | CFBundleTypeIconFiles 15 | 16 | CFBundleTypeName 17 | Grin Slate Initial File 18 | CFBundleTypeRole 19 | Editor 20 | LSHandlerRank 21 | Owner 22 | LSItemContentTypes 23 | 24 | com.vite.grinwallet.grinslateinitial 25 | 26 | 27 | 28 | CFBundleTypeIconFiles 29 | 30 | CFBundleTypeName 31 | Grin Slate Response File 32 | CFBundleTypeRole 33 | Editor 34 | LSHandlerRank 35 | Owner 36 | LSItemContentTypes 37 | 38 | com.vite.grinwallet.grinslateresponse 39 | 40 | 41 | 42 | CFBundleTypeIconFiles 43 | 44 | CFBundleTypeName 45 | Grin Slate File 46 | CFBundleTypeRole 47 | Editor 48 | LSHandlerRank 49 | Owner 50 | LSItemContentTypes 51 | 52 | com.vite.grinwallet.grinslatejson 53 | 54 | 55 | 56 | CFBundleExecutable 57 | $(EXECUTABLE_NAME) 58 | CFBundleIdentifier 59 | $(PRODUCT_BUNDLE_IDENTIFIER) 60 | CFBundleInfoDictionaryVersion 61 | 6.0 62 | CFBundleName 63 | $(PRODUCT_NAME) 64 | CFBundlePackageType 65 | APPL 66 | CFBundleShortVersionString 67 | $(MARKETING_VERSION) 68 | CFBundleVersion 69 | $(CURRENT_PROJECT_VERSION) 70 | ITSAppUsesNonExemptEncryption 71 | 72 | LSRequiresIPhoneOS 73 | 74 | LSSupportsOpeningDocumentsInPlace 75 | 76 | NSAppTransportSecurity 77 | 78 | NSAllowsArbitraryLoads 79 | 80 | 81 | NSCameraUsageDescription 82 | This app uses the camera to read QR codes 83 | NSFaceIDUsageDescription 84 | This app can unlock with Face ID 85 | NSPhotoLibraryAddUsageDescription 86 | This app uses the album to import QR codes 87 | NSPhotoLibraryUsageDescription 88 | This app uses the album to import QR codes 89 | UIBackgroundModes 90 | 91 | remote-notification 92 | 93 | UILaunchStoryboardName 94 | LaunchScreen 95 | UIRequiredDeviceCapabilities 96 | 97 | armv7 98 | 99 | UISupportedInterfaceOrientations 100 | 101 | UIInterfaceOrientationPortrait 102 | 103 | UISupportedInterfaceOrientations~ipad 104 | 105 | UIInterfaceOrientationPortrait 106 | UIInterfaceOrientationPortraitUpsideDown 107 | UIInterfaceOrientationLandscapeLeft 108 | UIInterfaceOrientationLandscapeRight 109 | 110 | UIViewControllerBasedStatusBarAppearance 111 | 112 | UTExportedTypeDeclarations 113 | 114 | 115 | UTTypeConformsTo 116 | 117 | public.data 118 | 119 | UTTypeDescription 120 | Grin Slate Initial File 121 | UTTypeIconFiles 122 | 123 | UTTypeIdentifier 124 | com.vite.grinwallet.grinslateinitial 125 | UTTypeTagSpecification 126 | 127 | public.filename-extension 128 | 129 | grinslate 130 | 131 | 132 | 133 | 134 | UTTypeDescription 135 | Grin Slate Response File 136 | UTTypeIconFiles 137 | 138 | UTTypeIdentifier 139 | com.vite.grinwallet.grinslateresponse 140 | UTTypeTagSpecification 141 | 142 | public.filename-extension 143 | 144 | response 145 | 146 | 147 | 148 | 149 | UTTypeDescription 150 | Grin Slate File 151 | UTTypeIconFiles 152 | 153 | UTTypeIdentifier 154 | com.vite.grinwallet.grinslatejson 155 | UTTypeTagSpecification 156 | 157 | public.filename-extension 158 | 159 | json 160 | 161 | 162 | 163 | 164 | 165 | 166 | -------------------------------------------------------------------------------- /ViteOfficial/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleAllowMixedLocalizations 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | $(PRODUCT_NAME) 11 | CFBundleDocumentTypes 12 | 13 | 14 | CFBundleTypeIconFiles 15 | 16 | CFBundleTypeName 17 | Grin Slate Initial File 18 | CFBundleTypeRole 19 | Editor 20 | LSHandlerRank 21 | Owner 22 | LSItemContentTypes 23 | 24 | com.vite.grinwallet.grinslateinitial 25 | 26 | 27 | 28 | CFBundleTypeIconFiles 29 | 30 | CFBundleTypeName 31 | Grin Slate Response File 32 | CFBundleTypeRole 33 | Editor 34 | LSHandlerRank 35 | Owner 36 | LSItemContentTypes 37 | 38 | com.vite.grinwallet.grinslateresponse 39 | 40 | 41 | 42 | CFBundleTypeIconFiles 43 | 44 | CFBundleTypeName 45 | Grin Slate File 46 | CFBundleTypeRole 47 | Editor 48 | LSHandlerRank 49 | Owner 50 | LSItemContentTypes 51 | 52 | com.vite.grinwallet.grinslatejson 53 | 54 | 55 | 56 | CFBundleExecutable 57 | $(EXECUTABLE_NAME) 58 | CFBundleIdentifier 59 | $(PRODUCT_BUNDLE_IDENTIFIER) 60 | CFBundleInfoDictionaryVersion 61 | 6.0 62 | CFBundleName 63 | $(PRODUCT_NAME) 64 | CFBundlePackageType 65 | APPL 66 | CFBundleShortVersionString 67 | $(MARKETING_VERSION) 68 | CFBundleURLTypes 69 | 70 | 71 | CFBundleTypeRole 72 | Editor 73 | CFBundleURLName 74 | net.vite.wallet 75 | CFBundleURLSchemes 76 | 77 | viteapp 78 | 79 | 80 | 81 | CFBundleVersion 82 | $(CURRENT_PROJECT_VERSION) 83 | ITSAppUsesNonExemptEncryption 84 | 85 | LSRequiresIPhoneOS 86 | 87 | LSSupportsOpeningDocumentsInPlace 88 | 89 | NSAppTransportSecurity 90 | 91 | NSAllowsArbitraryLoads 92 | 93 | 94 | NSCameraUsageDescription 95 | This app uses the camera to read QR codes 96 | NSFaceIDUsageDescription 97 | This app can unlock with Face ID 98 | NSPhotoLibraryAddUsageDescription 99 | This app uses the album to import QR codes 100 | NSPhotoLibraryUsageDescription 101 | This app uses the album to import QR codes 102 | UIBackgroundModes 103 | 104 | remote-notification 105 | 106 | UILaunchStoryboardName 107 | LaunchScreen 108 | UIRequiredDeviceCapabilities 109 | 110 | armv7 111 | 112 | UISupportedInterfaceOrientations 113 | 114 | UIInterfaceOrientationPortrait 115 | 116 | UISupportedInterfaceOrientations~ipad 117 | 118 | UIInterfaceOrientationPortrait 119 | UIInterfaceOrientationPortraitUpsideDown 120 | UIInterfaceOrientationLandscapeLeft 121 | UIInterfaceOrientationLandscapeRight 122 | 123 | UIViewControllerBasedStatusBarAppearance 124 | 125 | UTExportedTypeDeclarations 126 | 127 | 128 | UTTypeConformsTo 129 | 130 | public.data 131 | public.content 132 | 133 | UTTypeDescription 134 | Grin Slate Initial File 135 | UTTypeIconFiles 136 | 137 | UTTypeIdentifier 138 | com.vite.grinwallet.grinslateinitial 139 | UTTypeTagSpecification 140 | 141 | public.filename-extension 142 | 143 | grinslate 144 | 145 | 146 | 147 | 148 | UTTypeConformsTo 149 | 150 | public.data 151 | public.content 152 | 153 | UTTypeDescription 154 | Grin Slate Response File 155 | UTTypeIconFiles 156 | 157 | UTTypeIdentifier 158 | com.vite.grinwallet.grinslateresponse 159 | UTTypeTagSpecification 160 | 161 | public.filename-extension 162 | 163 | response 164 | 165 | 166 | 167 | 168 | UTTypeConformsTo 169 | 170 | public.data 171 | public.content 172 | 173 | UTTypeDescription 174 | Grin Slate File 175 | UTTypeIconFiles 176 | 177 | UTTypeIdentifier 178 | com.vite.grinwallet.grinslatejson 179 | UTTypeTagSpecification 180 | 181 | public.filename-extension 182 | 183 | json 184 | tx 185 | txt 186 | 187 | 188 | 189 | 190 | 191 | 192 | -------------------------------------------------------------------------------- /ViteTest/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleAllowMixedLocalizations 6 | 7 | CFBundleDevelopmentRegion 8 | $(DEVELOPMENT_LANGUAGE) 9 | CFBundleDisplayName 10 | $(PRODUCT_NAME) 11 | CFBundleDocumentTypes 12 | 13 | 14 | CFBundleTypeIconFiles 15 | 16 | CFBundleTypeName 17 | Grin Slate Initial File 18 | CFBundleTypeRole 19 | Editor 20 | LSHandlerRank 21 | Owner 22 | LSItemContentTypes 23 | 24 | com.vite.grinwallet.grinslateinitial 25 | 26 | 27 | 28 | CFBundleTypeIconFiles 29 | 30 | CFBundleTypeName 31 | Grin Slate Response File 32 | CFBundleTypeRole 33 | Editor 34 | LSHandlerRank 35 | Owner 36 | LSItemContentTypes 37 | 38 | com.vite.grinwallet.grinslateresponse 39 | 40 | 41 | 42 | CFBundleTypeIconFiles 43 | 44 | CFBundleTypeName 45 | Grin Slate File 46 | CFBundleTypeRole 47 | Viewer 48 | LSHandlerRank 49 | Default 50 | LSItemContentTypes 51 | 52 | public.data 53 | public.content 54 | 55 | 56 | 57 | CFBundleExecutable 58 | $(EXECUTABLE_NAME) 59 | CFBundleIdentifier 60 | $(PRODUCT_BUNDLE_IDENTIFIER) 61 | CFBundleInfoDictionaryVersion 62 | 6.0 63 | CFBundleName 64 | $(PRODUCT_NAME) 65 | CFBundlePackageType 66 | APPL 67 | CFBundleShortVersionString 68 | $(MARKETING_VERSION) 69 | CFBundleURLTypes 70 | 71 | 72 | CFBundleTypeRole 73 | Editor 74 | CFBundleURLName 75 | net.vite.wallet 76 | CFBundleURLSchemes 77 | 78 | viteapp 79 | 80 | 81 | 82 | CFBundleVersion 83 | $(CURRENT_PROJECT_VERSION) 84 | ITSAppUsesNonExemptEncryption 85 | 86 | LSRequiresIPhoneOS 87 | 88 | LSSupportsOpeningDocumentsInPlace 89 | 90 | NSAppTransportSecurity 91 | 92 | NSAllowsArbitraryLoads 93 | 94 | 95 | NSBonjourServices 96 | 97 | _Bagel._tcp 98 | 99 | NSCameraUsageDescription 100 | This app uses the camera to read QR codes 101 | NSFaceIDUsageDescription 102 | This app can unlock with Face ID 103 | NSLocalNetworkUsageDescription 104 | Network access required 105 | NSPhotoLibraryAddUsageDescription 106 | This app uses the album to import QR codes 107 | NSPhotoLibraryUsageDescription 108 | This app uses the album to import QR codes 109 | UIBackgroundModes 110 | 111 | remote-notification 112 | 113 | UILaunchStoryboardName 114 | LaunchScreen 115 | UIRequiredDeviceCapabilities 116 | 117 | armv7 118 | 119 | UISupportedInterfaceOrientations 120 | 121 | UIInterfaceOrientationPortrait 122 | 123 | UISupportedInterfaceOrientations~ipad 124 | 125 | UIInterfaceOrientationPortrait 126 | UIInterfaceOrientationPortraitUpsideDown 127 | UIInterfaceOrientationLandscapeLeft 128 | UIInterfaceOrientationLandscapeRight 129 | 130 | UIViewControllerBasedStatusBarAppearance 131 | 132 | UTExportedTypeDeclarations 133 | 134 | 135 | UTTypeConformsTo 136 | 137 | public.data 138 | public.content 139 | 140 | UTTypeDescription 141 | Grin Slate Initial File 142 | UTTypeIconFiles 143 | 144 | UTTypeIdentifier 145 | com.vite.grinwallet.grinslateinitial 146 | UTTypeTagSpecification 147 | 148 | public.filename-extension 149 | 150 | grinslate 151 | 152 | 153 | 154 | 155 | UTTypeConformsTo 156 | 157 | public.data 158 | public.content 159 | 160 | UTTypeDescription 161 | Grin Slate Response File 162 | UTTypeIconFiles 163 | 164 | UTTypeIdentifier 165 | com.vite.grinwallet.grinslateresponse 166 | UTTypeTagSpecification 167 | 168 | public.filename-extension 169 | 170 | response 171 | 172 | 173 | 174 | 175 | UTTypeConformsTo 176 | 177 | public.data 178 | public.content 179 | 180 | UTTypeDescription 181 | Grin Slate File 182 | UTTypeIconFiles 183 | 184 | UTTypeIdentifier 185 | com.vite.grinwallet.grinslatejson 186 | UTTypeTagSpecification 187 | 188 | public.filename-extension 189 | 190 | json 191 | tx 192 | txt 193 | 194 | 195 | 196 | 197 | 198 | 199 | -------------------------------------------------------------------------------- /ViteTests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | $(CURRENT_PROJECT_VERSION) 21 | 22 | 23 | -------------------------------------------------------------------------------- /ViteTests/ViteCryptoTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViteCryptoTest.swift 3 | // ViteTests 4 | // 5 | // Created by Stone on 2018/10/8. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | import Vite_HDWalletKit 11 | @testable import Vite 12 | 13 | class ViteCryptoTest: XCTestCase { 14 | 15 | func testMnemonicCrypto() { 16 | 17 | let mnemonic = Mnemonic.randomGenerator(strength: .strong, language: .english) 18 | let ciphertext = HDWalletStorage.Wallet.encrypt(plaintext: mnemonic, encryptKey: "123456")! 19 | let ret = HDWalletStorage.Wallet.decrypt(ciphertext: ciphertext, encryptKey: "123456")! 20 | XCTAssertEqual(mnemonic, ret) 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /ViteTests/ViteInputValidTest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViteInputValidTest.swift 3 | // ViteTests 4 | // 5 | // Created by Water on 2018/9/14. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | import Vite_HDWalletKit 11 | @testable import Vite 12 | 13 | class ViteInputValidTest: XCTestCase { 14 | override func setUp() { 15 | super.setUp() 16 | } 17 | 18 | override func tearDown() { 19 | super.tearDown() 20 | } 21 | 22 | func testWalletName() { 23 | let name1 = "fsdfsdf_12121####" 24 | XCTAssertEqual(ViteInputValidator.isValidWalletName(str: name1), false) 25 | 26 | 27 | let name2 = "fsdfsdf_12121你好" 28 | XCTAssertEqual(ViteInputValidator.isValidWalletName(str: name2), true) 29 | 30 | let name3 = "fsdfsdf_12121#11@" 31 | XCTAssertEqual(ViteInputValidator.isValidWalletName(str: name3), false) 32 | 33 | let name4 = "fsdfdf___asdf您好您好您好您好您好asdfs您好df_12121#11@" 34 | XCTAssertEqual(ViteInputValidator.isValidWalletName(str: name4), false) 35 | 36 | let pw1 = "12122&" 37 | XCTAssertEqual(ViteInputValidator.isValidWalletPassword(str: pw1), false) 38 | 39 | let pw2 = "121225" 40 | XCTAssertEqual(ViteInputValidator.isValidWalletPassword(str: pw2), true) 41 | 42 | let pw3 = "12122a" 43 | XCTAssertEqual(ViteInputValidator.isValidWalletPassword(str: pw3), false) 44 | 45 | let pw4 = "121" 46 | XCTAssertEqual(ViteInputValidator.isValidWalletPassword(str: pw4), false) 47 | 48 | } 49 | 50 | func testImportMnemonicStr() { 51 | var str = "lake clean pause frost snack step gym response demand rent retreat topple upset teach daring wrist team destroy give afford noise fire dice female" 52 | str = ViteInputValidator.handleMnemonicStrSpacing(str) 53 | let result = Mnemonic.mnemonic_check(str) 54 | XCTAssertEqual(result, true) 55 | 56 | var str1 = "lake clean pause frost snack step gym response demand rent retreat topple upset teach daring wrist team destroy give afford noise fire dice female" 57 | str1 = ViteInputValidator.handleMnemonicStrSpacing(str1) 58 | let result1 = Mnemonic.mnemonic_check(str1) 59 | XCTAssertEqual(result1, true) 60 | 61 | var str2 = "lake clean pause frost snack step gym response demand rent retreat topple upset teach daring \nwrist team destroy give afford noise fire dice female\n" 62 | str2 = ViteInputValidator.handleMnemonicStrSpacing(str2) 63 | let result2 = Mnemonic.mnemonic_check(str2) 64 | XCTAssertEqual(result2, true) 65 | } 66 | 67 | } 68 | 69 | -------------------------------------------------------------------------------- /ViteTests/ViteNetworkTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViteNetworkTests.swift 3 | // ViteTests 4 | // 5 | // Created by Stone on 2018/9/7. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | import PromiseKit 11 | import BigInt 12 | import ObjectMapper 13 | import Alamofire 14 | import Moya 15 | import SwiftyJSON 16 | @testable import Vite 17 | 18 | class ViteNetworkTests: XCTestCase { 19 | 20 | override func setUp() { 21 | super.setUp() 22 | // Put setup code here. This method is called before the invocation of each test method in the class. 23 | } 24 | 25 | override func tearDown() { 26 | // Put teardown code here. This method is called after the invocation of each test method in the class. 27 | super.tearDown() 28 | } 29 | 30 | func testExample() { 31 | // This is an example of a functional test case. 32 | // Use XCTAssert and related functions to verify your tests produce the correct results. 33 | } 34 | 35 | func testPerformanceExample() { 36 | // This is an example of a performance test case. 37 | self.measure { 38 | // Put the code you want to measure the time of here. 39 | } 40 | } 41 | 42 | func async(_ block: ( @escaping () -> () ) -> ()) { 43 | 44 | let expect = expectation(description: "method") 45 | block { 46 | expect.fulfill() 47 | } 48 | waitForExpectations(timeout: 60, handler: nil) 49 | print("🍺🍺🍺🍺🍺🍺") 50 | 51 | } 52 | 53 | func testSnapshotChainProvider() { 54 | 55 | async { (completion) in 56 | Provider.instance.getSnapshotChainHeight(completion: { result in 57 | switch result { 58 | case .success(let height): 59 | print("🏆snapschot china height: \(height)") 60 | case .failure(let error): 61 | print("🤯🤯🤯🤯🤯🤯\(error)") 62 | } 63 | completion() 64 | }) 65 | } 66 | 67 | } 68 | 69 | func testAccountProvider_GetTransactionsRequest() { 70 | async { (completion) in 71 | Provider.instance.getTransactions(address: Address(string: "vite_7945df07bbf55f5afc76360a263b0870795ce5d1ecea36b786"), hash: nil, count: 5, completion: { result in 72 | switch result { 73 | case .success(let transactions): 74 | print("🏆\(transactions)") 75 | case .failure(let error): 76 | print("🤯🤯🤯🤯🤯🤯\(error)") 77 | } 78 | completion() 79 | }) 80 | } 81 | 82 | } 83 | 84 | func testAccountProvider_GetBalanceInfosRequest() { 85 | async { (completion) in 86 | Provider.instance.getBalanceInfos(address: Address(string: "vite_7945df07bbf55f5afc76360a263b0870795ce5d1ecea36b786"), completion: { result in 87 | switch result { 88 | case .success(let balanceInfos): 89 | print("🏆\(balanceInfos)") 90 | case .failure(let error): 91 | print("🤯🤯🤯🤯🤯🤯\(error)") 92 | } 93 | completion() 94 | }) 95 | } 96 | } 97 | 98 | func testAddress() { 99 | let correct = "vite_4827fbc6827797ac4d9e814affb34b4c5fa85d39bf96d105e7" 100 | let error = "vite_4827fbc6827797ac4d9e814affb34b4c5fa85d39bf96d105e6" 101 | XCTAssert(Address.isValid(string: correct)) 102 | XCTAssert(!Address.isValid(string: error)) 103 | } 104 | 105 | func testGetTokenInfo() { 106 | async { (completion) in 107 | Provider.instance.getTokenForId("tti_000000000000000000004cfd", completion: { result in 108 | switch result { 109 | case .success(let token): 110 | if let token = token { 111 | print("🏆\(token)") 112 | } else { 113 | print("🏆 token not found") 114 | } 115 | case .failure(let error): 116 | print("🤯🤯🤯🤯🤯🤯\(error)") 117 | } 118 | completion() 119 | }) 120 | } 121 | } 122 | } 123 | 124 | extension ViteNetworkTests { 125 | func testGetAppUpdate() { 126 | async { (completion) in 127 | ServerProvider.instance.getAppUpdate(completion: { (result) in 128 | switch result { 129 | case .success(let info): 130 | print("🏆\(info)") 131 | case .failure(let error): 132 | print("🤯🤯🤯🤯🤯🤯\(error)") 133 | } 134 | completion() 135 | }) 136 | } 137 | } 138 | 139 | func testGetAppSettingsConfig() { 140 | async { (completion) in 141 | ServerProvider.instance.getAppSettingsConfig(completion: { (result) in 142 | switch result { 143 | case .success(let config): 144 | print("🏆\(String(describing: config))") 145 | case .failure(let error): 146 | print("🤯🤯🤯🤯🤯🤯\(error)") 147 | } 148 | completion() 149 | }) 150 | } 151 | } 152 | 153 | func testGetDefaultTokens() { 154 | async { (completion) in 155 | ServerProvider.instance.getAppDefaultTokens(completion: { (result) in 156 | switch result { 157 | case .success(let string): 158 | print("🏆\(string)") 159 | case .failure(let error): 160 | print("🤯🤯🤯🤯🤯🤯\(error)") 161 | } 162 | completion() 163 | }) 164 | } 165 | } 166 | } 167 | 168 | extension ViteNetworkTests { 169 | func testGetPledgest() { 170 | async { (completion) in 171 | Provider.instance.getPledges(address: Address(string: "vite_847e1672c9a775ca0f3c3a2d3bf389ca466e5501cbecdb7107"), index: 0, count: 50, completion: { (result) in 172 | switch result { 173 | case .success(let pledges): 174 | print("🏆\(pledges)") 175 | case .failure(let error): 176 | print("🤯🤯🤯🤯🤯🤯\(error)") 177 | } 178 | completion() 179 | }) 180 | } 181 | } 182 | } 183 | -------------------------------------------------------------------------------- /ViteTests/ViteTests.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViteTests.swift 3 | // ViteTests 4 | // 5 | // Created by Water on 2018/8/15. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Vite 11 | 12 | class ViteTests: XCTestCase { 13 | 14 | override func setUp() { 15 | super.setUp() 16 | // Put setup code here. This method is called before the invocation of each test method in the class. 17 | } 18 | 19 | override func tearDown() { 20 | // Put teardown code here. This method is called after the invocation of each test method in the class. 21 | super.tearDown() 22 | } 23 | 24 | func testExample() { 25 | // This is an example of a functional test case. 26 | // Use XCTAssert and related functions to verify your tests produce the correct results. 27 | } 28 | 29 | func testPerformanceExample() { 30 | // This is an example of a performance test case. 31 | self.measure { 32 | // Put the code you want to measure the time of here. 33 | } 34 | } 35 | 36 | } 37 | -------------------------------------------------------------------------------- /ViteTests/ViteURITest.swift: -------------------------------------------------------------------------------- 1 | // 2 | // ViteURITest.swift 3 | // ViteTests 4 | // 5 | // Created by Stone on 2018/9/19. 6 | // Copyright © 2018年 vite labs. All rights reserved. 7 | // 8 | 9 | import XCTest 10 | @testable import Vite 11 | 12 | class ViteURITest: XCTestCase { 13 | 14 | func testExample() { 15 | 16 | let successCases = [ 17 | ("vite:vite_fa1d81d93bcc36f234f7bccf1403924a0834609f4b2e9856ad?tti=tti_000000000000000000004cfd&amount=10.12345678e8&decimals=0", "1012345678"), 18 | ("vite:vite_fa1d81d93bcc36f234f7bccf1403924a0834609f4b2e9856ad?tti=tti_000000000000000000004cfd&amount=10.12345678&decimals=18", "10123456780000000000"), 19 | ("vite:vite_fa1d81d93bcc36f234f7bccf1403924a0834609f4b2e9856ad?tti=tti_000000000000000000004cfd&amount=10.12345678E7&decimals=3", "101234567800"), 20 | ] 21 | 22 | 23 | for c in successCases { 24 | let string = c.0 25 | let ans = c.1 26 | 27 | let uri = ViteURI.parser(string: string) 28 | let uriString = uri?.string() 29 | let amountString = uri?.amountToBigInt()?.description 30 | XCTAssertEqual(string, uriString) 31 | XCTAssertEqual(amountString, ans) 32 | } 33 | } 34 | 35 | func testScientificNotation() { 36 | let successCases = [ 37 | ("12.34E3", "12340"), 38 | ("+12.34E3", "12340"), 39 | ("-12.34E3", "-12340"), 40 | ("-12.34E6", "-12340000"), 41 | ] 42 | 43 | 44 | for c in successCases { 45 | let string = c.0 46 | let ans = c.1 47 | 48 | guard let ret = ViteURI.scientificNotationStringToBigInt(string, decimals: 0) else { 49 | XCTAssert(false) 50 | return 51 | } 52 | XCTAssertEqual(ret.description, ans) 53 | } 54 | 55 | } 56 | 57 | func testtoBigInt() { 58 | 59 | let successCases = [ 60 | ("00120.3400", "12034"), 61 | ("001.00", "100"), 62 | ("00101.", "10100"), 63 | ("0.12", "12"), 64 | ("0.0", "0"), 65 | ("0", "0"), 66 | ("10", "1000"), 67 | ] 68 | 69 | for c in successCases { 70 | let string = c.0 71 | let ans = c.1 72 | 73 | guard let ret = string.toBigInt(decimals: 2) else { 74 | XCTAssert(false) 75 | return 76 | } 77 | XCTAssertEqual(ret.description, ans) 78 | } 79 | } 80 | 81 | 82 | } 83 | -------------------------------------------------------------------------------- /ViteUITests/Info.plist: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | CFBundleDevelopmentRegion 6 | $(DEVELOPMENT_LANGUAGE) 7 | CFBundleExecutable 8 | $(EXECUTABLE_NAME) 9 | CFBundleIdentifier 10 | $(PRODUCT_BUNDLE_IDENTIFIER) 11 | CFBundleInfoDictionaryVersion 12 | 6.0 13 | CFBundleName 14 | $(PRODUCT_NAME) 15 | CFBundlePackageType 16 | BNDL 17 | CFBundleShortVersionString 18 | 1.0 19 | CFBundleVersion 20 | 1 21 | 22 | 23 | -------------------------------------------------------------------------------- /bootstrap: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CMD_PATH=`dirname $0` 3 | cd $CMD_PATH 4 | sed -i "" 's/^target_name = '\''.*'\''$/target_name = '\''Vite'\''/' Podfile 5 | pod install -------------------------------------------------------------------------------- /bootstrap_dapp: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CMD_PATH=`dirname $0` 3 | cd $CMD_PATH 4 | sed -i "" 's/^target_name = '\''.*'\''$/target_name = '\''ViteDapp'\''/' Podfile 5 | pod install -------------------------------------------------------------------------------- /bootstrap_official: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CMD_PATH=`dirname $0` 3 | cd $CMD_PATH 4 | sed -i "" 's/^target_name = '\''.*'\''$/target_name = '\''ViteOfficial'\''/' Podfile 5 | pod install -------------------------------------------------------------------------------- /bootstrap_test: -------------------------------------------------------------------------------- 1 | #!/bin/bash 2 | CMD_PATH=`dirname $0` 3 | cd $CMD_PATH 4 | sed -i "" 's/^target_name = '\''.*'\''$/target_name = '\''ViteTest'\''/' Podfile 5 | pod install -------------------------------------------------------------------------------- /certs/distribution/86NNRW9D36.cer: -------------------------------------------------------------------------------- 1 | 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 34 | -------------------------------------------------------------------------------- /certs/distribution/86NNRW9D36.p12: -------------------------------------------------------------------------------- 1 | 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 39 | -------------------------------------------------------------------------------- /fastlane/Appfile: -------------------------------------------------------------------------------- 1 | app_identifier("net.vite.wallet") # The bundle identifier of your app 2 | apple_id("caoliang@vite.org") # Your Apple email address 3 | 4 | itc_team_id("119297226") # App Store Connect Team ID 5 | team_id("5SR42372L5") # Developer Portal Team ID 6 | 7 | # For more information about the Appfile, see: 8 | # https://docs.fastlane.tools/advanced/#appfile 9 | -------------------------------------------------------------------------------- /fastlane/Fastfile: -------------------------------------------------------------------------------- 1 | # Uncomment the line if you want fastlane to automatically update itself 2 | # update_fastlane 3 | 4 | setup_travis 5 | 6 | default_platform(:ios) 7 | 8 | platform :ios do 9 | desc "Push a new beta build to TestFlight" 10 | 11 | lane :vite_appstore do 12 | increment_build_number_and_push_git 13 | exec '../bootstrap_official' 14 | match_profile 15 | build_app(workspace: "Vite.xcworkspace", scheme: "ViteOfficial", clean: true, configuration: "Release") 16 | upload_to_testflight(skip_waiting_for_build_processing: true) 17 | upload_dysm() 18 | end 19 | 20 | lane :vite_test do 21 | #increment_build_number_and_push_git 22 | #match_profile 23 | version_number = get_version_number(xcodeproj: "Vite.xcodeproj", target: "ViteTest") 24 | build_number = get_build_number(xcodeproj: "Vite.xcodeproj") 25 | add_badge(shield: version_number + "-" + build_number + "-" + "orange", no_badge: true) 26 | #build_app(workspace: "Vite.xcworkspace", scheme: "ViteTest", clean: true, configuration: "Release") 27 | #upload_to_testflight(skip_waiting_for_build_processing: true) 28 | #upload_dysm() 29 | exec '../bootstrap_test' 30 | end 31 | 32 | lane :vite_dapp do 33 | increment_build_number_and_push_git 34 | exec '../bootstrap_dapp' 35 | #match_profile 36 | #build_app(workspace: "Vite.xcworkspace", scheme: "ViteDapp", clean: true, configuration: "Release") 37 | #upload_to_testflight(skip_waiting_for_build_processing: true) 38 | #upload_dysm() 39 | end 40 | 41 | lane :match_profile do 42 | match(type: "appstore", app_identifier: ["net.vite.wallet","net.vite.wallet.PushService"], clone_branch_directly: true, readonly:false) 43 | end 44 | 45 | lane :inc do 46 | increment_build_number 47 | push_git 48 | end 49 | 50 | desc "push git local code" 51 | lane :push_git do 52 | git_add(path: ".") 53 | build_number = get_build_number 54 | git_commit(path: ".", message: "Jenkins Version Bump "+ build_number) 55 | branch = ENV["TRAVIS_BRANCH"] 56 | push_to_git_remote(remote_branch: branch, force: false) 57 | end 58 | 59 | desc "create new pr in github argument base is base branch" 60 | lane :pr do |options| 61 | create_pull_request( 62 | api_token: nil, 63 | repo: "vitelabs/vite-app-ios", 64 | title: "[pr] merge new feature", 65 | head: nil, 66 | base: options[:base], 67 | body: "Please pull this in! and find some bugs", 68 | api_url: nil 69 | ) 70 | end 71 | 72 | desc "upload to Beta by Crashlytics" 73 | lane :upload_dysm do |options| 74 | if options[:type] == 'enterprise' 75 | puts "enterprise" 76 | exec '../Pods/Fabric/upload-symbols -gsp ../Vite/Resource/Firebase/enterprise/GoogleService-Info.plist -p ios ../Vite-test.app.dSYM.zip' 77 | else 78 | puts "appstore" 79 | exec '../Pods/Fabric/upload-symbols -gsp ../Vite/Resource/Firebase/official/GoogleService-Info.plist -p ios ../Vite-test.app.dSYM.zip' 80 | end 81 | end 82 | 83 | end 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | -------------------------------------------------------------------------------- /fastlane/Matchfile: -------------------------------------------------------------------------------- 1 | git_url("https://github.com/vitelabs/vite-app-ios.git") 2 | git_branch("develop") 3 | type("appstore") # The default type, can be: appstore, adhoc, enterprise or development 4 | username("caoliang@vite.org") # Your Apple Developer Portal username 5 | 6 | # For all available options run `fastlane match --help` 7 | # Remove the # in the beginning of the line to enable the other options 8 | -------------------------------------------------------------------------------- /fastlane/Pluginfile: -------------------------------------------------------------------------------- 1 | # Autogenerated by fastlane 2 | # 3 | # Ensure this file is checked in to source control! 4 | 5 | gem 'fastlane-plugin-badge' 6 | -------------------------------------------------------------------------------- /fastlane/README.md: -------------------------------------------------------------------------------- 1 | fastlane documentation 2 | ================ 3 | # Installation 4 | 5 | Make sure you have the latest version of the Xcode command line tools installed: 6 | 7 | ``` 8 | xcode-select --install 9 | ``` 10 | 11 | Install _fastlane_ using 12 | ``` 13 | [sudo] gem install fastlane -NV 14 | ``` 15 | or alternatively using `brew install fastlane` 16 | 17 | # Available Actions 18 | ## iOS 19 | ### ios vite_appstore 20 | ``` 21 | fastlane ios vite_appstore 22 | ``` 23 | Push a new beta build to TestFlight 24 | ### ios vite_test 25 | ``` 26 | fastlane ios vite_test 27 | ``` 28 | 29 | ### ios vite_dapp 30 | ``` 31 | fastlane ios vite_dapp 32 | ``` 33 | 34 | ### ios match_profile 35 | ``` 36 | fastlane ios match_profile 37 | ``` 38 | 39 | ### ios inc 40 | ``` 41 | fastlane ios inc 42 | ``` 43 | 44 | ### ios push_git 45 | ``` 46 | fastlane ios push_git 47 | ``` 48 | push git local code 49 | ### ios pr 50 | ``` 51 | fastlane ios pr 52 | ``` 53 | create new pr in github argument base is base branch 54 | ### ios upload_dysm 55 | ``` 56 | fastlane ios upload_dysm 57 | ``` 58 | upload to Beta by Crashlytics 59 | 60 | ---- 61 | 62 | This README.md is auto-generated and will be re-generated every time [fastlane](https://fastlane.tools) is run. 63 | More information about fastlane can be found on [fastlane.tools](https://fastlane.tools). 64 | The documentation of fastlane can be found on [docs.fastlane.tools](https://docs.fastlane.tools). 65 | -------------------------------------------------------------------------------- /fastlane/Scanfile: -------------------------------------------------------------------------------- 1 | # For more information about this configuration visit 2 | # https://docs.fastlane.tools/actions/scan/#scanfile 3 | 4 | # In general, you can use the options available 5 | # fastlane scan --help 6 | 7 | # Remove the # in front of the line to enable the option 8 | 9 | scheme("Vite") 10 | open_report(true) 11 | clean(true) 12 | skip_build(false) 13 | output_types("html") 14 | output_directory("../") 15 | configuration("Debug") 16 | device("iPhone X (12.0)") 17 | skip_build(false) 18 | -------------------------------------------------------------------------------- /profiles/appstore/AppStore_net.vite.wallet.mobileprovision: -------------------------------------------------------------------------------- 1 | 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 169 | -------------------------------------------------------------------------------- /vite_pod.rb: -------------------------------------------------------------------------------- 1 | require 'singleton' 2 | 3 | class PodfilePatch 4 | include Singleton 5 | attr_reader :source_pods 6 | attr_reader :disable_pods 7 | attr_reader :original_pods 8 | 9 | def initialize 10 | patch_paths = [ 11 | ENV['PODFILE_PATCH'], './.Podfile.patch', '~/.Podfile.patch' 12 | ].compact 13 | patch_content = nil 14 | patch_paths.each do |p| 15 | abs_p = File.expand_path(p) 16 | next unless File.exist? abs_p 17 | puts "Using #{abs_p} as patch for Podfile" 18 | patch_content = File.read(abs_p) 19 | break 20 | end 21 | 22 | @source_pods = [] 23 | @disable_pods = [] 24 | @original_pods = {} 25 | return unless patch_content 26 | patch_content.lines.each do |line| 27 | line.strip! 28 | next if line.length < 3 29 | next if line[0] == '#' # 注释 30 | func = line.split.first 31 | pod_name = line.split[1].delete('"').delete("'").delete(',') 32 | pod_name_base = pod_name.split('/').first 33 | case func 34 | when 'source_pod' 35 | # 源码 36 | @source_pods << pod_name_base 37 | when 'disable_pod' 38 | # 禁用 39 | @disable_pods << pod_name 40 | when 'pod' 41 | # 原生 42 | @original_pods[pod_name_base] = line 43 | else 44 | raise "Unknown syntax: #{line}" 45 | end 46 | end 47 | self.report 48 | end 49 | 50 | def report 51 | if @disable_pods.length > 0 52 | puts "[.Podfile.patch] Pod(s) disabled:" 53 | puts @disable_pods.join(', ') 54 | puts "" 55 | end 56 | if @source_pods.length > 0 57 | puts "[.Podfile.patch] Pod(s) coming with source code:" 58 | puts @source_pods.join(', ') 59 | puts "" 60 | end 61 | if @original_pods.length > 0 62 | puts "[.Podfile.patch] Pod(s) coming with original pod declaration:" 63 | puts @original_pods.keys.join(', ') 64 | puts "" 65 | end 66 | end 67 | end 68 | 69 | def vite_pod(pod_name, info) 70 | pod_name_base = pod_name.split('/').first 71 | 72 | # 被 patch 禁用的 pod,直接返回 73 | return if PodfilePatch.instance.disable_pods.include?(pod_name) 74 | 75 | original_pod_line = PodfilePatch.instance.original_pods[pod_name_base] 76 | if original_pod_line 77 | # 使用原生 pod 命令引入的,直接用 eval 引入,默认 original_pod_line 合法 78 | eval original_pod_line 79 | else 80 | pod pod_name, info 81 | end 82 | end 83 | 84 | 85 | 86 | 87 | --------------------------------------------------------------------------------