Merge pull request #15 from RxSwiftCommunity/feature/phone-provider

Add verifyPhoneNumber rx extension
This commit is contained in:
Arnaud Dorgans
2019-03-20 17:41:28 +01:00
committed by GitHub
28 changed files with 761 additions and 27 deletions

View File

@@ -0,0 +1,41 @@
// RxFirebase
// Copyright © 2019 RxSwiftCommunity. All rights reserved.
import UIKit
@UIApplicationMain
class AppDelegate: UIResponder, UIApplicationDelegate {
var window: UIWindow?
func application(_ application: UIApplication, didFinishLaunchingWithOptions launchOptions: [UIApplication.LaunchOptionsKey: Any]?) -> Bool {
// Override point for customization after application launch.
return true
}
func applicationWillResignActive(_ application: UIApplication) {
// Sent when the application is about to move from active to inactive state. This can occur for certain types of temporary interruptions (such as an incoming phone call or SMS message) or when the user quits the application and it begins the transition to the background state.
// Use this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates. Games should use this method to pause the game.
}
func applicationDidEnterBackground(_ application: UIApplication) {
// Use this method to release shared resources, save user data, invalidate timers, and store enough application state information to restore your application to its current state in case it is terminated later.
// If your application supports background execution, this method is called instead of applicationWillTerminate: when the user quits.
}
func applicationWillEnterForeground(_ application: UIApplication) {
// Called as part of the transition from the background to the active state; here you can undo many of the changes made on entering the background.
}
func applicationDidBecomeActive(_ application: UIApplication) {
// Restart any tasks that were paused (or not yet started) while the application was inactive. If the application was previously in the background, optionally refresh the user interface.
}
func applicationWillTerminate(_ application: UIApplication) {
// Called when the application is about to terminate. Save data if appropriate. See also applicationDidEnterBackground:.
}
}

View File

