Skip to content

Commit 8ac381a

Browse files
update
1 parent e54104c commit 8ac381a

File tree

33 files changed

+485
-15
lines changed

33 files changed

+485
-15
lines changed

.github/workflows/build.yml

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
name: Build tvOS App
2+
3+
on:
4+
push:
5+
branches:
6+
- main
7+
pull_request:
8+
9+
jobs:
10+
build:
11+
name: Build tvOS App
12+
runs-on: macos-latest
13+
14+
steps:
15+
- name: Checkout Code
16+
uses: actions/checkout@v3
17+
18+
- name: Set Up Xcode
19+
run: sudo xcode-select -switch /Applications/Xcode.app
20+
21+
- name: Install Dependencies
22+
run: |
23+
brew install cocoapods
24+
pod install
25+
26+
- name: Build tvOS App
27+
run: |
28+
xcodebuild clean \
29+
-workspace tvos-example.xcodeproj/project.xcworkspace \
30+
-scheme tvos-example \
31+
-sdk appletvsimulator \
32+
-configuration Release \
33+
-derivedDataPath build
34+
35+
- name: Export IPA
36+
run: |
37+
mkdir -p build/ipa
38+
xcodebuild \
39+
-exportArchive \
40+
-archivePath build/Build/Products/Release-appletvsimulator/tvos-example.xcarchive \
41+
-exportPath build/ipa \
42+
-exportOptionsPlist ExportOptions.plist
43+
44+
- name: Upload Build Artifact
45+
uses: actions/upload-artifact@v3
46+
with:
47+
name: tvos-example-ipa
48+
path: build/ipa/tvos-example.ipa
49+

README.md

Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
# tvOS Example App
2+
3+
This is a simple tvOS example app designed for use with [TestingBot's SmartTV Appium Testing](https://testingbot.com/). The app includes interactive elements such as thumbnails, input fields and navigation to demonstrate Appium's ability to interact with tvOS applications.
4+
TestingBot provides SmartTV Testing in the Cloud, on physical Apple TV devices.
5+
6+
## Features
7+
8+
- **Thumbnails Grid**: Displays a list of items with images, descriptions, and buttons.
9+
- **Interactive Input Fields**: Includes text fields for entering numbers and a computed sum displayed in a result field.
10+
- **Navigation**: Tapping on thumbnails updates the detail view with selected item information.
11+
- **Accessibility Identifiers**: All interactive elements include unique identifiers to support Appium testing.
12+
13+
## Requirements
14+
15+
- **Xcode**: Version 14.0 or later
16+
- **tvOS Simulator** or an Apple TV device
17+
- **SwiftUI**: Used for the UI design
18+
- **TestingBot Account**: For integrating with TestingBot's SmartTV Appium testing.
19+
20+
## Installation
21+
22+
1. Clone this repository
23+
2. Build with XCode

tvos-example.xcodeproj/project.pbxproj

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -393,11 +393,13 @@
393393
buildSettings = {
394394
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
395395
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
396+
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
396397
CODE_SIGN_STYLE = Automatic;
397398
CURRENT_PROJECT_VERSION = 1;
398399
DEVELOPMENT_ASSET_PATHS = "\"tvos-example/Preview Content\"";
399400
ENABLE_PREVIEWS = YES;
400401
GENERATE_INFOPLIST_FILE = YES;
402+
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
401403
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
402404
INFOPLIST_KEY_UIUserInterfaceStyle = Automatic;
403405
LD_RUNPATH_SEARCH_PATHS = (
@@ -410,6 +412,7 @@
410412
SWIFT_EMIT_LOC_STRINGS = YES;
411413
SWIFT_VERSION = 5.0;
412414
TARGETED_DEVICE_FAMILY = 3;
415+
TVOS_DEPLOYMENT_TARGET = 17.4;
413416
};
414417
name = Debug;
415418
};
@@ -418,11 +421,13 @@
418421
buildSettings = {
419422
ASSETCATALOG_COMPILER_APPICON_NAME = "App Icon & Top Shelf Image";
420423
ASSETCATALOG_COMPILER_GLOBAL_ACCENT_COLOR_NAME = AccentColor;
424+
ASSETCATALOG_COMPILER_INCLUDE_ALL_APPICON_ASSETS = NO;
421425
CODE_SIGN_STYLE = Automatic;
422426
CURRENT_PROJECT_VERSION = 1;
423427
DEVELOPMENT_ASSET_PATHS = "\"tvos-example/Preview Content\"";
424428
ENABLE_PREVIEWS = YES;
425429
GENERATE_INFOPLIST_FILE = YES;
430+
INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.utilities";
426431
INFOPLIST_KEY_UILaunchScreen_Generation = YES;
427432
INFOPLIST_KEY_UIUserInterfaceStyle = Automatic;
428433
LD_RUNPATH_SEARCH_PATHS = (
@@ -435,6 +440,7 @@
435440
SWIFT_EMIT_LOC_STRINGS = YES;
436441
SWIFT_VERSION = 5.0;
437442
TARGETED_DEVICE_FAMILY = 3;
443+
TVOS_DEPLOYMENT_TARGET = 17.4;
438444
};
439445
name = Release;
440446
};

tvos-example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Back.imagestacklayer/Content.imageset/Contents.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"images" : [
33
{
4+
"filename" : "fixed2_fully_opaque.png",
45
"idiom" : "tv",
56
"scale" : "1x"
67
},
Loading

tvos-example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Front.imagestacklayer/Content.imageset/Contents.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"images" : [
33
{
4+
"filename" : "fixed.png",
45
"idiom" : "tv",
56
"scale" : "1x"
67
},
Loading

tvos-example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/App Icon.imagestack/Middle.imagestacklayer/Content.imageset/Contents.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"images" : [
33
{
4+
"filename" : "middle.png",
45
"idiom" : "tv",
56
"scale" : "1x"
67
},
Loading

tvos-example/Assets.xcassets/App Icon & Top Shelf Image.brandassets/Top Shelf Image.imageset/Contents.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
{
22
"images" : [
33
{
4+
"filename" : "shelf2.png",
45
"idiom" : "tv",
56
"scale" : "1x"
67
},

0 commit comments

Comments
 (0)