Skip to content

Commit ccfece6

Browse files
wilhuffCorrob
authored andcommitted
Add tvOS support to Firestore (#2662)
* Create tvOS host app * Standard project edits * Remove code signing * Force C99/C++11 * Adjust plist file for new location * header search paths * LDFLAGS * Add Firestore_{Tests,IntegrationTests}_tvOS * Add tvOS tests to the Podfile * Add Firestore tvOS xcodebuild to build.sh * Teach sync_project to keep tvOS up-to-date * Add Firestore tvOS to Travis
1 parent e002b98 commit ccfece6

File tree

40 files changed

+1972
-24
lines changed

40 files changed

+1972
-24
lines changed

.travis.yml

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -163,6 +163,14 @@ jobs:
163163
script:
164164
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
165165

166+
- stage: test
167+
env:
168+
- PROJECT=Firestore PLATFORM=tvOS METHOD=xcodebuild
169+
before_install:
170+
- ./scripts/if_changed.sh ./scripts/install_prereqs.sh
171+
script:
172+
- travis_retry ./scripts/if_changed.sh ./scripts/build.sh $PROJECT $PLATFORM
173+
166174
# Firestore sanitizers
167175

168176
- stage: test

Firestore/CHANGELOG.md

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,5 @@
11
# Unreleased
2+
- [feature] Added community support for tvOS.
23

34
# 1.2.0
45
- [feature] Added community support for macOS (#434).
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
/*
2+
* Copyright 2019 Google
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#import <UIKit/UIKit.h>
18+
19+
@interface AppDelegate : UIResponder <UIApplicationDelegate>
20+
21+
@property(strong, nonatomic) UIWindow *window;
22+
23+
@end
Lines changed: 61 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,61 @@
1+
/*
2+
* Copyright 2019 Google
3+
*
4+
* Licensed under the Apache License, Version 2.0 (the "License");
5+
* you may not use this file except in compliance with the License.
6+
* You may obtain a copy of the License at
7+
*
8+
* http://www.apache.org/licenses/LICENSE-2.0
9+
*
10+
* Unless required by applicable law or agreed to in writing, software
11+
* distributed under the License is distributed on an "AS IS" BASIS,
12+
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13+
* See the License for the specific language governing permissions and
14+
* limitations under the License.
15+
*/
16+
17+
#import "AppDelegate.h"
18+
19+
@interface AppDelegate ()
20+
21+
@end
22+
23+
@implementation AppDelegate
24+
25+
- (BOOL)application:(UIApplication *)application
26+
didFinishLaunchingWithOptions:(NSDictionary *)launchOptions {
27+
// Override point for customization after application launch.
28+
return YES;
29+
}
30+
31+
- (void)applicationWillResignActive:(UIApplication *)application {
32+
// Sent when the application is about to move from active to inactive state. This can occur for
33+
// certain types of temporary interruptions (such as an incoming phone call or SMS message) or
34+
// when the user quits the application and it begins the transition to the background state. Use
35+
// this method to pause ongoing tasks, disable timers, and throttle down OpenGL ES frame rates.
36+
// Games should use this method to pause the game.
37+
}
38+
39+
- (void)applicationDidEnterBackground:(UIApplication *)application {
40+
// Use this method to release shared resources, save user data, invalidate timers, and store
41+
// enough application state information to restore your application to its current state in case
42+
// it is terminated later. If your application supports background execution, this method is
43+
// called instead of applicationWillTerminate: when the user quits.
44+
}
45+
46+
- (void)applicationWillEnterForeground:(UIApplication *)application {
47+
// Called as part of the transition from the background to the active state; here you can undo
48+
// many of the changes made on entering the background.
49+
}
50+
51+
- (void)applicationDidBecomeActive:(UIApplication *)application {
52+
// Restart any tasks that were paused (or not yet started) while the application was inactive. If
53+
// the application was previously in the background, optionally refresh the user interface.
54+
}
55+
56+
- (void)applicationWillTerminate:(UIApplication *)application {
57+
// Called when the application is about to terminate. Save data if appropriate. See also
58+
// applicationDidEnterBackground:.
59+
}
60+
61+
@end
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv"
5+
}
6+
],
7+
"info" : {
8+
"version" : 1,
9+
"author" : "xcode"
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"layers" : [
3+
{
4+
"filename" : "Front.imagestacklayer"
5+
},
6+
{
7+
"filename" : "Middle.imagestacklayer"
8+
},
9+
{
10+
"filename" : "Back.imagestacklayer"
11+
}
12+
],
13+
"info" : {
14+
"version" : 1,
15+
"author" : "xcode"
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv"
5+
}
6+
],
7+
"info" : {
8+
"version" : 1,
9+
"author" : "xcode"
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv"
5+
}
6+
],
7+
"info" : {
8+
"version" : 1,
9+
"author" : "xcode"
10+
}
11+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "tv",
9+
"scale" : "2x"
10+
}
11+
],
12+
"info" : {
13+
"version" : 1,
14+
"author" : "xcode"
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
{
2+
"layers" : [
3+
{
4+
"filename" : "Front.imagestacklayer"
5+
},
6+
{
7+
"filename" : "Middle.imagestacklayer"
8+
},
9+
{
10+
"filename" : "Back.imagestacklayer"
11+
}
12+
],
13+
"info" : {
14+
"version" : 1,
15+
"author" : "xcode"
16+
}
17+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "tv",
9+
"scale" : "2x"
10+
}
11+
],
12+
"info" : {
13+
"version" : 1,
14+
"author" : "xcode"
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,16 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "tv",
9+
"scale" : "2x"
10+
}
11+
],
12+
"info" : {
13+
"version" : 1,
14+
"author" : "xcode"
15+
}
16+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}
Lines changed: 32 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,32 @@
1+
{
2+
"assets" : [
3+
{
4+
"size" : "1280x768",
5+
"idiom" : "tv",
6+
"filename" : "App Icon - App Store.imagestack",
7+
"role" : "primary-app-icon"
8+
},
9+
{
10+
"size" : "400x240",
11+
"idiom" : "tv",
12+
"filename" : "App Icon.imagestack",
13+
"role" : "primary-app-icon"
14+
},
15+
{
16+
"size" : "2320x720",
17+
"idiom" : "tv",
18+
"filename" : "Top Shelf Image Wide.imageset",
19+
"role" : "top-shelf-image-wide"
20+
},
21+
{
22+
"size" : "1920x720",
23+
"idiom" : "tv",
24+
"filename" : "Top Shelf Image.imageset",
25+
"role" : "top-shelf-image"
26+
}
27+
],
28+
"info" : {
29+
"version" : 1,
30+
"author" : "xcode"
31+
}
32+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "tv",
9+
"scale" : "2x"
10+
},
11+
{
12+
"idiom" : "tv-marketing",
13+
"scale" : "1x"
14+
},
15+
{
16+
"idiom" : "tv-marketing",
17+
"scale" : "2x"
18+
}
19+
],
20+
"info" : {
21+
"version" : 1,
22+
"author" : "xcode"
23+
}
24+
}
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
{
2+
"images" : [
3+
{
4+
"idiom" : "tv",
5+
"scale" : "1x"
6+
},
7+
{
8+
"idiom" : "tv",
9+
"scale" : "2x"
10+
},
11+
{
12+
"idiom" : "tv-marketing",
13+
"scale" : "1x"
14+
},
15+
{
16+
"idiom" : "tv-marketing",
17+
"scale" : "2x"
18+
}
19+
],
20+
"info" : {
21+
"version" : 1,
22+
"author" : "xcode"
23+
}
24+
}
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
{
2+
"info" : {
3+
"version" : 1,
4+
"author" : "xcode"
5+
}
6+
}

0 commit comments

Comments
 (0)