@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,17 @@
{
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,11 @@
{
"images" : [
{
"idiom" : "tv"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,17 @@
{
"layers" : [
{
"filename" : "Front.imagestacklayer"
},
{
"filename" : "Middle.imagestacklayer"
},
{
"filename" : "Back.imagestacklayer"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,16 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,32 @@
{
"assets" : [
{
"size" : "1280x768",
"idiom" : "tv",
"filename" : "App Icon - App Store.imagestack",
"role" : "primary-app-icon"
},
{
"size" : "400x240",
"idiom" : "tv",
"filename" : "App Icon.imagestack",
"role" : "primary-app-icon"
},
{
"size" : "2320x720",
"idiom" : "tv",
"filename" : "Top Shelf Image Wide.imageset",
"role" : "top-shelf-image-wide"
},
{
"size" : "1920x720",
"idiom" : "tv",
"filename" : "Top Shelf Image.imageset",
"role" : "top-shelf-image"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
},
{
"idiom" : "tv-marketing",
"scale" : "1x"
},
{
"idiom" : "tv-marketing",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,24 @@
{
"images" : [
{
"idiom" : "tv",
"scale" : "1x"
},
{
"idiom" : "tv",
"scale" : "2x"
},
{
"idiom" : "tv-marketing",
"scale" : "1x"
},
{
"idiom" : "tv-marketing",
"scale" : "2x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,6 @@
{
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,22 @@
{
"images" : [
{
"orientation" : "landscape",
"idiom" : "tv",
"extent" : "full-screen",
"minimum-system-version" : "11.0",
"scale" : "2x"
},
{
"orientation" : "landscape",
"idiom" : "tv",
"extent" : "full-screen",
"minimum-system-version" : "9.0",
"scale" : "1x"
}
],
"info" : {
"version" : 1,
"author" : "xcode"
}
}

View File

@@ -0,0 +1,28 @@
<?xml version="1.0" encoding="UTF-8"?>
<document type="com.apple.InterfaceBuilder.AppleTV.Storyboard" version="3.0" toolsVersion="13122.16" targetRuntime="AppleTV" propertyAccessControl="none" useAutolayout="YES" useTraitCollections="YES" useSafeAreas="YES" colorMatched="YES" initialViewController="BYZ-38-t0r">
<dependencies>
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="13104.12"/>
<capability name="Safe area layout guides" minToolsVersion="9.0"/>
<capability name="documents saved in the Xcode 8 format" minToolsVersion="8.0"/>
</dependencies>
<scenes>
<!--View Controller-->
<scene sceneID="tne-QT-ifu">
<objects>
<viewController id="BYZ-38-t0r" customClass="ViewController" customModuleProvider="target" sceneMemberID="viewController">
<layoutGuides>
<viewControllerLayoutGuide type="top" id="y3c-jy-aDJ"/>
<viewControllerLayoutGuide type="bottom" id="wfy-db-euE"/>
</layoutGuides>
<view key="view" contentMode="scaleToFill" id="8bC-Xf-vdC">
<rect key="frame" x="0.0" y="0.0" width="1920" height="1080"/>
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
<color key="backgroundColor" red="0.0" green="0.0" blue="0.0" alpha="0.0" colorSpace="custom" customColorSpace="sRGB"/>
<viewLayoutGuide key="safeArea" id="wu6-TO-1qx"/>
</view>
</viewController>
<placeholder placeholderIdentifier="IBFirstResponder" id="dkx-z0-nzr" sceneMemberID="firstResponder"/>
</objects>
</scene>
</scenes>
</document>

32
Example - tvOS/Info.plist Normal file
View File

@@ -0,0 +1,32 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>CFBundleDevelopmentRegion</key>
<string>$(DEVELOPMENT_LANGUAGE)</string>
<key>CFBundleExecutable</key>
<string>$(EXECUTABLE_NAME)</string>
<key>CFBundleIdentifier</key>
<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>$(PRODUCT_NAME)</string>
<key>CFBundlePackageType</key>
<string>APPL</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleVersion</key>
<string>1</string>
<key>LSRequiresIPhoneOS</key>
<true/>
<key>UIMainStoryboardFile</key>
<string>Main</string>
<key>UIRequiredDeviceCapabilities</key>
<array>
<string>arm64</string>
</array>
<key>UIUserInterfaceStyle</key>
<string>Automatic</string>
</dict>
</plist>

View File

@@ -0,0 +1,18 @@
// RxFirebase
// Copyright © 2019 RxSwiftCommunity. All rights reserved.
import UIKit
import RxFirebaseStorage
import RxFirebaseDatabase
import RxFirebaseAuthentication
class ViewController: UIViewController {
override func viewDidLoad() {
super.viewDidLoad()
// Do any additional setup after loading the view, typically from a nib.
}
}

View File

@@ -16,3 +16,9 @@ target 'RxFirebase_Example' do
pod 'RxFirebaseFunctions', :path => './'
pod 'RxFirebaseAuthentication', :path => './'
end
target 'RxFirebase_Example_tvOS' do
pod 'RxFirebaseStorage', :path => './'
pod 'RxFirebaseDatabase', :path => './'
pod 'RxFirebaseAuthentication', :path => './'
end

View File

@@ -115,40 +115,40 @@ PODS:
- RxAtomic (4.4.1)
- RxCocoa (4.4.1):
- RxSwift (~> 4.0)
- RxFirebase/Auth (0.3.3):
- RxFirebase/Auth (0.3.4):
- RxFirebaseAuthentication (~> 0.3)
- RxFirebase/Database (0.3.3):
- RxFirebase/Database (0.3.4):
- RxFirebaseDatabase (~> 0.3)
- RxFirebase/Firestore (0.3.3):
- RxFirebase/Firestore (0.3.4):
- RxFirebaseFirestore (~> 0.3)
- RxFirebase/Functions (0.3.3):
- RxFirebase/Functions (0.3.4):
- RxFirebaseFunctions (~> 0.3)
- RxFirebase/RemoteConfig (0.3.3):
- RxFirebase/RemoteConfig (0.3.4):
- RxFirebaseRemoteConfig (~> 0.3)
- RxFirebase/Storage (0.3.3):
- RxFirebase/Storage (0.3.4):
- RxFirebaseStorage (~> 0.3)
- RxFirebaseAuthentication (0.3.3):
- RxFirebaseAuthentication (0.3.4):
- FirebaseAuth (~> 5)
- FirebaseCore (~> 5)
- RxCocoa (~> 4)
- RxSwift (~> 4)
- RxFirebaseDatabase (0.3.3):
- RxFirebaseDatabase (0.3.4):
- FirebaseDatabase (~> 5)
- RxCocoa (~> 4)
- RxSwift (~> 4)
- RxFirebaseFirestore (0.3.3):
- RxFirebaseFirestore (0.3.4):
- FirebaseFirestore (~> 1)
- RxCocoa (~> 4)
- RxSwift (~> 4)
- RxFirebaseFunctions (0.3.3):
- RxFirebaseFunctions (0.3.4):
- FirebaseFunctions (~> 2)
- RxCocoa (~> 4)
- RxSwift (~> 4)
- RxFirebaseRemoteConfig (0.3.3):
- RxFirebaseRemoteConfig (0.3.4):
- FirebaseRemoteConfig (~> 3)
- RxCocoa (~> 4)
- RxSwift (~> 4)
- RxFirebaseStorage (0.3.3):
- RxFirebaseStorage (0.3.4):
- FirebaseStorage (~> 3)
- RxCocoa (~> 4)
- RxSwift (~> 4)
@@ -234,15 +234,15 @@ SPEC CHECKSUMS:
Protobuf: 1eb9700044745f00181c136ef21b8ff3ad5a0fd5
RxAtomic: f8d6adc1ccb87a767811269e4875887bc74dbf19
RxCocoa: 2f35a76bf8887872e28a1914112395b11b8e0e64
RxFirebase: 905b85aac0651d8053a78be90e00fed5b559d7b9
RxFirebaseAuthentication: 6a688b0ddd90b72c48694aacc3e2b7e8bd5719bd
RxFirebaseDatabase: e6f5c1c4b098f8c1ab80eed3bfb104a3d94ea369
RxFirebaseFirestore: 690a9483a072a6270b13d13cb0ff113755ad9ceb
RxFirebaseFunctions: 2b9d606a8dad33612ad31533a069e9d3d19762ca
RxFirebaseRemoteConfig: f4c1ac13f8db365bab89ad7d6b37e4e2cd6cc1c2
RxFirebaseStorage: 35c205f5d5c98ffa63730cffb56feb2fae32f5f2
RxFirebase: 77493b62bfafe7d4dbb404bd06874756f29465ab
RxFirebaseAuthentication: 9dc412659765fe6a873b996cfd042b745cb643b4
RxFirebaseDatabase: c75bd954c983fdf134f13f8f46d75058e83eb822
RxFirebaseFirestore: b24cc69850aa85d5efdd6ad39f4308017cd76e86
RxFirebaseFunctions: 24ad39bbefbf14d82954f12772339c678bef9dfb
RxFirebaseRemoteConfig: 24d98dac90dbf707b9b2d9bb4e67dd4128e2ddc7
RxFirebaseStorage: fe6ec6aa4a2e4bc985f0dcd9fc4ea9ade4b8edf2
RxSwift: 92fcf68dfef21f3e2ab1965363d9e7b3d787597e
PODFILE CHECKSUM: 4c17659c65dea6272123034edb4da2060cce69b6
PODFILE CHECKSUM: 6b5209972f53f589215fcd40d8892f3d937408a6
COCOAPODS: 1.6.0
COCOAPODS: 1.6.1

View File

@@ -13,16 +13,24 @@
607FACDD1AFB9204008FA782 /* Images.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDC1AFB9204008FA782 /* Images.xcassets */; };
607FACE01AFB9204008FA782 /* LaunchScreen.xib in Resources */ = {isa = PBXBuildFile; fileRef = 607FACDE1AFB9204008FA782 /* LaunchScreen.xib */; };
89687B4350920944772DFBF5 /* Pods_RxFirebase_Example.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = C580F5CD4C129AE9AE8D4CB4 /* Pods_RxFirebase_Example.framework */; };
9715CAAA224268C90008F667 /* AppDelegate.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9715CAA9224268C90008F667 /* AppDelegate.swift */; };
9715CAAC224268C90008F667 /* ViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9715CAAB224268C90008F667 /* ViewController.swift */; };
9715CAAF224268C90008F667 /* Main.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 9715CAAD224268C90008F667 /* Main.storyboard */; };
9715CAB1224268CB0008F667 /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 9715CAB0224268CB0008F667 /* Assets.xcassets */; };
97510B32221891EE00722D52 /* RxFirebaseStorage.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 97510B31221891EE00722D52 /* RxFirebaseStorage.podspec */; };
97510B342218928800722D52 /* RxFirebaseFunctions.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 97510B332218928800722D52 /* RxFirebaseFunctions.podspec */; };
97510B382218A83F00722D52 /* RxFirebaseAuthentication.podspec in Resources */ = {isa = PBXBuildFile; fileRef = 97510B372218A83F00722D52 /* RxFirebaseAuthentication.podspec */; };
DE36A9F6ABD46F6983D58756 /* Pods_Example___tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DF91522DED7F2FCAD7518147 /* Pods_Example___tvOS.framework */; };
FB9A33922F58CBCEB483797A /* Pods_RxFirebase_Example_tvOS.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = A3C3E953D330487A65186FB8 /* Pods_RxFirebase_Example_tvOS.framework */; };
/* End PBXBuildFile section */
/* Begin PBXFileReference section */
232F01B4B05697F9B8D08CA9 /* Pods-RxFirebase_Example_tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example_tvOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example_tvOS/Pods-RxFirebase_Example_tvOS.debug.xcconfig"; sourceTree = "<group>"; };
28D3B84F8236F93098CCE50D /* Pods-RxFirebase_Example.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example/Pods-RxFirebase_Example.debug.xcconfig"; sourceTree = "<group>"; };
31EFDA0E742AC894F3661AC2 /* Pods-RxFirebase_Example_macOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example_macOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example_macOS/Pods-RxFirebase_Example_macOS.release.xcconfig"; sourceTree = "<group>"; };
4331B45F2C53B041BD18D705 /* Pods-RxFirebase_Example.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example.release.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example/Pods-RxFirebase_Example.release.xcconfig"; sourceTree = "<group>"; };
43B3387481C4516DAB44B114 /* Pods_RxFirebase_Example_macOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RxFirebase_Example_macOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
54B7DAD9874EDCEF5F641CBC /* Pods-Example - tvOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example - tvOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-Example - tvOS/Pods-Example - tvOS.debug.xcconfig"; sourceTree = "<group>"; };
607FACD01AFB9204008FA782 /* RxFirebase_Example.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RxFirebase_Example.app; sourceTree = BUILT_PRODUCTS_DIR; };
607FACD41AFB9204008FA782 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
607FACD51AFB9204008FA782 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
@@ -30,17 +38,27 @@
607FACDA1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
607FACDC1AFB9204008FA782 /* Images.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Images.xcassets; sourceTree = "<group>"; };
607FACDF1AFB9204008FA782 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.xib; name = Base; path = Base.lproj/LaunchScreen.xib; sourceTree = "<group>"; };
707E0D06D5DFCC6319DD397E /* Pods-Example - tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-Example - tvOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-Example - tvOS/Pods-Example - tvOS.release.xcconfig"; sourceTree = "<group>"; };
8D1F218AB871F5DC9A8661D7 /* RxFirebase.podspec */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = RxFirebase.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
943F8B6AD163EF4A603AB7C4 /* Pods-RxFirebase_Example_macOS.debug.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example_macOS.debug.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example_macOS/Pods-RxFirebase_Example_macOS.debug.xcconfig"; sourceTree = "<group>"; };
9715CAA7224268C90008F667 /* RxFirebase_Example_tvOS.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = RxFirebase_Example_tvOS.app; sourceTree = BUILT_PRODUCTS_DIR; };
9715CAA9224268C90008F667 /* AppDelegate.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AppDelegate.swift; sourceTree = "<group>"; };
9715CAAB224268C90008F667 /* ViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ViewController.swift; sourceTree = "<group>"; };
9715CAAE224268C90008F667 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = Base.lproj/Main.storyboard; sourceTree = "<group>"; };
9715CAB0224268CB0008F667 /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = "<group>"; };
9715CAB2224268CB0008F667 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = "<group>"; };
971AAF3A220315A90023D6CD /* RxFirebaseFirestore.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RxFirebaseFirestore.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
971AAF3C220316D90023D6CD /* RxFirebaseRemoteConfig.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = RxFirebaseRemoteConfig.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
974E84332218299C00F76D10 /* RxFirebaseDatabase.podspec */ = {isa = PBXFileReference; lastKnownFileType = text; path = RxFirebaseDatabase.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
97510B31221891EE00722D52 /* RxFirebaseStorage.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RxFirebaseStorage.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
97510B332218928800722D52 /* RxFirebaseFunctions.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RxFirebaseFunctions.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
97510B372218A83F00722D52 /* RxFirebaseAuthentication.podspec */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text; path = RxFirebaseAuthentication.podspec; sourceTree = "<group>"; xcLanguageSpecificationIdentifier = xcode.lang.ruby; };
A3C3E953D330487A65186FB8 /* Pods_RxFirebase_Example_tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RxFirebase_Example_tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
A5ECD0739495588E75E2ACBB /* README.md */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = net.daringfireball.markdown; path = README.md; sourceTree = "<group>"; };
B2E93982D2C0A28AF5F580D4 /* LICENSE */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text; path = LICENSE; sourceTree = "<group>"; };
B8496169945A170C3255767D /* Pods-RxFirebase_Example_tvOS.release.xcconfig */ = {isa = PBXFileReference; includeInIndex = 1; lastKnownFileType = text.xcconfig; name = "Pods-RxFirebase_Example_tvOS.release.xcconfig"; path = "Pods/Target Support Files/Pods-RxFirebase_Example_tvOS/Pods-RxFirebase_Example_tvOS.release.xcconfig"; sourceTree = "<group>"; };
C580F5CD4C129AE9AE8D4CB4 /* Pods_RxFirebase_Example.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_RxFirebase_Example.framework; sourceTree = BUILT_PRODUCTS_DIR; };
DF91522DED7F2FCAD7518147 /* Pods_Example___tvOS.framework */ = {isa = PBXFileReference; explicitFileType = wrapper.framework; includeInIndex = 0; path = Pods_Example___tvOS.framework; sourceTree = BUILT_PRODUCTS_DIR; };
/* End PBXFileReference section */
/* Begin PBXFrameworksBuildPhase section */
@@ -52,6 +70,15 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
9715CAA4224268C90008F667 /* Frameworks */ = {
isa = PBXFrameworksBuildPhase;
buildActionMask = 2147483647;
files = (
DE36A9F6ABD46F6983D58756 /* Pods_Example___tvOS.framework in Frameworks */,
FB9A33922F58CBCEB483797A /* Pods_RxFirebase_Example_tvOS.framework in Frameworks */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXFrameworksBuildPhase section */
/* Begin PBXGroup section */
@@ -60,6 +87,7 @@
children = (
607FACF51AFB993E008FA782 /* Podspec Metadata */,
607FACD21AFB9204008FA782 /* Example for RxFirebase */,
9715CAA8224268C90008F667 /* Example - tvOS */,
607FACD11AFB9204008FA782 /* Products */,
D690D55366CD11A9606FDE60 /* Pods */,
A48248668B3A076324D3877C /* Frameworks */,
@@ -70,6 +98,7 @@
isa = PBXGroup;
children = (
607FACD01AFB9204008FA782 /* RxFirebase_Example.app */,
9715CAA7224268C90008F667 /* RxFirebase_Example_tvOS.app */,
);
name = Products;
sourceTree = "<group>";
@@ -112,11 +141,25 @@
name = "Podspec Metadata";
sourceTree = "<group>";
};
9715CAA8224268C90008F667 /* Example - tvOS */ = {
isa = PBXGroup;
children = (
9715CAA9224268C90008F667 /* AppDelegate.swift */,
9715CAAB224268C90008F667 /* ViewController.swift */,
9715CAAD224268C90008F667 /* Main.storyboard */,
9715CAB0224268CB0008F667 /* Assets.xcassets */,
9715CAB2224268CB0008F667 /* Info.plist */,
);
path = "Example - tvOS";
sourceTree = "<group>";
};
A48248668B3A076324D3877C /* Frameworks */ = {
isa = PBXGroup;
children = (
C580F5CD4C129AE9AE8D4CB4 /* Pods_RxFirebase_Example.framework */,
43B3387481C4516DAB44B114 /* Pods_RxFirebase_Example_macOS.framework */,
DF91522DED7F2FCAD7518147 /* Pods_Example___tvOS.framework */,
A3C3E953D330487A65186FB8 /* Pods_RxFirebase_Example_tvOS.framework */,
);
name = Frameworks;
sourceTree = "<group>";
@@ -128,6 +171,10 @@
4331B45F2C53B041BD18D705 /* Pods-RxFirebase_Example.release.xcconfig */,
943F8B6AD163EF4A603AB7C4 /* Pods-RxFirebase_Example_macOS.debug.xcconfig */,
31EFDA0E742AC894F3661AC2 /* Pods-RxFirebase_Example_macOS.release.xcconfig */,
54B7DAD9874EDCEF5F641CBC /* Pods-Example - tvOS.debug.xcconfig */,
707E0D06D5DFCC6319DD397E /* Pods-Example - tvOS.release.xcconfig */,
232F01B4B05697F9B8D08CA9 /* Pods-RxFirebase_Example_tvOS.debug.xcconfig */,
B8496169945A170C3255767D /* Pods-RxFirebase_Example_tvOS.release.xcconfig */,
);
name = Pods;
sourceTree = "<group>";
@@ -154,6 +201,25 @@
productReference = 607FACD01AFB9204008FA782 /* RxFirebase_Example.app */;
productType = "com.apple.product-type.application";
};
9715CAA6224268C90008F667 /* RxFirebase_Example_tvOS */ = {
isa = PBXNativeTarget;
buildConfigurationList = 9715CAB5224268CB0008F667 /* Build configuration list for PBXNativeTarget "RxFirebase_Example_tvOS" */;
buildPhases = (
04F320064EDB685D4B844333 /* [CP] Check Pods Manifest.lock */,
9715CAA3224268C90008F667 /* Sources */,
9715CAA4224268C90008F667 /* Frameworks */,
9715CAA5224268C90008F667 /* Resources */,
C3AEA06118BD29FF65456552 /* [CP] Embed Pods Frameworks */,
);
buildRules = (
);
dependencies = (
);
name = RxFirebase_Example_tvOS;
productName = "Example - tvOS";
productReference = 9715CAA7224268C90008F667 /* RxFirebase_Example_tvOS.app */;
productType = "com.apple.product-type.application";
};
/* End PBXNativeTarget section */
/* Begin PBXProject section */
@@ -168,6 +234,11 @@
CreatedOnToolsVersion = 6.3.1;
LastSwiftMigration = 0900;
};
9715CAA6224268C90008F667 = {
CreatedOnToolsVersion = 10.1;
DevelopmentTeam = PUQL384HUF;
ProvisioningStyle = Automatic;
};
};
};
buildConfigurationList = 607FACCB1AFB9204008FA782 /* Build configuration list for PBXProject "RxFirebase" */;
@@ -184,6 +255,7 @@
projectRoot = "";
targets = (
607FACCF1AFB9204008FA782 /* RxFirebase_Example */,
9715CAA6224268C90008F667 /* RxFirebase_Example_tvOS */,
);
};
/* End PBXProject section */
@@ -202,9 +274,40 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
9715CAA5224268C90008F667 /* Resources */ = {
isa = PBXResourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9715CAB1224268CB0008F667 /* Assets.xcassets in Resources */,
9715CAAF224268C90008F667 /* Main.storyboard in Resources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXResourcesBuildPhase section */
/* Begin PBXShellScriptBuildPhase section */
04F320064EDB685D4B844333 /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_PODFILE_DIR_PATH}/Podfile.lock",
"${PODS_ROOT}/Manifest.lock",
);
name = "[CP] Check Pods Manifest.lock";
outputFileListPaths = (
);
outputPaths = (
"$(DERIVED_FILE_DIR)/Pods-RxFirebase_Example_tvOS-checkManifestLockResult.txt",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "diff \"${PODS_PODFILE_DIR_PATH}/Podfile.lock\" \"${PODS_ROOT}/Manifest.lock\" > /dev/null\nif [ $? != 0 ] ; then\n # print error to STDERR\n echo \"error: The sandbox is not in sync with the Podfile.lock. Run 'pod install' or update your CocoaPods installation.\" >&2\n exit 1\nfi\n# This output is used by Xcode 'outputs' to avoid re-running this script phase.\necho \"SUCCESS\" > \"${SCRIPT_OUTPUT_FILE_0}\"\n";
showEnvVarsInLog = 0;
};
05098544E4F32B7E900094BE /* [CP] Check Pods Manifest.lock */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
@@ -237,15 +340,15 @@
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-RxFirebase_Example/Pods-RxFirebase_Example-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/BoringSSL-GRPC/openssl_grpc.framework",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities/GoogleUtilities.framework",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher-iOS/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities-00567490/GoogleUtilities.framework",
"${BUILT_PRODUCTS_DIR}/Protobuf/Protobuf.framework",
"${BUILT_PRODUCTS_DIR}/RxAtomic/RxAtomic.framework",
"${BUILT_PRODUCTS_DIR}/RxCocoa/RxCocoa.framework",
"${BUILT_PRODUCTS_DIR}/RxSwift/RxSwift.framework",
"${BUILT_PRODUCTS_DIR}/RxAtomic-iOS/RxAtomic.framework",
"${BUILT_PRODUCTS_DIR}/RxCocoa-iOS/RxCocoa.framework",
"${BUILT_PRODUCTS_DIR}/RxSwift-iOS/RxSwift.framework",
"${BUILT_PRODUCTS_DIR}/gRPC-C++/grpcpp.framework",
"${BUILT_PRODUCTS_DIR}/gRPC-Core/grpc.framework",
"${BUILT_PRODUCTS_DIR}/leveldb-library/leveldb.framework",
"${BUILT_PRODUCTS_DIR}/leveldb-library-iOS/leveldb.framework",
"${BUILT_PRODUCTS_DIR}/nanopb/nanopb.framework",
);
name = "[CP] Embed Pods Frameworks";
@@ -269,6 +372,38 @@
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RxFirebase_Example/Pods-RxFirebase_Example-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
C3AEA06118BD29FF65456552 /* [CP] Embed Pods Frameworks */ = {
isa = PBXShellScriptBuildPhase;
buildActionMask = 2147483647;
files = (
);
inputFileListPaths = (
);
inputPaths = (
"${PODS_ROOT}/Target Support Files/Pods-RxFirebase_Example_tvOS/Pods-RxFirebase_Example_tvOS-frameworks.sh",
"${BUILT_PRODUCTS_DIR}/GTMSessionFetcher-tvOS/GTMSessionFetcher.framework",
"${BUILT_PRODUCTS_DIR}/GoogleUtilities-Environment-Logger/GoogleUtilities.framework",
"${BUILT_PRODUCTS_DIR}/RxAtomic-tvOS/RxAtomic.framework",
"${BUILT_PRODUCTS_DIR}/RxCocoa-tvOS/RxCocoa.framework",
"${BUILT_PRODUCTS_DIR}/RxSwift-tvOS/RxSwift.framework",
"${BUILT_PRODUCTS_DIR}/leveldb-library-tvOS/leveldb.framework",
);
name = "[CP] Embed Pods Frameworks";
outputFileListPaths = (
);
outputPaths = (
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GTMSessionFetcher.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/GoogleUtilities.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxAtomic.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxCocoa.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/RxSwift.framework",
"${TARGET_BUILD_DIR}/${FRAMEWORKS_FOLDER_PATH}/leveldb.framework",
);
runOnlyForDeploymentPostprocessing = 0;
shellPath = /bin/sh;
shellScript = "\"${PODS_ROOT}/Target Support Files/Pods-RxFirebase_Example_tvOS/Pods-RxFirebase_Example_tvOS-frameworks.sh\"\n";
showEnvVarsInLog = 0;
};
/* End PBXShellScriptBuildPhase section */
/* Begin PBXSourcesBuildPhase section */
@@ -281,6 +416,15 @@
);
runOnlyForDeploymentPostprocessing = 0;
};
9715CAA3224268C90008F667 /* Sources */ = {
isa = PBXSourcesBuildPhase;
buildActionMask = 2147483647;
files = (
9715CAAC224268C90008F667 /* ViewController.swift in Sources */,
9715CAAA224268C90008F667 /* AppDelegate.swift in Sources */,
);
runOnlyForDeploymentPostprocessing = 0;
};
/* End PBXSourcesBuildPhase section */
/* Begin PBXVariantGroup section */
@@ -300,6 +444,14 @@
name = LaunchScreen.xib;
sourceTree = "<group>";
};
9715CAAD224268C90008F667 /* Main.storyboard */ = {
isa = PBXVariantGroup;
children = (
9715CAAE224268C90008F667 /* Base */,
);
name = Main.storyboard;
sourceTree = "<group>";
};
/* End PBXVariantGroup section */
/* Begin XCBuildConfiguration section */
@@ -438,6 +590,63 @@
};
name = Release;
};
9715CAB3224268CB0008F667 /* Debug */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = 232F01B4B05697F9B8D08CA9 /* Pods-RxFirebase_Example_tvOS.debug.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
DEBUG_INFORMATION_FORMAT = dwarf;
DEVELOPMENT_TEAM = PUQL384HUF;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "Example - tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_ENABLE_DEBUG_INFO = INCLUDE_SOURCE;
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.arnauddorgans.Example---tvOS";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SWIFT_ACTIVE_COMPILATION_CONDITIONS = DEBUG;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 12.1;
};
name = Debug;
};
9715CAB4224268CB0008F667 /* Release */ = {
isa = XCBuildConfiguration;
baseConfigurationReference = B8496169945A170C3255767D /* Pods-RxFirebase_Example_tvOS.release.xcconfig */;
buildSettings = {
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
ASSETCATALOG_COMPILER_LAUNCHIMAGE_NAME = LaunchImage;
CLANG_ANALYZER_NONNULL = YES;
CLANG_ANALYZER_NUMBER_OBJECT_CONVERSION = YES_AGGRESSIVE;
CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
CLANG_ENABLE_OBJC_WEAK = YES;
CLANG_WARN_DOCUMENTATION_COMMENTS = YES;
CLANG_WARN_UNGUARDED_AVAILABILITY = YES_AGGRESSIVE;
CODE_SIGN_STYLE = Automatic;
DEVELOPMENT_TEAM = PUQL384HUF;
GCC_C_LANGUAGE_STANDARD = gnu11;
INFOPLIST_FILE = "Example - tvOS/Info.plist";
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/Frameworks";
MTL_FAST_MATH = YES;
PRODUCT_BUNDLE_IDENTIFIER = "com.arnauddorgans.Example---tvOS";
PRODUCT_NAME = "$(TARGET_NAME)";
SDKROOT = appletvos;
SWIFT_VERSION = 4.2;
TARGETED_DEVICE_FAMILY = 3;
TVOS_DEPLOYMENT_TARGET = 12.1;
};
name = Release;
};
/* End XCBuildConfiguration section */
/* Begin XCConfigurationList section */
@@ -459,6 +668,15 @@
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
9715CAB5224268CB0008F667 /* Build configuration list for PBXNativeTarget "RxFirebase_Example_tvOS" */ = {
isa = XCConfigurationList;
buildConfigurations = (
9715CAB3224268CB0008F667 /* Debug */,
9715CAB4224268CB0008F667 /* Release */,
);
defaultConfigurationIsVisible = 0;
defaultConfigurationName = Release;
};
/* End XCConfigurationList section */
};
rootObject = 607FACC81AFB9204008FA782 /* Project object */;

View File

@@ -0,0 +1,91 @@
<?xml version="1.0" encoding="UTF-8"?>
<Scheme
LastUpgradeVersion = "1010"
version = "1.3">
<BuildAction
parallelizeBuildables = "YES"
buildImplicitDependencies = "YES">
<BuildActionEntries>
<BuildActionEntry
buildForTesting = "YES"
buildForRunning = "YES"
buildForProfiling = "YES"
buildForArchiving = "YES"
buildForAnalyzing = "YES">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9715CAA6224268C90008F667"
BuildableName = "RxFirebase_Example_tvOS.app"
BlueprintName = "RxFirebase_Example_tvOS"
ReferencedContainer = "container:RxFirebase.xcodeproj">
</BuildableReference>
</BuildActionEntry>
</BuildActionEntries>
</BuildAction>
<TestAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
shouldUseLaunchSchemeArgsEnv = "YES">
<Testables>
</Testables>
<MacroExpansion>
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9715CAA6224268C90008F667"
BuildableName = "RxFirebase_Example_tvOS.app"
BlueprintName = "RxFirebase_Example_tvOS"
ReferencedContainer = "container:RxFirebase.xcodeproj">
</BuildableReference>
</MacroExpansion>
<AdditionalOptions>
</AdditionalOptions>
</TestAction>
<LaunchAction
buildConfiguration = "Debug"
selectedDebuggerIdentifier = "Xcode.DebuggerFoundation.Debugger.LLDB"
selectedLauncherIdentifier = "Xcode.DebuggerFoundation.Launcher.LLDB"
launchStyle = "0"
useCustomWorkingDirectory = "NO"
ignoresPersistentStateOnLaunch = "NO"
debugDocumentVersioning = "YES"
debugServiceExtension = "internal"
allowLocationSimulation = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9715CAA6224268C90008F667"
BuildableName = "RxFirebase_Example_tvOS.app"
BlueprintName = "RxFirebase_Example_tvOS"
ReferencedContainer = "container:RxFirebase.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
<AdditionalOptions>
</AdditionalOptions>
</LaunchAction>
<ProfileAction
buildConfiguration = "Release"
shouldUseLaunchSchemeArgsEnv = "YES"
savedToolIdentifier = ""
useCustomWorkingDirectory = "NO"
debugDocumentVersioning = "YES">
<BuildableProductRunnable
runnableDebuggingMode = "0">
<BuildableReference
BuildableIdentifier = "primary"
BlueprintIdentifier = "9715CAA6224268C90008F667"
BuildableName = "RxFirebase_Example_tvOS.app"
BlueprintName = "RxFirebase_Example_tvOS"
ReferencedContainer = "container:RxFirebase.xcodeproj">
</BuildableReference>
</BuildableProductRunnable>
</ProfileAction>
<AnalyzeAction
buildConfiguration = "Debug">
</AnalyzeAction>
<ArchiveAction
buildConfiguration = "Release"
revealArchiveInOrganizer = "YES">
</ArchiveAction>
</Scheme>

View File

@@ -0,0 +1,41 @@
// Pods
//
import RxSwift
import FirebaseAuth
#if os(iOS)
extension Reactive where Base: PhoneAuthProvider {
/**
@brief Starts the phone number authentication flow by sending a verification code to the
specified phone number.
@param phoneNumber The phone number to be verified.
@param UIDelegate An object used to present the SFSafariViewController. The object is retained
by this method until the completion block is executed.
@param completion The callback to be invoked when the verification flow is finished.
@remarks Possible error codes:
+ `FIRAuthErrorCodeCaptchaCheckFailed` - Indicates that the reCAPTCHA token obtained by
the Firebase Auth is invalid or has expired.
+ `FIRAuthErrorCodeQuotaExceeded` - Indicates that the phone verification quota for this
project has been exceeded.
+ `FIRAuthErrorCodeInvalidPhoneNumber` - Indicates that the phone number provided is
invalid.
+ `FIRAuthErrorCodeMissingPhoneNumber` - Indicates that a phone number was not provided.
*/
public func verifyPhoneNumber(_ phoneNumber: String, uiDelegate: AuthUIDelegate? = nil) -> Observable<String> {
return Observable.create { observer in
self.base.verifyPhoneNumber(phoneNumber, uiDelegate: uiDelegate) { result, error in
if let result = result {
observer.onNext(result)
observer.onCompleted()
} else if let error = error {
observer.onError(error)
}
}
return Disposables.create()
}
}
}
#endif