diff --git a/backend/app/controllers/public/pages_controller.rb b/backend/app/controllers/public/pages_controller.rb
index e1efb79..bc2b078 100644
--- a/backend/app/controllers/public/pages_controller.rb
+++ b/backend/app/controllers/public/pages_controller.rb
@@ -11,17 +11,8 @@ module Public
load_club_billing_context_for_pricing
end
- private
-
- def load_club_billing_context_for_pricing
- return unless logged_in?
-
- @club = current_user.primary_club
- return unless @club
-
- @subscription = @club.subscription
- @team = @club.teams.order(:name).first
- @entitlements = @team&.entitlements
+ def support
+ @app_store_review_chrome = true
end
def privacy
@@ -38,5 +29,18 @@ module Public
def pallavolo
end
+
+ private
+
+ def load_club_billing_context_for_pricing
+ return unless logged_in?
+
+ @club = current_user.primary_club
+ return unless @club
+
+ @subscription = @club.subscription
+ @team = @club.teams.order(:name).first
+ @entitlements = @team&.entitlements
+ end
end
end
diff --git a/backend/app/controllers/public/sitemap_controller.rb b/backend/app/controllers/public/sitemap_controller.rb
index 814a237..35e1bde 100644
--- a/backend/app/controllers/public/sitemap_controller.rb
+++ b/backend/app/controllers/public/sitemap_controller.rb
@@ -11,6 +11,7 @@ module Public
{ loc: "#{base}/live", changefreq: "hourly", priority: "0.85" },
{ loc: "#{base}/squadre", changefreq: "daily", priority: "0.85" },
{ loc: "#{base}/privacy", changefreq: "yearly", priority: "0.3" },
+ { loc: "#{base}/support", changefreq: "yearly", priority: "0.3" },
{ loc: "#{base}/cookie", changefreq: "yearly", priority: "0.3" },
{ loc: "#{base}/termini", changefreq: "yearly", priority: "0.3" }
]
diff --git a/backend/app/views/layouts/marketing.html.erb b/backend/app/views/layouts/marketing.html.erb
index 0561bfa..11303a1 100644
--- a/backend/app/views/layouts/marketing.html.erb
+++ b/backend/app/views/layouts/marketing.html.erb
@@ -12,13 +12,13 @@
data-ga-id="<%= MatchLiveTv.google_analytics_measurement_id %>"<% end %>>
<%= render "shared/cookie_banner" %>
- <%= render "shared/marketing_nav" %>
+ <%= render(@app_store_review_chrome ? "shared/marketing_nav_app_store" : "shared/marketing_nav") %>
+ <%= link_to t("common.support"), public_support_path %> ·
<%= link_to t("common.pricing"), public_prezzi_path %> ·
<%= link_to t("footer.live"), public_live_index_path %> ·
<%= link_to t("common.faq"), public_faq_path %> ·
diff --git a/backend/app/views/shared/_marketing_footer_app_store.html.erb b/backend/app/views/shared/_marketing_footer_app_store.html.erb
new file mode 100644
index 0000000..8487c3b
--- /dev/null
+++ b/backend/app/views/shared/_marketing_footer_app_store.html.erb
@@ -0,0 +1,19 @@
+<%# Footer minimale per App Store Review: solo link legali/supporto, nessun CTA commerciale. %>
+
diff --git a/backend/app/views/shared/_marketing_nav_app_store.html.erb b/backend/app/views/shared/_marketing_nav_app_store.html.erb
new file mode 100644
index 0000000..06a0a18
--- /dev/null
+++ b/backend/app/views/shared/_marketing_nav_app_store.html.erb
@@ -0,0 +1,86 @@
+<%# Chrome minimale per App Store Review: branding, lingua, Privacy e Supporto — senza CTA commerciali. %>
+
+
+
+
+
+
+ <%= link_to public_support_path, class: "nav-mobile-brand", aria: { label: "Match Live TV" }, title: "Match Live TV" do %>
+
+
Match Live TV
+ <% end %>
+
+ <%= render "shared/language_switcher" %>
+
+
+ <%= link_to t("common.support"), public_support_path, class: "nav-active" %>
+ <%= link_to t("common.privacy"), public_privacy_path, class: (request.path == "/privacy" ? "nav-active" : nil) %>
+
+
+
+
+
+
+
diff --git a/backend/config/initializers/match_live_tv.rb b/backend/config/initializers/match_live_tv.rb
index f97faac..f6b3a0c 100644
--- a/backend/config/initializers/match_live_tv.rb
+++ b/backend/config/initializers/match_live_tv.rb
@@ -81,6 +81,12 @@ module MatchLiveTv
ENV.fetch("PRIVACY_CONTACT_EMAIL", "privacy@matchlivetv.it")
end
+ # Email di supporto (App Store Support URL e contatti assistenza).
+ # Preferisce SUPPORT_CONTACT_EMAIL; default = contatto commerciale già usato nel sito.
+ def support_email
+ ENV["SUPPORT_CONTACT_EMAIL"].presence || "info@matchlivetv.it"
+ end
+
def privacy_controller_address
ENV.fetch("PRIVACY_CONTROLLER_ADDRESS", "Via Guido De Ruggiero, 89 - 20142 - Milano (MI)")
end
diff --git a/backend/config/locales/legal.de.yml b/backend/config/locales/legal.de.yml
index a1699cb..c521da1 100644
--- a/backend/config/locales/legal.de.yml
+++ b/backend/config/locales/legal.de.yml
@@ -195,3 +195,18 @@ de:
s6_body_html: "Um die von der DSGVO vorgesehenen Rechte auszuüben (Zugang, Löschung, Widerspruch, Widerruf der Einwilligung), schreiben Sie an %{email_link}. Details finden Sie im %{privacy_doc_link}."
s6_privacy_doc_link_text: Datenschutzdokument
manage_button: Cookie-Einstellungen verwalten
+ support:
+ title: Match Live TV Support
+ meta_description: "Match Live TV Hilfe: Zugangsprobleme, Livestreams, Teamverwaltung und Support-Kontaktdaten."
+ h1: Match Live TV Support
+ intro: "Brauchen Sie Hilfe mit Match Live TV? Bei Problemen mit dem Zugang, der Einrichtung von Livestreams, der Spielverwaltung oder der Nutzung der App können Sie unseren Support kontaktieren."
+ email_label: "Support-E-Mail:"
+ access_title: Zugangsprobleme
+ access_body: "Wenn Sie sich nicht anmelden können, prüfen Sie die Zugangsdaten, die Sie von Ihrem Sportverein erhalten haben. Wenn das Problem weiterhin besteht, kontaktieren Sie den Support."
+ live_title: Probleme während eines Livestreams
+ live_body: "Prüfen Sie Ihre Internetverbindung und versuchen Sie erneut, die Übertragung in der App zu starten. Wenn das Problem weiterhin besteht, kontaktieren Sie den Support und geben Sie Gerät, App-Version und eine kurze Beschreibung des Problems an."
+ team_title: Teamverwaltung
+ team_body: "Konten und Übertragungsberechtigungen werden vom Sportverein verwaltet."
+ privacy_title: Datenschutz
+ privacy_body_html: "Informationen zur Verarbeitung personenbezogener Daten finden Sie auf der Seite %{privacy_link}."
+ privacy_link_text: Datenschutz
diff --git a/backend/config/locales/legal.en.yml b/backend/config/locales/legal.en.yml
index 6c41b51..dbef280 100644
--- a/backend/config/locales/legal.en.yml
+++ b/backend/config/locales/legal.en.yml
@@ -195,3 +195,18 @@ en:
s6_body_html: "To exercise the rights provided by the GDPR (access, erasure, objection, withdrawal of consent) write to %{email_link}. Details are in the %{privacy_doc_link}."
s6_privacy_doc_link_text: privacy document
manage_button: Manage cookie preferences
+ support:
+ title: Match Live TV Support
+ meta_description: "Match Live TV help: access issues, live streaming, team management and support contact details."
+ h1: Match Live TV Support
+ intro: "Need help with Match Live TV? For access issues, live stream setup, match management or app usage, you can contact our support team."
+ email_label: "Support email:"
+ access_title: Access issues
+ access_body: "If you cannot sign in, check the credentials provided by your sports club. If the problem persists, contact support."
+ live_title: Issues during a live stream
+ live_body: "Check your Internet connection and try starting the broadcast from the app again. If the problem persists, contact support and include your device, app version and a short description of the issue."
+ team_title: Team management
+ team_body: "Accounts and broadcasting permissions are managed by the sports club."
+ privacy_title: Privacy
+ privacy_body_html: "For information on personal data processing, see the %{privacy_link} page."
+ privacy_link_text: Privacy
diff --git a/backend/config/locales/legal.es.yml b/backend/config/locales/legal.es.yml
index 3976662..851ba1a 100644
--- a/backend/config/locales/legal.es.yml
+++ b/backend/config/locales/legal.es.yml
@@ -195,3 +195,18 @@ es:
s6_body_html: "Para ejercer los derechos previstos por el RGPD (acceso, supresión, oposición, revocación del consentimiento) escribe a %{email_link}. Más detalles en el %{privacy_doc_link}."
s6_privacy_doc_link_text: documento de privacidad
manage_button: Gestionar preferencias de cookies
+ support:
+ title: Soporte Match Live TV
+ meta_description: "Ayuda de Match Live TV: problemas de acceso, directos, gestión del equipo y datos de contacto del soporte."
+ h1: Soporte Match Live TV
+ intro: "¿Necesitas ayuda con Match Live TV? Para problemas de acceso, configuración de directos, gestión de partidos o uso de la app puedes contactar con nuestro soporte."
+ email_label: "Correo de soporte:"
+ access_title: Problemas de acceso
+ access_body: "Si no puedes acceder, verifica las credenciales recibidas de tu club deportivo. Si el problema continúa, contacta con el soporte."
+ live_title: Problemas durante un directo
+ live_body: "Verifica la conexión a Internet e intenta de nuevo iniciar la transmisión desde la app. Si el problema continúa, contacta con el soporte indicando el dispositivo, la versión de la app y una breve descripción del problema."
+ team_title: Gestión del equipo
+ team_body: "Las cuentas y los permisos de transmisión los gestiona el club deportivo."
+ privacy_title: Privacidad
+ privacy_body_html: "Para información sobre el tratamiento de datos personales, consulta la página %{privacy_link}."
+ privacy_link_text: Privacidad
diff --git a/backend/config/locales/legal.fr.yml b/backend/config/locales/legal.fr.yml
index 467be5c..fc9e061 100644
--- a/backend/config/locales/legal.fr.yml
+++ b/backend/config/locales/legal.fr.yml
@@ -195,3 +195,18 @@ fr:
s6_body_html: "Pour exercer les droits prévus par le RGPD (accès, effacement, opposition, retrait du consentement), écrivez à %{email_link}. Détails dans le %{privacy_doc_link}."
s6_privacy_doc_link_text: document de confidentialité
manage_button: Gérer les préférences de cookies
+ support:
+ title: Support Match Live TV
+ meta_description: "Assistance Match Live TV : problèmes d'accès, directs, gestion d'équipe et coordonnées du support."
+ h1: Support Match Live TV
+ intro: "Besoin d'aide avec Match Live TV ? Pour les problèmes d'accès, la configuration des directs, la gestion des matchs ou l'utilisation de l'application, vous pouvez contacter notre support."
+ email_label: "E-mail du support :"
+ access_title: Problèmes d'accès
+ access_body: "Si vous ne parvenez pas à vous connecter, vérifiez les identifiants fournis par votre club sportif. Si le problème persiste, contactez le support."
+ live_title: Problèmes pendant un direct
+ live_body: "Vérifiez votre connexion Internet et réessayez de démarrer la diffusion depuis l'application. Si le problème persiste, contactez le support en indiquant l'appareil, la version de l'application et une brève description du problème."
+ team_title: Gestion de l'équipe
+ team_body: "Les comptes et les autorisations de diffusion sont gérés par le club sportif."
+ privacy_title: Confidentialité
+ privacy_body_html: "Pour les informations sur le traitement des données personnelles, consultez la page %{privacy_link}."
+ privacy_link_text: Confidentialité
diff --git a/backend/config/locales/legal.it.yml b/backend/config/locales/legal.it.yml
index 68a9f78..783bba5 100644
--- a/backend/config/locales/legal.it.yml
+++ b/backend/config/locales/legal.it.yml
@@ -195,3 +195,18 @@ it:
s6_body_html: "Per esercitare i diritti previsti dal GDPR (accesso, cancellazione, opposizione, revoca consenso) scrivi a %{email_link}. Dettagli nel %{privacy_doc_link}."
s6_privacy_doc_link_text: documento privacy
manage_button: Gestisci preferenze cookie
+ support:
+ title: Supporto Match Live TV
+ meta_description: "Assistenza Match Live TV: problemi di accesso, dirette live, gestione squadra e contatti del supporto."
+ h1: Supporto Match Live TV
+ intro: "Hai bisogno di assistenza con Match Live TV? Per problemi di accesso, configurazione delle dirette, gestione delle partite o utilizzo dell’app puoi contattare il nostro supporto."
+ email_label: "Email di supporto:"
+ access_title: Problemi di accesso
+ access_body: "Se non riesci ad accedere, verifica le credenziali ricevute dalla tua società sportiva. Se il problema persiste, contatta il supporto."
+ live_title: Problemi durante una diretta
+ live_body: "Verifica la connessione Internet e riprova ad avviare la trasmissione dall’app. Se il problema persiste, contatta il supporto indicando dispositivo, versione dell’app e una breve descrizione del problema."
+ team_title: Gestione della squadra
+ team_body: "Gli account e le autorizzazioni per la trasmissione sono gestiti dalla società sportiva."
+ privacy_title: Privacy
+ privacy_body_html: "Per informazioni sul trattamento dei dati personali consulta la pagina %{privacy_link}."
+ privacy_link_text: Privacy
diff --git a/backend/config/locales/ui.de.yml b/backend/config/locales/ui.de.yml
index 88cf26c..3f0ff76 100644
--- a/backend/config/locales/ui.de.yml
+++ b/backend/config/locales/ui.de.yml
@@ -133,6 +133,7 @@ de:
save_password: Passwort aktualisieren
common:
privacy: Datenschutz
+ support: Support
cookies: Cookies
terms: AGB
pricing: Preise
diff --git a/backend/config/locales/ui.en.yml b/backend/config/locales/ui.en.yml
index 114682c..6fabb6c 100644
--- a/backend/config/locales/ui.en.yml
+++ b/backend/config/locales/ui.en.yml
@@ -133,6 +133,7 @@ en:
save_password: Update password
common:
privacy: Privacy
+ support: Support
cookies: Cookies
terms: Terms
pricing: Pricing
diff --git a/backend/config/locales/ui.es.yml b/backend/config/locales/ui.es.yml
index a4b3e74..7ff839d 100644
--- a/backend/config/locales/ui.es.yml
+++ b/backend/config/locales/ui.es.yml
@@ -133,6 +133,7 @@ es:
save_password: Actualizar contraseña
common:
privacy: Privacidad
+ support: Soporte
cookies: Cookies
terms: Términos
pricing: Precios
diff --git a/backend/config/locales/ui.fr.yml b/backend/config/locales/ui.fr.yml
index 7072601..3b17f06 100644
--- a/backend/config/locales/ui.fr.yml
+++ b/backend/config/locales/ui.fr.yml
@@ -133,6 +133,7 @@ fr:
save_password: Mettre à jour le mot de passe
common:
privacy: Confidentialité
+ support: Support
cookies: Cookies
terms: Conditions
pricing: Tarifs
diff --git a/backend/config/locales/ui.it.yml b/backend/config/locales/ui.it.yml
index daf409c..b1fd086 100644
--- a/backend/config/locales/ui.it.yml
+++ b/backend/config/locales/ui.it.yml
@@ -133,6 +133,7 @@ it:
save_password: Aggiorna password
common:
privacy: Privacy
+ support: Supporto
cookies: Cookie
terms: Termini
pricing: Prezzi
diff --git a/backend/config/routes.rb b/backend/config/routes.rb
index 181bce7..84e9e08 100644
--- a/backend/config/routes.rb
+++ b/backend/config/routes.rb
@@ -163,6 +163,7 @@ Rails.application.routes.draw do
get "prezzi", to: "pages#pricing", as: :prezzi
get "pricing", to: redirect("/prezzi")
get "privacy", to: "pages#privacy", as: :privacy
+ get "support", to: "pages#support", as: :support
get "cookie", to: "pages#cookies", as: :cookies
get "cookies", to: redirect("/cookie")
get "termini", to: "pages#terms", as: :termini
diff --git a/backend/spec/requests/public/support_page_spec.rb b/backend/spec/requests/public/support_page_spec.rb
new file mode 100644
index 0000000..f50cdf1
--- /dev/null
+++ b/backend/spec/requests/public/support_page_spec.rb
@@ -0,0 +1,57 @@
+require "rails_helper"
+
+RSpec.describe "Public support page", type: :request do
+ it "è pubblica, indicizzabile e mostra l'email di supporto configurata" do
+ get public_support_path
+
+ expect(response).to have_http_status(:ok)
+ expect(response.body).to include(MatchLiveTv.support_email)
+ expect(response.body).to include("mailto:#{MatchLiveTv.support_email}")
+ expect(response.body).to include(I18n.t("legal.support.h1", locale: :it))
+ expect(response.body).to include('rel="canonical"')
+ expect(response.body).to include(public_support_path)
+ expect(response.body).to include(public_privacy_path)
+ end
+
+ it "non espone CTA o link commerciali (App Store Review)" do
+ get public_support_path
+ body = response.body
+
+ expect(body).not_to include(public_prezzi_path)
+ expect(body).not_to include(public_signup_path)
+ expect(body).not_to include('href="/prezzi"')
+ expect(body).not_to include('href="/signup"')
+ expect(body).not_to include(I18n.t("nav.signup", locale: :it))
+ expect(body).not_to include(I18n.t("nav.pricing", locale: :it))
+ expect(body).not_to include(I18n.t("common.pricing", locale: :it))
+ expect(body).not_to match(/\bPremium Light\b/i)
+ expect(body).not_to match(/\bPremium Full\b/i)
+ expect(body).not_to match(/\bpiano Free\b/i)
+ expect(body).not_to match(/\bAbbonati\b/i)
+ expect(body).not_to match(/\bAcquista\b/i)
+ end
+
+ {
+ "it" => "Supporto Match Live TV",
+ "en" => "Match Live TV Support",
+ "fr" => "Support Match Live TV",
+ "de" => "Match Live TV Support",
+ "es" => "Soporte Match Live TV"
+ }.each do |locale, heading|
+ it "renderizza correttamente in #{locale} senza translation missing" do
+ cookies[:mltv_locale] = locale
+ get public_support_path
+
+ expect(response).to have_http_status(:ok)
+ expect(response.body).to include(heading)
+ expect(response.body).not_to include("translation missing")
+ end
+ end
+
+ it "include /support nella sitemap" do
+ get "/sitemap.xml"
+
+ expect(response).to have_http_status(:ok)
+ expect(response.body).to include("#{MatchLiveTv.app_public_url.chomp('/')}/support")
+ end
+end
diff --git a/infra/.env.example b/infra/.env.example
index ec6149b..bae5327 100644
--- a/infra/.env.example
+++ b/infra/.env.example
@@ -15,6 +15,8 @@ YOUTUBE_MOCK_STREAM_KEY=mock-stream-key
PRIVACY_CONTROLLER_NAME=Emiliano Frascaro
PRIVACY_CONTROLLER_ADDRESS=Via Guido De Ruggiero, 89 - 20142 - Milano (MI)
PRIVACY_CONTACT_EMAIL=privacy@matchlivetv.it
+# Opzionale: email dedicata di supporto (default = info@matchlivetv.it)
+# SUPPORT_CONTACT_EMAIL=info@matchlivetv.it
MAILER_FROM=Match Live TV
PASSWORD_RESET_EXPIRY_HOURS=2
diff --git a/infra/.env.production.example b/infra/.env.production.example
index 783258f..0309bd7 100644
--- a/infra/.env.production.example
+++ b/infra/.env.production.example
@@ -39,6 +39,8 @@ RAILS_LOG_LEVEL=info
PRIVACY_CONTROLLER_NAME=Emiliano Frascaro
PRIVACY_CONTROLLER_ADDRESS=Via Guido De Ruggiero, 89 - 20142 - Milano (MI)
PRIVACY_CONTACT_EMAIL=privacy@matchlivetv.it
+# Opzionale: email di supporto App Store (default = info@matchlivetv.it)
+# SUPPORT_CONTACT_EMAIL=info@matchlivetv.it
PRIVACY_CONTROLLER_VAT=
# Email transazionali (reset password, inviti)
diff --git a/infra/docker-compose.prod.yml b/infra/docker-compose.prod.yml
index 62d143e..fecc287 100644
--- a/infra/docker-compose.prod.yml
+++ b/infra/docker-compose.prod.yml
@@ -73,6 +73,7 @@ services:
HLS_PUBLIC_URL: ${HLS_PUBLIC_URL:-http://localhost:8888}
APP_PUBLIC_URL: ${APP_PUBLIC_URL:-http://localhost:3000}
PRIVACY_CONTACT_EMAIL: ${PRIVACY_CONTACT_EMAIL:-privacy@matchlivetv.it}
+ SUPPORT_CONTACT_EMAIL: ${SUPPORT_CONTACT_EMAIL:-}
PRIVACY_CONTROLLER_NAME: ${PRIVACY_CONTROLLER_NAME:-Emiliano Frascaro}
PRIVACY_CONTROLLER_ADDRESS: ${PRIVACY_CONTROLLER_ADDRESS:-Via Guido De Ruggiero, 89 - 20142 - Milano (MI)}
PRIVACY_CONTROLLER_VAT: ${PRIVACY_CONTROLLER_VAT:-}
diff --git a/infra/docker-compose.yml b/infra/docker-compose.yml
index 71845a5..96b5da6 100644
--- a/infra/docker-compose.yml
+++ b/infra/docker-compose.yml
@@ -71,6 +71,7 @@ services:
PRIVACY_CONTROLLER_NAME: ${PRIVACY_CONTROLLER_NAME:-Emiliano Frascaro}
PRIVACY_CONTROLLER_ADDRESS: ${PRIVACY_CONTROLLER_ADDRESS:-Via Guido De Ruggiero, 89 - 20142 - Milano (MI)}
PRIVACY_CONTACT_EMAIL: ${PRIVACY_CONTACT_EMAIL:-privacy@matchlivetv.it}
+ SUPPORT_CONTACT_EMAIL: ${SUPPORT_CONTACT_EMAIL:-}
MAILER_FROM: ${MAILER_FROM:-Match Live TV }
APP_PUBLIC_URL: ${APP_PUBLIC_URL:-http://localhost:3000}
STRIPE_SECRET_KEY: ${STRIPE_SECRET_KEY:-}
diff --git a/native/ios/MatchLiveTv.xcodeproj/project.pbxproj b/native/ios/MatchLiveTv.xcodeproj/project.pbxproj
index 33aa63a..ecebd6f 100644
--- a/native/ios/MatchLiveTv.xcodeproj/project.pbxproj
+++ b/native/ios/MatchLiveTv.xcodeproj/project.pbxproj
@@ -1,276 +1,766 @@
// !$*UTF8*$!
{
archiveVersion = 1;
- classes = {};
+ classes = {
+ };
objectVersion = 60;
objects = {
- 5F5FC005B683447B82372E36 /* MatchLiveTvApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveTvApp.swift; path = MatchLiveTv/App/MatchLiveTvApp.swift; sourceTree = ""; };
- C7D22FF2CF3D4230A7BAA60C /* ApiInstant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiInstant.swift; path = MatchLiveTv/Core/ApiInstant.swift; sourceTree = ""; };
- 9F180A1FA5DD4DB3BA7E3B41 /* AppConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppConfig.swift; path = MatchLiveTv/Core/AppConfig.swift; sourceTree = ""; };
- 123A61DD4A6442728811488E /* AppLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppLanguage.swift; path = MatchLiveTv/Core/AppLanguage.swift; sourceTree = ""; };
- CDDF270D449A43F18399966D /* ColorHex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ColorHex.swift; path = MatchLiveTv/Core/ColorHex.swift; sourceTree = ""; };
- 902831E3D87C46359F0D0A21 /* DeviceTelemetry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DeviceTelemetry.swift; path = MatchLiveTv/Core/DeviceTelemetry.swift; sourceTree = ""; };
- ADBBD9C8DF9F4A47ACEFE7B1 /* MediaUrl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MediaUrl.swift; path = MatchLiveTv/Core/MediaUrl.swift; sourceTree = ""; };
- AAC2A198868F4B4E9010F862 /* ThermalState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalState.swift; path = MatchLiveTv/Core/Thermal/ThermalState.swift; sourceTree = ""; };
- C9D84DE8EFA34B4CBDFF43F1 /* ThermalStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalStateManager.swift; path = MatchLiveTv/Core/Thermal/ThermalStateManager.swift; sourceTree = ""; };
- 31251A1297F24C70A14D8702 /* TokenStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TokenStore.swift; path = MatchLiveTv/Core/TokenStore.swift; sourceTree = ""; };
- 1BEBDFA6B21041729156ADFA /* UserFacingError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UserFacingError.swift; path = MatchLiveTv/Core/UserFacingError.swift; sourceTree = ""; };
- 17E7568BD3D94B34A361F470 /* ApiDtos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiDtos.swift; path = MatchLiveTv/Data/API/ApiDtos.swift; sourceTree = ""; };
- 99D52E8096064A359AAE3D47 /* MatchLiveAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveAPI.swift; path = MatchLiveTv/Data/API/MatchLiveAPI.swift; sourceTree = ""; };
- 7FC98372F1BD474BB0365488 /* AppContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppContainer.swift; path = MatchLiveTv/Data/AppContainer.swift; sourceTree = ""; };
- 98526C26B2584F55AADF0FFF /* ActionCableClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ActionCableClient.swift; path = MatchLiveTv/Data/Cable/ActionCableClient.swift; sourceTree = ""; };
- 50C70C614F3C45B9B824E465 /* SessionCableService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SessionCableService.swift; path = MatchLiveTv/Data/Cable/SessionCableService.swift; sourceTree = ""; };
- EE0A49E8D59947448DAA7851 /* AuthRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AuthRepository.swift; path = MatchLiveTv/Data/Repository/AuthRepository.swift; sourceTree = ""; };
- 537FC2C063D341DF97A391B9 /* MatchRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchRepository.swift; path = MatchLiveTv/Data/Repository/MatchRepository.swift; sourceTree = ""; };
- 813463F3E17D453EAA801739 /* MatchSessionLauncher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchSessionLauncher.swift; path = MatchLiveTv/Data/Repository/MatchSessionLauncher.swift; sourceTree = ""; };
- CCC8ECFD24A14054BDD984C3 /* ScoreRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreRepository.swift; path = MatchLiveTv/Data/Repository/ScoreRepository.swift; sourceTree = ""; };
- 87C01CC031C34343B3EBFF08 /* SessionRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SessionRepository.swift; path = MatchLiveTv/Data/Repository/SessionRepository.swift; sourceTree = ""; };
- B0B243B2A21344558626DF7F /* ScoreController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreController.swift; path = MatchLiveTv/Data/Scoring/ScoreController.swift; sourceTree = ""; };
- 81CA0BDC6EE44C4290D7E483 /* WizardSessionHolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardSessionHolder.swift; path = MatchLiveTv/Data/WizardSessionHolder.swift; sourceTree = ""; };
- 951A7265EF5C41A9A12DD86A /* MatchHubFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchHubFilter.swift; path = MatchLiveTv/Domain/MatchHubFilter.swift; sourceTree = ""; };
- 18445F0E4070424F86D55556 /* MatchScoringRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScoringRules.swift; path = MatchLiveTv/Domain/MatchScoringRules.swift; sourceTree = ""; };
- 61FCDE0B00FB485CB9B09110 /* Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Models.swift; path = MatchLiveTv/Domain/Models.swift; sourceTree = ""; };
- EA08E23008964D02AB59377E /* ScoreState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreState.swift; path = MatchLiveTv/Domain/ScoreState.swift; sourceTree = ""; };
- C9975D8D02CF4FA0A47696DD /* BroadcastModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastModels.swift; path = MatchLiveTv/Streaming/BroadcastModels.swift; sourceTree = ""; };
- B2432C46DFBA4322887D8C59 /* BroadcastOrientationPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastOrientationPolicy.swift; path = MatchLiveTv/Streaming/BroadcastOrientationPolicy.swift; sourceTree = ""; };
- A43B670D8BE94F66B38885C8 /* BroadcastVideoOrientation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastVideoOrientation.swift; path = MatchLiveTv/Streaming/BroadcastVideoOrientation.swift; sourceTree = ""; };
- F438E7E164F44C7B856C4808 /* LiveBroadcastCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastCoordinator.swift; path = MatchLiveTv/Streaming/LiveBroadcastCoordinator.swift; sourceTree = ""; };
- C6D684B88BEB440F8D331D3D /* LiveBroadcastEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastEngine.swift; path = MatchLiveTv/Streaming/LiveBroadcastEngine.swift; sourceTree = ""; };
- 78104BD8D9044B659F33B02F /* CompactScoreboardElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CompactScoreboardElement.swift; path = MatchLiveTv/Streaming/Overlay/CompactScoreboardElement.swift; sourceTree = ""; };
- A8048B96407947C7BA4222E8 /* OverlayCanvasRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayCanvasRenderer.swift; path = MatchLiveTv/Streaming/Overlay/OverlayCanvasRenderer.swift; sourceTree = ""; };
- B5BF3429BFBA4DB3BDBD721D /* OverlayLogoCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayLogoCache.swift; path = MatchLiveTv/Streaming/Overlay/OverlayLogoCache.swift; sourceTree = ""; };
- 509414F2274844F4B9A956C3 /* OverlayMappings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayMappings.swift; path = MatchLiveTv/Streaming/Overlay/OverlayMappings.swift; sourceTree = ""; };
- 59E96B1417004CD3BC247C0F /* OverlayRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayRenderer.swift; path = MatchLiveTv/Streaming/Overlay/OverlayRenderer.swift; sourceTree = ""; };
- 2DDC7305F3B549D0B7646B14 /* OverlayState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayState.swift; path = MatchLiveTv/Streaming/Overlay/OverlayState.swift; sourceTree = ""; };
- 9D645FD397CD40DDA859F160 /* ScoreboardElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreboardElement.swift; path = MatchLiveTv/Streaming/Overlay/ScoreboardElement.swift; sourceTree = ""; };
- 18B95E0D21B0407FA6723720 /* SponsorElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SponsorElement.swift; path = MatchLiveTv/Streaming/Overlay/SponsorElement.swift; sourceTree = ""; };
- 31750F1B9E294337BDBD5B56 /* WatermarkElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WatermarkElement.swift; path = MatchLiveTv/Streaming/Overlay/WatermarkElement.swift; sourceTree = ""; };
- 46CE696CAB994E2C8E399776 /* LivePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LivePreviewView.swift; path = MatchLiveTv/Streaming/Preview/LivePreviewView.swift; sourceTree = ""; };
- 8C2A2F7BAC2B4AC69E8BEAF7 /* StreamVideoPreset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StreamVideoPreset.swift; path = MatchLiveTv/Streaming/StreamVideoPreset.swift; sourceTree = ""; };
- 4419E10415414556B7C58458 /* AccountScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AccountScreen.swift; path = MatchLiveTv/UI/Account/AccountScreen.swift; sourceTree = ""; };
- E860A0E35362427DA84F8972 /* BroadcastControlsOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastControlsOverlay.swift; path = MatchLiveTv/UI/Broadcast/BroadcastControlsOverlay.swift; sourceTree = ""; };
- 71816F0D99E44551839474CE /* BroadcastScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastScreen.swift; path = MatchLiveTv/UI/Broadcast/BroadcastScreen.swift; sourceTree = ""; };
- 4637B286559F4BC294018AC5 /* LiveScoreActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveScoreActions.swift; path = MatchLiveTv/UI/Broadcast/LiveScoreActions.swift; sourceTree = ""; };
- 2FF23D4B51AE4DA5B99D4021 /* MatchLiveWordmark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveWordmark.swift; path = MatchLiveTv/UI/Components/MatchLiveWordmark.swift; sourceTree = ""; };
- 6F04C9EAB5984F938EC60BF4 /* MatchPrimaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchPrimaryButton.swift; path = MatchLiveTv/UI/Components/MatchPrimaryButton.swift; sourceTree = ""; };
- 39F3C00B63534E6AA6D8A90A /* MatchScreenScaffold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScreenScaffold.swift; path = MatchLiveTv/UI/Components/MatchScreenScaffold.swift; sourceTree = ""; };
- C7403EB9DBD8459A93D9E2D8 /* MatchSecondaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchSecondaryButton.swift; path = MatchLiveTv/UI/Components/MatchSecondaryButton.swift; sourceTree = ""; };
- 34BB2251A67E401A9F1E789E /* MatchStatusBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchStatusBadge.swift; path = MatchLiveTv/UI/Components/MatchStatusBadge.swift; sourceTree = ""; };
- AF8C38306C6F420DBC42DA2A /* ForgotPasswordScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ForgotPasswordScreen.swift; path = MatchLiveTv/UI/Login/ForgotPasswordScreen.swift; sourceTree = ""; };
- E124B3B49FC34520805CCC97 /* LoginScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LoginScreen.swift; path = MatchLiveTv/UI/Login/LoginScreen.swift; sourceTree = ""; };
- 56A95962EF2A4B8F821343D9 /* MatchesScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchesScreen.swift; path = MatchLiveTv/UI/Matches/MatchesScreen.swift; sourceTree = ""; };
- 866A83237E6943E89A165B9D /* AppNavHost.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppNavHost.swift; path = MatchLiveTv/UI/Navigation/AppNavHost.swift; sourceTree = ""; };
- 464CF87BEA644025B2D14644 /* ModalRoutes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ModalRoutes.swift; path = MatchLiveTv/UI/Navigation/ModalRoutes.swift; sourceTree = ""; };
- B214C9B30C794F00A31B0D83 /* Routes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Routes.swift; path = MatchLiveTv/UI/Navigation/Routes.swift; sourceTree = ""; };
- 3BFB2F18615747B1A1C9E9B2 /* BroadcastPermissions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastPermissions.swift; path = MatchLiveTv/UI/Permissions/BroadcastPermissions.swift; sourceTree = ""; };
- D7C29F5731A142C3A12B6DCA /* SplashScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SplashScreen.swift; path = MatchLiveTv/UI/Splash/SplashScreen.swift; sourceTree = ""; };
- 004F86D8E8BE47E589B923FA /* KeepScreenOn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = KeepScreenOn.swift; path = MatchLiveTv/UI/System/KeepScreenOn.swift; sourceTree = ""; };
- FF10FF45004F41AD82397DC9 /* ScreenOrientation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScreenOrientation.swift; path = MatchLiveTv/UI/System/ScreenOrientation.swift; sourceTree = ""; };
- 2B5C00419D09442FA8ED60F3 /* ShareSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ShareSheet.swift; path = MatchLiveTv/UI/System/ShareSheet.swift; sourceTree = ""; };
- D2996990D08341ABA52BE287 /* MatchColors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchColors.swift; path = MatchLiveTv/UI/Theme/MatchColors.swift; sourceTree = ""; };
- EAB037B1369B454D84F6850D /* StepMatchScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepMatchScreen.swift; path = MatchLiveTv/UI/Wizard/StepMatchScreen.swift; sourceTree = ""; };
- 1079231B9A4E446AA9AD6C0A /* StepNetworkTestScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepNetworkTestScreen.swift; path = MatchLiveTv/UI/Wizard/StepNetworkTestScreen.swift; sourceTree = ""; };
- 7EC0179FE6BC4323B1F9E1D3 /* StepTransmissionScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepTransmissionScreen.swift; path = MatchLiveTv/UI/Wizard/StepTransmissionScreen.swift; sourceTree = ""; };
- 6FBBE0F1399840FFA0E7EF2E /* TeamBrandingEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TeamBrandingEditor.swift; path = MatchLiveTv/UI/Wizard/TeamBrandingEditor.swift; sourceTree = ""; };
- 7001BB5D65B34280B306ECCF /* TeamColorPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TeamColorPicker.swift; path = MatchLiveTv/UI/Wizard/TeamColorPicker.swift; sourceTree = ""; };
- 5B75DC6D0B2248B2A6C9AA66 /* WizardComponents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardComponents.swift; path = MatchLiveTv/UI/Wizard/WizardComponents.swift; sourceTree = ""; };
- 3170F3149C614EC38B417905 /* WizardShellScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardShellScreen.swift; path = MatchLiveTv/UI/Wizard/WizardShellScreen.swift; sourceTree = ""; };
- 75FEB862C3A34BF8AC24052E /* ApiInstantTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiInstantTests.swift; path = MatchLiveTvTests/ApiInstantTests.swift; sourceTree = ""; };
- E5CA1FE59BA14F76BA94C995 /* BroadcastOrientationPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastOrientationPolicyTests.swift; path = MatchLiveTvTests/BroadcastOrientationPolicyTests.swift; sourceTree = ""; };
- 1830F9A925334BA4B65D490E /* LiveBroadcastCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastCoordinatorTests.swift; path = MatchLiveTvTests/LiveBroadcastCoordinatorTests.swift; sourceTree = ""; };
- F4F8BF2514BB4F5185827B95 /* LiveScoreDialogHostTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveScoreDialogHostTests.swift; path = MatchLiveTvTests/LiveScoreDialogHostTests.swift; sourceTree = ""; };
- 8964CE287E2C4C2DB701497B /* MatchScoringRulesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScoringRulesTests.swift; path = MatchLiveTvTests/MatchScoringRulesTests.swift; sourceTree = ""; };
- 10AD0F18190542818572CAEF /* ScoreActionDecodeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreActionDecodeTests.swift; path = MatchLiveTvTests/ScoreActionDecodeTests.swift; sourceTree = ""; };
- 6DF142EBF33B45739BA8E42C /* ScoreControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreControllerTests.swift; path = MatchLiveTvTests/ScoreControllerTests.swift; sourceTree = ""; };
- 377A2D2B2DA440AFB0CE2298 /* ThermalAdaptationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalAdaptationTests.swift; path = MatchLiveTvTests/ThermalAdaptationTests.swift; sourceTree = ""; };
- 2146FBAC1D7F4FF7B47D360F /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MatchLiveTv/Resources/Assets.xcassets; sourceTree = ""; };
- 8588711837244B19B84BA0B3 /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = MatchLiveTv/Resources/Info.plist; sourceTree = ""; };
- 857C036B5B5C43368506DD8B /* it.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/it.lproj; sourceTree = ""; };
- 3A6F9AAB5A1249BBB4FC02E6 /* en.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/en.lproj; sourceTree = ""; };
- 30B07E7585A7408EA47C8633 /* fr.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/fr.lproj; sourceTree = ""; };
- EEFE07D4B6FD44199A5B9C25 /* de.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/de.lproj; sourceTree = ""; };
- 2ACAF5B8A617427C8CBF56AD /* es.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/es.lproj; sourceTree = ""; };
- CE0F9D7D5EE749E8AAE6AB43 /* MatchLiveTv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MatchLiveTv.app; sourceTree = BUILT_PRODUCTS_DIR; };
- 3FC0CC8155BE469ABB420DC5 /* MatchLiveTvTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MatchLiveTvTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
- 74B2BB60EC504F4E9CAFDDC8 /* HaishinKit */ = {isa = XCSwiftPackageProductDependency; package = 294A8F0AC0E54F1EB302705C; productName = HaishinKit; };
- 8D1C04B6B7DF4271AC84A016 /* RTMPHaishinKit */ = {isa = XCSwiftPackageProductDependency; package = 294A8F0AC0E54F1EB302705C; productName = RTMPHaishinKit; };
- 65D33C32CF91408B91AFF5D4 /* MatchLiveTvApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F5FC005B683447B82372E36 /* MatchLiveTvApp.swift */; };
- F4C4427723C34532AFA1F798 /* ApiInstant.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7D22FF2CF3D4230A7BAA60C /* ApiInstant.swift */; };
- E75C942B73594F1484927866 /* AppConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F180A1FA5DD4DB3BA7E3B41 /* AppConfig.swift */; };
- 38BACC0DAAA147EB8955A60C /* AppLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 123A61DD4A6442728811488E /* AppLanguage.swift */; };
- 99B3D05A3D704DA1A513689F /* ColorHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF270D449A43F18399966D /* ColorHex.swift */; };
- 65EB1857F331469BAC9A18D7 /* DeviceTelemetry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 902831E3D87C46359F0D0A21 /* DeviceTelemetry.swift */; };
- 2F393B5FCD244E65B13C97A3 /* MediaUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBBD9C8DF9F4A47ACEFE7B1 /* MediaUrl.swift */; };
- 5620C77D9A5B47F3BA0741E4 /* ThermalState.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAC2A198868F4B4E9010F862 /* ThermalState.swift */; };
- D75CBE430CF947B1B8B0225B /* ThermalStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D84DE8EFA34B4CBDFF43F1 /* ThermalStateManager.swift */; };
- A74ACBA3E07740E59502306F /* TokenStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31251A1297F24C70A14D8702 /* TokenStore.swift */; };
- AA18CC40AAB249ECB8C88B85 /* UserFacingError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BEBDFA6B21041729156ADFA /* UserFacingError.swift */; };
- 162DC182A26243599EEA862A /* ApiDtos.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E7568BD3D94B34A361F470 /* ApiDtos.swift */; };
- 2A0825BF1DCC4DC2B1FBC236 /* MatchLiveAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D52E8096064A359AAE3D47 /* MatchLiveAPI.swift */; };
- 70D5E80900C14B0897F02BF8 /* AppContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FC98372F1BD474BB0365488 /* AppContainer.swift */; };
- 9391C9EA0B834DC8956483DF /* ActionCableClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98526C26B2584F55AADF0FFF /* ActionCableClient.swift */; };
- 359A4FD093C84543AD4DA3B1 /* SessionCableService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50C70C614F3C45B9B824E465 /* SessionCableService.swift */; };
- 59B045E87F2946B8BC8EA65A /* AuthRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0A49E8D59947448DAA7851 /* AuthRepository.swift */; };
- AECC36D80A0C411AB47D581A /* MatchRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 537FC2C063D341DF97A391B9 /* MatchRepository.swift */; };
- 39335ED5DE5847E5904222AB /* MatchSessionLauncher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 813463F3E17D453EAA801739 /* MatchSessionLauncher.swift */; };
- 470957DE79A84D9889F0663C /* ScoreRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC8ECFD24A14054BDD984C3 /* ScoreRepository.swift */; };
- 66815B27A71244F791DE3C2F /* SessionRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C01CC031C34343B3EBFF08 /* SessionRepository.swift */; };
- 244F331A033D4A32A0DC46CB /* ScoreController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B243B2A21344558626DF7F /* ScoreController.swift */; };
- 6EB9973427144A28B857B49E /* WizardSessionHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81CA0BDC6EE44C4290D7E483 /* WizardSessionHolder.swift */; };
- 454725D14B224276B06BCC67 /* MatchHubFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951A7265EF5C41A9A12DD86A /* MatchHubFilter.swift */; };
- C19C5E8152C44669AE5D8874 /* MatchScoringRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18445F0E4070424F86D55556 /* MatchScoringRules.swift */; };
- 20A6FAB1CB7F47C085B75A22 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61FCDE0B00FB485CB9B09110 /* Models.swift */; };
- 8723E1F8443A46B3AF49E8A3 /* ScoreState.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08E23008964D02AB59377E /* ScoreState.swift */; };
- 6A26C9639E5342ACA259DB67 /* BroadcastModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9975D8D02CF4FA0A47696DD /* BroadcastModels.swift */; };
- FF08A44E3B5C4C709095F08C /* BroadcastOrientationPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2432C46DFBA4322887D8C59 /* BroadcastOrientationPolicy.swift */; };
- C3873D7719AA419AA0134B65 /* BroadcastVideoOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A43B670D8BE94F66B38885C8 /* BroadcastVideoOrientation.swift */; };
- 56896861A77F4036B3763B59 /* LiveBroadcastCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F438E7E164F44C7B856C4808 /* LiveBroadcastCoordinator.swift */; };
- E16207FC581A4182B171119C /* LiveBroadcastEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D684B88BEB440F8D331D3D /* LiveBroadcastEngine.swift */; };
- 1ABCBB3241B54AE3B8DC175F /* CompactScoreboardElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78104BD8D9044B659F33B02F /* CompactScoreboardElement.swift */; };
- 69707A2BF3574451AFE893F5 /* OverlayCanvasRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8048B96407947C7BA4222E8 /* OverlayCanvasRenderer.swift */; };
- 972B0F53517C4AC2A062FD68 /* OverlayLogoCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5BF3429BFBA4DB3BDBD721D /* OverlayLogoCache.swift */; };
- 9455267569924A4485199B85 /* OverlayMappings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 509414F2274844F4B9A956C3 /* OverlayMappings.swift */; };
- FCBDDBB72AD142A39944DA39 /* OverlayRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59E96B1417004CD3BC247C0F /* OverlayRenderer.swift */; };
- ABC5853FEC554FA4AFBDCD2E /* OverlayState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DDC7305F3B549D0B7646B14 /* OverlayState.swift */; };
- 53A64EA59067426FA7BCEF2E /* ScoreboardElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D645FD397CD40DDA859F160 /* ScoreboardElement.swift */; };
- C4A9BD596C4A4ACD88F7557F /* SponsorElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B95E0D21B0407FA6723720 /* SponsorElement.swift */; };
- 6AD0B3220B154EA2936C634A /* WatermarkElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31750F1B9E294337BDBD5B56 /* WatermarkElement.swift */; };
- 713E0129656649FC8630FDC6 /* LivePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CE696CAB994E2C8E399776 /* LivePreviewView.swift */; };
- 451211FDF3214D2098798DB6 /* StreamVideoPreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C2A2F7BAC2B4AC69E8BEAF7 /* StreamVideoPreset.swift */; };
- E5E21D088782469D8EB23543 /* AccountScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4419E10415414556B7C58458 /* AccountScreen.swift */; };
- 5B51805239FA4D4D90919D86 /* BroadcastControlsOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = E860A0E35362427DA84F8972 /* BroadcastControlsOverlay.swift */; };
- EE568EA02C404102B4DFD651 /* BroadcastScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71816F0D99E44551839474CE /* BroadcastScreen.swift */; };
- 64EBCA992CD147BB8518DE60 /* LiveScoreActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4637B286559F4BC294018AC5 /* LiveScoreActions.swift */; };
- FE883346930E41C790474211 /* MatchLiveWordmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FF23D4B51AE4DA5B99D4021 /* MatchLiveWordmark.swift */; };
- 57EC4C4193D4412892219315 /* MatchPrimaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F04C9EAB5984F938EC60BF4 /* MatchPrimaryButton.swift */; };
- C6A88BEC28824928A0F7ED08 /* MatchScreenScaffold.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39F3C00B63534E6AA6D8A90A /* MatchScreenScaffold.swift */; };
- D74C538E4B754047B328E6F9 /* MatchSecondaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7403EB9DBD8459A93D9E2D8 /* MatchSecondaryButton.swift */; };
- 0CB8933AC2B34D4099BBA881 /* MatchStatusBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BB2251A67E401A9F1E789E /* MatchStatusBadge.swift */; };
- CA87B95E856947AC9304E423 /* ForgotPasswordScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8C38306C6F420DBC42DA2A /* ForgotPasswordScreen.swift */; };
- 2C7E484A83584887A412E71E /* LoginScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = E124B3B49FC34520805CCC97 /* LoginScreen.swift */; };
- E0352EDB139740DBB11DBD51 /* MatchesScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56A95962EF2A4B8F821343D9 /* MatchesScreen.swift */; };
- A2BB5F7A9BEA4F45AC9523C5 /* AppNavHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 866A83237E6943E89A165B9D /* AppNavHost.swift */; };
- 30CF022083914A188A9E30A0 /* ModalRoutes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 464CF87BEA644025B2D14644 /* ModalRoutes.swift */; };
- BF6BFF14A642487CA8DE29C6 /* Routes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B214C9B30C794F00A31B0D83 /* Routes.swift */; };
+
+/* Begin PBXBuildFile section */
06FE9996B295456D8B8C7E96 /* BroadcastPermissions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3BFB2F18615747B1A1C9E9B2 /* BroadcastPermissions.swift */; };
+ 095654DAAF6C4EA4B73BAB61 /* LiveScoreDialogHostTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4F8BF2514BB4F5185827B95 /* LiveScoreDialogHostTests.swift */; };
+ 0CB8933AC2B34D4099BBA881 /* MatchStatusBadge.swift in Sources */ = {isa = PBXBuildFile; fileRef = 34BB2251A67E401A9F1E789E /* MatchStatusBadge.swift */; };
142FA0805F1E40C69CAD3433 /* SplashScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = D7C29F5731A142C3A12B6DCA /* SplashScreen.swift */; };
- B92A8F0A41CC4ECE8BFCE0D9 /* KeepScreenOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 004F86D8E8BE47E589B923FA /* KeepScreenOn.swift */; };
- 1C4B54C40F4E4D1090A6BDA5 /* ScreenOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF10FF45004F41AD82397DC9 /* ScreenOrientation.swift */; };
+ 162DC182A26243599EEA862A /* ApiDtos.swift in Sources */ = {isa = PBXBuildFile; fileRef = 17E7568BD3D94B34A361F470 /* ApiDtos.swift */; };
1A82C6F343F54284AFA8FECE /* ShareSheet.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2B5C00419D09442FA8ED60F3 /* ShareSheet.swift */; };
+ 1ABCBB3241B54AE3B8DC175F /* CompactScoreboardElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 78104BD8D9044B659F33B02F /* CompactScoreboardElement.swift */; };
+ 1C4B54C40F4E4D1090A6BDA5 /* ScreenOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = FF10FF45004F41AD82397DC9 /* ScreenOrientation.swift */; };
+ 20A6FAB1CB7F47C085B75A22 /* Models.swift in Sources */ = {isa = PBXBuildFile; fileRef = 61FCDE0B00FB485CB9B09110 /* Models.swift */; };
+ 244F331A033D4A32A0DC46CB /* ScoreController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B0B243B2A21344558626DF7F /* ScoreController.swift */; };
+ 2A0825BF1DCC4DC2B1FBC236 /* MatchLiveAPI.swift in Sources */ = {isa = PBXBuildFile; fileRef = 99D52E8096064A359AAE3D47 /* MatchLiveAPI.swift */; };
+ 2B8E5D9945364094B74165DE /* StepTransmissionScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EC0179FE6BC4323B1F9E1D3 /* StepTransmissionScreen.swift */; };
+ 2C7E484A83584887A412E71E /* LoginScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = E124B3B49FC34520805CCC97 /* LoginScreen.swift */; };
+ 2F393B5FCD244E65B13C97A3 /* MediaUrl.swift in Sources */ = {isa = PBXBuildFile; fileRef = ADBBD9C8DF9F4A47ACEFE7B1 /* MediaUrl.swift */; };
+ 30CF022083914A188A9E30A0 /* ModalRoutes.swift in Sources */ = {isa = PBXBuildFile; fileRef = 464CF87BEA644025B2D14644 /* ModalRoutes.swift */; };
+ 30D3EC3BE61744868019114F /* MatchLiveTv/Resources/Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 2146FBAC1D7F4FF7B47D360F /* MatchLiveTv/Resources/Assets.xcassets */; };
+ 359A4FD093C84543AD4DA3B1 /* SessionCableService.swift in Sources */ = {isa = PBXBuildFile; fileRef = 50C70C614F3C45B9B824E465 /* SessionCableService.swift */; };
+ 38BACC0DAAA147EB8955A60C /* AppLanguage.swift in Sources */ = {isa = PBXBuildFile; fileRef = 123A61DD4A6442728811488E /* AppLanguage.swift */; };
+ 39335ED5DE5847E5904222AB /* MatchSessionLauncher.swift in Sources */ = {isa = PBXBuildFile; fileRef = 813463F3E17D453EAA801739 /* MatchSessionLauncher.swift */; };
+ 39F7D49D44244F51907E803D /* TeamColorPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7001BB5D65B34280B306ECCF /* TeamColorPicker.swift */; };
+ 451211FDF3214D2098798DB6 /* StreamVideoPreset.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8C2A2F7BAC2B4AC69E8BEAF7 /* StreamVideoPreset.swift */; };
+ 454725D14B224276B06BCC67 /* MatchHubFilter.swift in Sources */ = {isa = PBXBuildFile; fileRef = 951A7265EF5C41A9A12DD86A /* MatchHubFilter.swift */; };
+ 45776A6A76D04EF5A0C0D187 /* TeamBrandingEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FBBE0F1399840FFA0E7EF2E /* TeamBrandingEditor.swift */; };
+ 470957DE79A84D9889F0663C /* ScoreRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = CCC8ECFD24A14054BDD984C3 /* ScoreRepository.swift */; };
+ 4AE99343B3A442D6AEBF7032 /* MatchLiveTv/Resources/es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 2ACAF5B8A617427C8CBF56AD /* MatchLiveTv/Resources/es.lproj */; };
+ 4C29C4A6302793FE00CD9AAD /* HaishinKit in Frameworks */ = {isa = PBXBuildFile; productRef = 74B2BB60EC504F4E9CAFDDC8 /* HaishinKit */; };
+ 4C29C4A7302793FE00CD9AAD /* RTMPHaishinKit in Frameworks */ = {isa = PBXBuildFile; productRef = 8D1C04B6B7DF4271AC84A016 /* RTMPHaishinKit */; };
+ 4F520F571EC647CB9A7B5465 /* MatchLiveTv/Resources/fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 30B07E7585A7408EA47C8633 /* MatchLiveTv/Resources/fr.lproj */; };
+ 53A64EA59067426FA7BCEF2E /* ScoreboardElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9D645FD397CD40DDA859F160 /* ScoreboardElement.swift */; };
+ 5620C77D9A5B47F3BA0741E4 /* ThermalState.swift in Sources */ = {isa = PBXBuildFile; fileRef = AAC2A198868F4B4E9010F862 /* ThermalState.swift */; };
+ 56896861A77F4036B3763B59 /* LiveBroadcastCoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = F438E7E164F44C7B856C4808 /* LiveBroadcastCoordinator.swift */; };
+ 57EC4C4193D4412892219315 /* MatchPrimaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6F04C9EAB5984F938EC60BF4 /* MatchPrimaryButton.swift */; };
+ 592DF4BAC5624417A7123422 /* BroadcastOrientationPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5CA1FE59BA14F76BA94C995 /* BroadcastOrientationPolicyTests.swift */; };
+ 59B045E87F2946B8BC8EA65A /* AuthRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = EE0A49E8D59947448DAA7851 /* AuthRepository.swift */; };
+ 5B51805239FA4D4D90919D86 /* BroadcastControlsOverlay.swift in Sources */ = {isa = PBXBuildFile; fileRef = E860A0E35362427DA84F8972 /* BroadcastControlsOverlay.swift */; };
+ 5D91C53D2E8A4952937F816B /* ScoreActionDecodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10AD0F18190542818572CAEF /* ScoreActionDecodeTests.swift */; };
+ 64EBCA992CD147BB8518DE60 /* LiveScoreActions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4637B286559F4BC294018AC5 /* LiveScoreActions.swift */; };
+ 65D33C32CF91408B91AFF5D4 /* MatchLiveTvApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5F5FC005B683447B82372E36 /* MatchLiveTvApp.swift */; };
+ 65EB1857F331469BAC9A18D7 /* DeviceTelemetry.swift in Sources */ = {isa = PBXBuildFile; fileRef = 902831E3D87C46359F0D0A21 /* DeviceTelemetry.swift */; };
+ 66815B27A71244F791DE3C2F /* SessionRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 87C01CC031C34343B3EBFF08 /* SessionRepository.swift */; };
+ 69707A2BF3574451AFE893F5 /* OverlayCanvasRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = A8048B96407947C7BA4222E8 /* OverlayCanvasRenderer.swift */; };
+ 6A26C9639E5342ACA259DB67 /* BroadcastModels.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9975D8D02CF4FA0A47696DD /* BroadcastModels.swift */; };
+ 6AD0B3220B154EA2936C634A /* WatermarkElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31750F1B9E294337BDBD5B56 /* WatermarkElement.swift */; };
+ 6D6C2C09593B4EADBF082FB5 /* MatchLiveTv/Resources/en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 3A6F9AAB5A1249BBB4FC02E6 /* MatchLiveTv/Resources/en.lproj */; };
+ 6EB9973427144A28B857B49E /* WizardSessionHolder.swift in Sources */ = {isa = PBXBuildFile; fileRef = 81CA0BDC6EE44C4290D7E483 /* WizardSessionHolder.swift */; };
+ 70D5E80900C14B0897F02BF8 /* AppContainer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7FC98372F1BD474BB0365488 /* AppContainer.swift */; };
+ 713E0129656649FC8630FDC6 /* LivePreviewView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 46CE696CAB994E2C8E399776 /* LivePreviewView.swift */; };
7575030B9AEB4DEBAD986A23 /* MatchColors.swift in Sources */ = {isa = PBXBuildFile; fileRef = D2996990D08341ABA52BE287 /* MatchColors.swift */; };
777B73E69F8A4DC6A8E7C1DF /* StepMatchScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = EAB037B1369B454D84F6850D /* StepMatchScreen.swift */; };
- F67C0C88237F41DE8EDF6CB8 /* StepNetworkTestScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1079231B9A4E446AA9AD6C0A /* StepNetworkTestScreen.swift */; };
- 2B8E5D9945364094B74165DE /* StepTransmissionScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7EC0179FE6BC4323B1F9E1D3 /* StepTransmissionScreen.swift */; };
- 45776A6A76D04EF5A0C0D187 /* TeamBrandingEditor.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6FBBE0F1399840FFA0E7EF2E /* TeamBrandingEditor.swift */; };
- 39F7D49D44244F51907E803D /* TeamColorPicker.swift in Sources */ = {isa = PBXBuildFile; fileRef = 7001BB5D65B34280B306ECCF /* TeamColorPicker.swift */; };
- E417F20C78464CA78B28E3DE /* WizardComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B75DC6D0B2248B2A6C9AA66 /* WizardComponents.swift */; };
- D1CF09F02F8844C4A22922F4 /* WizardShellScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3170F3149C614EC38B417905 /* WizardShellScreen.swift */; };
- ACC54AA19C5747CFA118C70B /* ApiInstantTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FEB862C3A34BF8AC24052E /* ApiInstantTests.swift */; };
- 592DF4BAC5624417A7123422 /* BroadcastOrientationPolicyTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = E5CA1FE59BA14F76BA94C995 /* BroadcastOrientationPolicyTests.swift */; };
- C9174111ED4A42E887578BF0 /* LiveBroadcastCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1830F9A925334BA4B65D490E /* LiveBroadcastCoordinatorTests.swift */; };
- 095654DAAF6C4EA4B73BAB61 /* LiveScoreDialogHostTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = F4F8BF2514BB4F5185827B95 /* LiveScoreDialogHostTests.swift */; };
+ 8723E1F8443A46B3AF49E8A3 /* ScoreState.swift in Sources */ = {isa = PBXBuildFile; fileRef = EA08E23008964D02AB59377E /* ScoreState.swift */; };
+ 8C8FEABCD83C422BA5A5DEA3 /* MatchLiveTv/Resources/de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = EEFE07D4B6FD44199A5B9C25 /* MatchLiveTv/Resources/de.lproj */; };
+ 9391C9EA0B834DC8956483DF /* ActionCableClient.swift in Sources */ = {isa = PBXBuildFile; fileRef = 98526C26B2584F55AADF0FFF /* ActionCableClient.swift */; };
+ 9455267569924A4485199B85 /* OverlayMappings.swift in Sources */ = {isa = PBXBuildFile; fileRef = 509414F2274844F4B9A956C3 /* OverlayMappings.swift */; };
+ 972B0F53517C4AC2A062FD68 /* OverlayLogoCache.swift in Sources */ = {isa = PBXBuildFile; fileRef = B5BF3429BFBA4DB3BDBD721D /* OverlayLogoCache.swift */; };
+ 99B3D05A3D704DA1A513689F /* ColorHex.swift in Sources */ = {isa = PBXBuildFile; fileRef = CDDF270D449A43F18399966D /* ColorHex.swift */; };
+ A2BB5F7A9BEA4F45AC9523C5 /* AppNavHost.swift in Sources */ = {isa = PBXBuildFile; fileRef = 866A83237E6943E89A165B9D /* AppNavHost.swift */; };
+ A74ACBA3E07740E59502306F /* TokenStore.swift in Sources */ = {isa = PBXBuildFile; fileRef = 31251A1297F24C70A14D8702 /* TokenStore.swift */; };
+ AA18CC40AAB249ECB8C88B85 /* UserFacingError.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1BEBDFA6B21041729156ADFA /* UserFacingError.swift */; };
AA18DECE8D08461B9197EB71 /* MatchScoringRulesTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 8964CE287E2C4C2DB701497B /* MatchScoringRulesTests.swift */; };
- 5D91C53D2E8A4952937F816B /* ScoreActionDecodeTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 10AD0F18190542818572CAEF /* ScoreActionDecodeTests.swift */; };
- FB66DD0422E14C54AC5B3EDB /* ScoreControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF142EBF33B45739BA8E42C /* ScoreControllerTests.swift */; };
+ AA3A68B2C1784294ADB89605 /* MatchLiveTv/Resources/it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 857C036B5B5C43368506DD8B /* MatchLiveTv/Resources/it.lproj */; };
AB6FF1A930EB459091B77922 /* ThermalAdaptationTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 377A2D2B2DA440AFB0CE2298 /* ThermalAdaptationTests.swift */; };
- 30D3EC3BE61744868019114F /* Assets in Resources */ = {isa = PBXBuildFile; fileRef = 2146FBAC1D7F4FF7B47D360F; };
- AA3A68B2C1784294ADB89605 /* it.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 857C036B5B5C43368506DD8B; };
- 6D6C2C09593B4EADBF082FB5 /* en.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 3A6F9AAB5A1249BBB4FC02E6; };
- 4F520F571EC647CB9A7B5465 /* fr.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 30B07E7585A7408EA47C8633; };
- 8C8FEABCD83C422BA5A5DEA3 /* de.lproj in Resources */ = {isa = PBXBuildFile; fileRef = EEFE07D4B6FD44199A5B9C25; };
- 4AE99343B3A442D6AEBF7032 /* es.lproj in Resources */ = {isa = PBXBuildFile; fileRef = 2ACAF5B8A617427C8CBF56AD; };
- 7E992B84100649D8BE8507F7 = {isa = PBXGroup; children = (DDEF729FE3334F8998C4A31C, 6987D3982FAD44A6869B9FD6, 0ADC6126267C410F9B60B426); sourceTree = ""; };
- DDEF729FE3334F8998C4A31C = {isa = PBXGroup; children = (5F5FC005B683447B82372E36, C7D22FF2CF3D4230A7BAA60C, 9F180A1FA5DD4DB3BA7E3B41, 123A61DD4A6442728811488E, CDDF270D449A43F18399966D, 902831E3D87C46359F0D0A21, ADBBD9C8DF9F4A47ACEFE7B1, AAC2A198868F4B4E9010F862, C9D84DE8EFA34B4CBDFF43F1, 31251A1297F24C70A14D8702, 1BEBDFA6B21041729156ADFA, 17E7568BD3D94B34A361F470, 99D52E8096064A359AAE3D47, 7FC98372F1BD474BB0365488, 98526C26B2584F55AADF0FFF, 50C70C614F3C45B9B824E465, EE0A49E8D59947448DAA7851, 537FC2C063D341DF97A391B9, 813463F3E17D453EAA801739, CCC8ECFD24A14054BDD984C3, 87C01CC031C34343B3EBFF08, B0B243B2A21344558626DF7F, 81CA0BDC6EE44C4290D7E483, 951A7265EF5C41A9A12DD86A, 18445F0E4070424F86D55556, 61FCDE0B00FB485CB9B09110, EA08E23008964D02AB59377E, C9975D8D02CF4FA0A47696DD, B2432C46DFBA4322887D8C59, A43B670D8BE94F66B38885C8, F438E7E164F44C7B856C4808, C6D684B88BEB440F8D331D3D, 78104BD8D9044B659F33B02F, A8048B96407947C7BA4222E8, B5BF3429BFBA4DB3BDBD721D, 509414F2274844F4B9A956C3, 59E96B1417004CD3BC247C0F, 2DDC7305F3B549D0B7646B14, 9D645FD397CD40DDA859F160, 18B95E0D21B0407FA6723720, 31750F1B9E294337BDBD5B56, 46CE696CAB994E2C8E399776, 8C2A2F7BAC2B4AC69E8BEAF7, 4419E10415414556B7C58458, E860A0E35362427DA84F8972, 71816F0D99E44551839474CE, 4637B286559F4BC294018AC5, 2FF23D4B51AE4DA5B99D4021, 6F04C9EAB5984F938EC60BF4, 39F3C00B63534E6AA6D8A90A, C7403EB9DBD8459A93D9E2D8, 34BB2251A67E401A9F1E789E, AF8C38306C6F420DBC42DA2A, E124B3B49FC34520805CCC97, 56A95962EF2A4B8F821343D9, 866A83237E6943E89A165B9D, 464CF87BEA644025B2D14644, B214C9B30C794F00A31B0D83, 3BFB2F18615747B1A1C9E9B2, D7C29F5731A142C3A12B6DCA, 004F86D8E8BE47E589B923FA, FF10FF45004F41AD82397DC9, 2B5C00419D09442FA8ED60F3, D2996990D08341ABA52BE287, EAB037B1369B454D84F6850D, 1079231B9A4E446AA9AD6C0A, 7EC0179FE6BC4323B1F9E1D3, 6FBBE0F1399840FFA0E7EF2E, 7001BB5D65B34280B306ECCF, 5B75DC6D0B2248B2A6C9AA66, 3170F3149C614EC38B417905, 2146FBAC1D7F4FF7B47D360F, 8588711837244B19B84BA0B3, 857C036B5B5C43368506DD8B, 3A6F9AAB5A1249BBB4FC02E6, 30B07E7585A7408EA47C8633, EEFE07D4B6FD44199A5B9C25, 2ACAF5B8A617427C8CBF56AD); name = MatchLiveTv; sourceTree = ""; };
- 6987D3982FAD44A6869B9FD6 = {isa = PBXGroup; children = (75FEB862C3A34BF8AC24052E, E5CA1FE59BA14F76BA94C995, 1830F9A925334BA4B65D490E, F4F8BF2514BB4F5185827B95, 8964CE287E2C4C2DB701497B, 10AD0F18190542818572CAEF, 6DF142EBF33B45739BA8E42C, 377A2D2B2DA440AFB0CE2298); name = MatchLiveTvTests; sourceTree = ""; };
- 0ADC6126267C410F9B60B426 = {isa = PBXGroup; children = (CE0F9D7D5EE749E8AAE6AB43, 3FC0CC8155BE469ABB420DC5); name = Products; sourceTree = ""; };
- 3E146F1019B842318E38BF4D = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (65D33C32CF91408B91AFF5D4, F4C4427723C34532AFA1F798, E75C942B73594F1484927866, 38BACC0DAAA147EB8955A60C, 99B3D05A3D704DA1A513689F, 65EB1857F331469BAC9A18D7, 2F393B5FCD244E65B13C97A3, 5620C77D9A5B47F3BA0741E4, D75CBE430CF947B1B8B0225B, A74ACBA3E07740E59502306F, AA18CC40AAB249ECB8C88B85, 162DC182A26243599EEA862A, 2A0825BF1DCC4DC2B1FBC236, 70D5E80900C14B0897F02BF8, 9391C9EA0B834DC8956483DF, 359A4FD093C84543AD4DA3B1, 59B045E87F2946B8BC8EA65A, AECC36D80A0C411AB47D581A, 39335ED5DE5847E5904222AB, 470957DE79A84D9889F0663C, 66815B27A71244F791DE3C2F, 244F331A033D4A32A0DC46CB, 6EB9973427144A28B857B49E, 454725D14B224276B06BCC67, C19C5E8152C44669AE5D8874, 20A6FAB1CB7F47C085B75A22, 8723E1F8443A46B3AF49E8A3, 6A26C9639E5342ACA259DB67, FF08A44E3B5C4C709095F08C, C3873D7719AA419AA0134B65, 56896861A77F4036B3763B59, E16207FC581A4182B171119C, 1ABCBB3241B54AE3B8DC175F, 69707A2BF3574451AFE893F5, 972B0F53517C4AC2A062FD68, 9455267569924A4485199B85, FCBDDBB72AD142A39944DA39, ABC5853FEC554FA4AFBDCD2E, 53A64EA59067426FA7BCEF2E, C4A9BD596C4A4ACD88F7557F, 6AD0B3220B154EA2936C634A, 713E0129656649FC8630FDC6, 451211FDF3214D2098798DB6, E5E21D088782469D8EB23543, 5B51805239FA4D4D90919D86, EE568EA02C404102B4DFD651, 64EBCA992CD147BB8518DE60, FE883346930E41C790474211, 57EC4C4193D4412892219315, C6A88BEC28824928A0F7ED08, D74C538E4B754047B328E6F9, 0CB8933AC2B34D4099BBA881, CA87B95E856947AC9304E423, 2C7E484A83584887A412E71E, E0352EDB139740DBB11DBD51, A2BB5F7A9BEA4F45AC9523C5, 30CF022083914A188A9E30A0, BF6BFF14A642487CA8DE29C6, 06FE9996B295456D8B8C7E96, 142FA0805F1E40C69CAD3433, B92A8F0A41CC4ECE8BFCE0D9, 1C4B54C40F4E4D1090A6BDA5, 1A82C6F343F54284AFA8FECE, 7575030B9AEB4DEBAD986A23, 777B73E69F8A4DC6A8E7C1DF, F67C0C88237F41DE8EDF6CB8, 2B8E5D9945364094B74165DE, 45776A6A76D04EF5A0C0D187, 39F7D49D44244F51907E803D, E417F20C78464CA78B28E3DE, D1CF09F02F8844C4A22922F4); runOnlyForDeploymentPostprocessing = 0; };
- FA890E18B4EB44C58C124F5C = {isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; files = (ACC54AA19C5747CFA118C70B, 592DF4BAC5624417A7123422, C9174111ED4A42E887578BF0, 095654DAAF6C4EA4B73BAB61, AA18DECE8D08461B9197EB71, 5D91C53D2E8A4952937F816B, FB66DD0422E14C54AC5B3EDB, AB6FF1A930EB459091B77922); runOnlyForDeploymentPostprocessing = 0; };
- B75DDD49798641E58FBE57D0 = {isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; files = (30D3EC3BE61744868019114F, AA3A68B2C1784294ADB89605, 6D6C2C09593B4EADBF082FB5, 4F520F571EC647CB9A7B5465, 8C8FEABCD83C422BA5A5DEA3, 4AE99343B3A442D6AEBF7032); runOnlyForDeploymentPostprocessing = 0; };
- 414C9A6F8BE0437593A403A9 = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; };
- C16D70862B15401AA91E067A = {isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; files = (); runOnlyForDeploymentPostprocessing = 0; };
- ABC7AFD6F8DE449D90C8AD6A = {isa = XCBuildConfiguration; buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
- GENERATE_INFOPLIST_FILE = NO;
- INFOPLIST_FILE = MatchLiveTv/Resources/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
- SWIFT_ENABLE_EXPLICIT_MODULES = NO;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
- );
- MARKETING_VERSION = 2.0.10;
- PRODUCT_BUNDLE_IDENTIFIER = com.matchlivetv.match-live-tv;
- PRODUCT_NAME = "$(TARGET_NAME)";
- API_BASE_URL = "https://www.matchlivetv.it";
- SWIFT_VERSION = 5.0;
- TARGETED_DEVICE_FAMILY = "1,2";
+ ABC5853FEC554FA4AFBDCD2E /* OverlayState.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2DDC7305F3B549D0B7646B14 /* OverlayState.swift */; };
+ ACC54AA19C5747CFA118C70B /* ApiInstantTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 75FEB862C3A34BF8AC24052E /* ApiInstantTests.swift */; };
+ AECC36D80A0C411AB47D581A /* MatchRepository.swift in Sources */ = {isa = PBXBuildFile; fileRef = 537FC2C063D341DF97A391B9 /* MatchRepository.swift */; };
+ B92A8F0A41CC4ECE8BFCE0D9 /* KeepScreenOn.swift in Sources */ = {isa = PBXBuildFile; fileRef = 004F86D8E8BE47E589B923FA /* KeepScreenOn.swift */; };
+ BF6BFF14A642487CA8DE29C6 /* Routes.swift in Sources */ = {isa = PBXBuildFile; fileRef = B214C9B30C794F00A31B0D83 /* Routes.swift */; };
+ C19C5E8152C44669AE5D8874 /* MatchScoringRules.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18445F0E4070424F86D55556 /* MatchScoringRules.swift */; };
+ C3873D7719AA419AA0134B65 /* BroadcastVideoOrientation.swift in Sources */ = {isa = PBXBuildFile; fileRef = A43B670D8BE94F66B38885C8 /* BroadcastVideoOrientation.swift */; };
+ C4A9BD596C4A4ACD88F7557F /* SponsorElement.swift in Sources */ = {isa = PBXBuildFile; fileRef = 18B95E0D21B0407FA6723720 /* SponsorElement.swift */; };
+ C6A88BEC28824928A0F7ED08 /* MatchScreenScaffold.swift in Sources */ = {isa = PBXBuildFile; fileRef = 39F3C00B63534E6AA6D8A90A /* MatchScreenScaffold.swift */; };
+ C9174111ED4A42E887578BF0 /* LiveBroadcastCoordinatorTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1830F9A925334BA4B65D490E /* LiveBroadcastCoordinatorTests.swift */; };
+ CA87B95E856947AC9304E423 /* ForgotPasswordScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = AF8C38306C6F420DBC42DA2A /* ForgotPasswordScreen.swift */; };
+ D1CF09F02F8844C4A22922F4 /* WizardShellScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 3170F3149C614EC38B417905 /* WizardShellScreen.swift */; };
+ D74C538E4B754047B328E6F9 /* MatchSecondaryButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7403EB9DBD8459A93D9E2D8 /* MatchSecondaryButton.swift */; };
+ D75CBE430CF947B1B8B0225B /* ThermalStateManager.swift in Sources */ = {isa = PBXBuildFile; fileRef = C9D84DE8EFA34B4CBDFF43F1 /* ThermalStateManager.swift */; };
+ E0352EDB139740DBB11DBD51 /* MatchesScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 56A95962EF2A4B8F821343D9 /* MatchesScreen.swift */; };
+ E16207FC581A4182B171119C /* LiveBroadcastEngine.swift in Sources */ = {isa = PBXBuildFile; fileRef = C6D684B88BEB440F8D331D3D /* LiveBroadcastEngine.swift */; };
+ E417F20C78464CA78B28E3DE /* WizardComponents.swift in Sources */ = {isa = PBXBuildFile; fileRef = 5B75DC6D0B2248B2A6C9AA66 /* WizardComponents.swift */; };
+ E5E21D088782469D8EB23543 /* AccountScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4419E10415414556B7C58458 /* AccountScreen.swift */; };
+ E75C942B73594F1484927866 /* AppConfig.swift in Sources */ = {isa = PBXBuildFile; fileRef = 9F180A1FA5DD4DB3BA7E3B41 /* AppConfig.swift */; };
+ EE568EA02C404102B4DFD651 /* BroadcastScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 71816F0D99E44551839474CE /* BroadcastScreen.swift */; };
+ F4C4427723C34532AFA1F798 /* ApiInstant.swift in Sources */ = {isa = PBXBuildFile; fileRef = C7D22FF2CF3D4230A7BAA60C /* ApiInstant.swift */; };
+ F67C0C88237F41DE8EDF6CB8 /* StepNetworkTestScreen.swift in Sources */ = {isa = PBXBuildFile; fileRef = 1079231B9A4E446AA9AD6C0A /* StepNetworkTestScreen.swift */; };
+ FB66DD0422E14C54AC5B3EDB /* ScoreControllerTests.swift in Sources */ = {isa = PBXBuildFile; fileRef = 6DF142EBF33B45739BA8E42C /* ScoreControllerTests.swift */; };
+ FCBDDBB72AD142A39944DA39 /* OverlayRenderer.swift in Sources */ = {isa = PBXBuildFile; fileRef = 59E96B1417004CD3BC247C0F /* OverlayRenderer.swift */; };
+ FE883346930E41C790474211 /* MatchLiveWordmark.swift in Sources */ = {isa = PBXBuildFile; fileRef = 2FF23D4B51AE4DA5B99D4021 /* MatchLiveWordmark.swift */; };
+ FF08A44E3B5C4C709095F08C /* BroadcastOrientationPolicy.swift in Sources */ = {isa = PBXBuildFile; fileRef = B2432C46DFBA4322887D8C59 /* BroadcastOrientationPolicy.swift */; };
+/* End PBXBuildFile section */
- ENABLE_TESTABILITY = YES;
- }; name = Debug; };
- 71636134BDC0490291EAAE3E = {isa = XCBuildConfiguration; buildSettings = {
- ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
- GENERATE_INFOPLIST_FILE = NO;
- INFOPLIST_FILE = MatchLiveTv/Resources/Info.plist;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
- SWIFT_ENABLE_EXPLICIT_MODULES = NO;
- LD_RUNPATH_SEARCH_PATHS = (
- "$(inherited)",
- "@executable_path/Frameworks",
+/* Begin PBXContainerItemProxy section */
+ 58E3C5EC752E497FBFD32D78 /* PBXContainerItemProxy */ = {
+ isa = PBXContainerItemProxy;
+ containerPortal = AE0076753A1840A19E9F565F /* Project object */;
+ proxyType = 1;
+ remoteGlobalIDString = F54F6C97361C4E8A96AEDD11;
+ remoteInfo = MatchLiveTv;
+ };
+/* End PBXContainerItemProxy section */
+
+/* Begin PBXFileReference section */
+ 004F86D8E8BE47E589B923FA /* KeepScreenOn.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = KeepScreenOn.swift; path = MatchLiveTv/UI/System/KeepScreenOn.swift; sourceTree = ""; };
+ 1079231B9A4E446AA9AD6C0A /* StepNetworkTestScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepNetworkTestScreen.swift; path = MatchLiveTv/UI/Wizard/StepNetworkTestScreen.swift; sourceTree = ""; };
+ 10AD0F18190542818572CAEF /* ScoreActionDecodeTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreActionDecodeTests.swift; path = MatchLiveTvTests/ScoreActionDecodeTests.swift; sourceTree = ""; };
+ 123A61DD4A6442728811488E /* AppLanguage.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppLanguage.swift; path = MatchLiveTv/Core/AppLanguage.swift; sourceTree = ""; };
+ 17E7568BD3D94B34A361F470 /* ApiDtos.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiDtos.swift; path = MatchLiveTv/Data/API/ApiDtos.swift; sourceTree = ""; };
+ 1830F9A925334BA4B65D490E /* LiveBroadcastCoordinatorTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastCoordinatorTests.swift; path = MatchLiveTvTests/LiveBroadcastCoordinatorTests.swift; sourceTree = ""; };
+ 18445F0E4070424F86D55556 /* MatchScoringRules.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScoringRules.swift; path = MatchLiveTv/Domain/MatchScoringRules.swift; sourceTree = ""; };
+ 18B95E0D21B0407FA6723720 /* SponsorElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SponsorElement.swift; path = MatchLiveTv/Streaming/Overlay/SponsorElement.swift; sourceTree = ""; };
+ 1BEBDFA6B21041729156ADFA /* UserFacingError.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = UserFacingError.swift; path = MatchLiveTv/Core/UserFacingError.swift; sourceTree = ""; };
+ 2146FBAC1D7F4FF7B47D360F /* MatchLiveTv/Resources/Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = MatchLiveTv/Resources/Assets.xcassets; sourceTree = ""; };
+ 2ACAF5B8A617427C8CBF56AD /* MatchLiveTv/Resources/es.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/es.lproj; sourceTree = ""; };
+ 2B5C00419D09442FA8ED60F3 /* ShareSheet.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ShareSheet.swift; path = MatchLiveTv/UI/System/ShareSheet.swift; sourceTree = ""; };
+ 2DDC7305F3B549D0B7646B14 /* OverlayState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayState.swift; path = MatchLiveTv/Streaming/Overlay/OverlayState.swift; sourceTree = ""; };
+ 2FF23D4B51AE4DA5B99D4021 /* MatchLiveWordmark.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveWordmark.swift; path = MatchLiveTv/UI/Components/MatchLiveWordmark.swift; sourceTree = ""; };
+ 30B07E7585A7408EA47C8633 /* MatchLiveTv/Resources/fr.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/fr.lproj; sourceTree = ""; };
+ 31251A1297F24C70A14D8702 /* TokenStore.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TokenStore.swift; path = MatchLiveTv/Core/TokenStore.swift; sourceTree = ""; };
+ 3170F3149C614EC38B417905 /* WizardShellScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardShellScreen.swift; path = MatchLiveTv/UI/Wizard/WizardShellScreen.swift; sourceTree = ""; };
+ 31750F1B9E294337BDBD5B56 /* WatermarkElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WatermarkElement.swift; path = MatchLiveTv/Streaming/Overlay/WatermarkElement.swift; sourceTree = ""; };
+ 34BB2251A67E401A9F1E789E /* MatchStatusBadge.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchStatusBadge.swift; path = MatchLiveTv/UI/Components/MatchStatusBadge.swift; sourceTree = ""; };
+ 377A2D2B2DA440AFB0CE2298 /* ThermalAdaptationTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalAdaptationTests.swift; path = MatchLiveTvTests/ThermalAdaptationTests.swift; sourceTree = ""; };
+ 39F3C00B63534E6AA6D8A90A /* MatchScreenScaffold.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScreenScaffold.swift; path = MatchLiveTv/UI/Components/MatchScreenScaffold.swift; sourceTree = ""; };
+ 3A6F9AAB5A1249BBB4FC02E6 /* MatchLiveTv/Resources/en.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/en.lproj; sourceTree = ""; };
+ 3BFB2F18615747B1A1C9E9B2 /* BroadcastPermissions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastPermissions.swift; path = MatchLiveTv/UI/Permissions/BroadcastPermissions.swift; sourceTree = ""; };
+ 3FC0CC8155BE469ABB420DC5 /* MatchLiveTvTests.xctest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = MatchLiveTvTests.xctest; sourceTree = BUILT_PRODUCTS_DIR; };
+ 4419E10415414556B7C58458 /* AccountScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AccountScreen.swift; path = MatchLiveTv/UI/Account/AccountScreen.swift; sourceTree = ""; };
+ 4637B286559F4BC294018AC5 /* LiveScoreActions.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveScoreActions.swift; path = MatchLiveTv/UI/Broadcast/LiveScoreActions.swift; sourceTree = ""; };
+ 464CF87BEA644025B2D14644 /* ModalRoutes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ModalRoutes.swift; path = MatchLiveTv/UI/Navigation/ModalRoutes.swift; sourceTree = ""; };
+ 46CE696CAB994E2C8E399776 /* LivePreviewView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LivePreviewView.swift; path = MatchLiveTv/Streaming/Preview/LivePreviewView.swift; sourceTree = ""; };
+ 509414F2274844F4B9A956C3 /* OverlayMappings.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayMappings.swift; path = MatchLiveTv/Streaming/Overlay/OverlayMappings.swift; sourceTree = ""; };
+ 50C70C614F3C45B9B824E465 /* SessionCableService.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SessionCableService.swift; path = MatchLiveTv/Data/Cable/SessionCableService.swift; sourceTree = ""; };
+ 537FC2C063D341DF97A391B9 /* MatchRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchRepository.swift; path = MatchLiveTv/Data/Repository/MatchRepository.swift; sourceTree = ""; };
+ 56A95962EF2A4B8F821343D9 /* MatchesScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchesScreen.swift; path = MatchLiveTv/UI/Matches/MatchesScreen.swift; sourceTree = ""; };
+ 59E96B1417004CD3BC247C0F /* OverlayRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayRenderer.swift; path = MatchLiveTv/Streaming/Overlay/OverlayRenderer.swift; sourceTree = ""; };
+ 5B75DC6D0B2248B2A6C9AA66 /* WizardComponents.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardComponents.swift; path = MatchLiveTv/UI/Wizard/WizardComponents.swift; sourceTree = ""; };
+ 5F5FC005B683447B82372E36 /* MatchLiveTvApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveTvApp.swift; path = MatchLiveTv/App/MatchLiveTvApp.swift; sourceTree = ""; };
+ 61FCDE0B00FB485CB9B09110 /* Models.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Models.swift; path = MatchLiveTv/Domain/Models.swift; sourceTree = ""; };
+ 6DF142EBF33B45739BA8E42C /* ScoreControllerTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreControllerTests.swift; path = MatchLiveTvTests/ScoreControllerTests.swift; sourceTree = ""; };
+ 6F04C9EAB5984F938EC60BF4 /* MatchPrimaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchPrimaryButton.swift; path = MatchLiveTv/UI/Components/MatchPrimaryButton.swift; sourceTree = ""; };
+ 6FBBE0F1399840FFA0E7EF2E /* TeamBrandingEditor.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TeamBrandingEditor.swift; path = MatchLiveTv/UI/Wizard/TeamBrandingEditor.swift; sourceTree = ""; };
+ 7001BB5D65B34280B306ECCF /* TeamColorPicker.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = TeamColorPicker.swift; path = MatchLiveTv/UI/Wizard/TeamColorPicker.swift; sourceTree = ""; };
+ 71816F0D99E44551839474CE /* BroadcastScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastScreen.swift; path = MatchLiveTv/UI/Broadcast/BroadcastScreen.swift; sourceTree = ""; };
+ 75FEB862C3A34BF8AC24052E /* ApiInstantTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiInstantTests.swift; path = MatchLiveTvTests/ApiInstantTests.swift; sourceTree = ""; };
+ 78104BD8D9044B659F33B02F /* CompactScoreboardElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = CompactScoreboardElement.swift; path = MatchLiveTv/Streaming/Overlay/CompactScoreboardElement.swift; sourceTree = ""; };
+ 7EC0179FE6BC4323B1F9E1D3 /* StepTransmissionScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepTransmissionScreen.swift; path = MatchLiveTv/UI/Wizard/StepTransmissionScreen.swift; sourceTree = ""; };
+ 7FC98372F1BD474BB0365488 /* AppContainer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppContainer.swift; path = MatchLiveTv/Data/AppContainer.swift; sourceTree = ""; };
+ 813463F3E17D453EAA801739 /* MatchSessionLauncher.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchSessionLauncher.swift; path = MatchLiveTv/Data/Repository/MatchSessionLauncher.swift; sourceTree = ""; };
+ 81CA0BDC6EE44C4290D7E483 /* WizardSessionHolder.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = WizardSessionHolder.swift; path = MatchLiveTv/Data/WizardSessionHolder.swift; sourceTree = ""; };
+ 857C036B5B5C43368506DD8B /* MatchLiveTv/Resources/it.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/it.lproj; sourceTree = ""; };
+ 8588711837244B19B84BA0B3 /* MatchLiveTv/Resources/Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = MatchLiveTv/Resources/Info.plist; sourceTree = ""; };
+ 866A83237E6943E89A165B9D /* AppNavHost.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppNavHost.swift; path = MatchLiveTv/UI/Navigation/AppNavHost.swift; sourceTree = ""; };
+ 87C01CC031C34343B3EBFF08 /* SessionRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SessionRepository.swift; path = MatchLiveTv/Data/Repository/SessionRepository.swift; sourceTree = ""; };
+ 8964CE287E2C4C2DB701497B /* MatchScoringRulesTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchScoringRulesTests.swift; path = MatchLiveTvTests/MatchScoringRulesTests.swift; sourceTree = ""; };
+ 8C2A2F7BAC2B4AC69E8BEAF7 /* StreamVideoPreset.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StreamVideoPreset.swift; path = MatchLiveTv/Streaming/StreamVideoPreset.swift; sourceTree = ""; };
+ 902831E3D87C46359F0D0A21 /* DeviceTelemetry.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = DeviceTelemetry.swift; path = MatchLiveTv/Core/DeviceTelemetry.swift; sourceTree = ""; };
+ 951A7265EF5C41A9A12DD86A /* MatchHubFilter.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchHubFilter.swift; path = MatchLiveTv/Domain/MatchHubFilter.swift; sourceTree = ""; };
+ 98526C26B2584F55AADF0FFF /* ActionCableClient.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ActionCableClient.swift; path = MatchLiveTv/Data/Cable/ActionCableClient.swift; sourceTree = ""; };
+ 99D52E8096064A359AAE3D47 /* MatchLiveAPI.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchLiveAPI.swift; path = MatchLiveTv/Data/API/MatchLiveAPI.swift; sourceTree = ""; };
+ 9D645FD397CD40DDA859F160 /* ScoreboardElement.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreboardElement.swift; path = MatchLiveTv/Streaming/Overlay/ScoreboardElement.swift; sourceTree = ""; };
+ 9F180A1FA5DD4DB3BA7E3B41 /* AppConfig.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AppConfig.swift; path = MatchLiveTv/Core/AppConfig.swift; sourceTree = ""; };
+ A43B670D8BE94F66B38885C8 /* BroadcastVideoOrientation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastVideoOrientation.swift; path = MatchLiveTv/Streaming/BroadcastVideoOrientation.swift; sourceTree = ""; };
+ A8048B96407947C7BA4222E8 /* OverlayCanvasRenderer.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayCanvasRenderer.swift; path = MatchLiveTv/Streaming/Overlay/OverlayCanvasRenderer.swift; sourceTree = ""; };
+ AAC2A198868F4B4E9010F862 /* ThermalState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalState.swift; path = MatchLiveTv/Core/Thermal/ThermalState.swift; sourceTree = ""; };
+ ADBBD9C8DF9F4A47ACEFE7B1 /* MediaUrl.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MediaUrl.swift; path = MatchLiveTv/Core/MediaUrl.swift; sourceTree = ""; };
+ AF8C38306C6F420DBC42DA2A /* ForgotPasswordScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ForgotPasswordScreen.swift; path = MatchLiveTv/UI/Login/ForgotPasswordScreen.swift; sourceTree = ""; };
+ B0B243B2A21344558626DF7F /* ScoreController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreController.swift; path = MatchLiveTv/Data/Scoring/ScoreController.swift; sourceTree = ""; };
+ B214C9B30C794F00A31B0D83 /* Routes.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = Routes.swift; path = MatchLiveTv/UI/Navigation/Routes.swift; sourceTree = ""; };
+ B2432C46DFBA4322887D8C59 /* BroadcastOrientationPolicy.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastOrientationPolicy.swift; path = MatchLiveTv/Streaming/BroadcastOrientationPolicy.swift; sourceTree = ""; };
+ B5BF3429BFBA4DB3BDBD721D /* OverlayLogoCache.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = OverlayLogoCache.swift; path = MatchLiveTv/Streaming/Overlay/OverlayLogoCache.swift; sourceTree = ""; };
+ C6D684B88BEB440F8D331D3D /* LiveBroadcastEngine.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastEngine.swift; path = MatchLiveTv/Streaming/LiveBroadcastEngine.swift; sourceTree = ""; };
+ C7403EB9DBD8459A93D9E2D8 /* MatchSecondaryButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchSecondaryButton.swift; path = MatchLiveTv/UI/Components/MatchSecondaryButton.swift; sourceTree = ""; };
+ C7D22FF2CF3D4230A7BAA60C /* ApiInstant.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ApiInstant.swift; path = MatchLiveTv/Core/ApiInstant.swift; sourceTree = ""; };
+ C9975D8D02CF4FA0A47696DD /* BroadcastModels.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastModels.swift; path = MatchLiveTv/Streaming/BroadcastModels.swift; sourceTree = ""; };
+ C9D84DE8EFA34B4CBDFF43F1 /* ThermalStateManager.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ThermalStateManager.swift; path = MatchLiveTv/Core/Thermal/ThermalStateManager.swift; sourceTree = ""; };
+ CCC8ECFD24A14054BDD984C3 /* ScoreRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreRepository.swift; path = MatchLiveTv/Data/Repository/ScoreRepository.swift; sourceTree = ""; };
+ CDDF270D449A43F18399966D /* ColorHex.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ColorHex.swift; path = MatchLiveTv/Core/ColorHex.swift; sourceTree = ""; };
+ CE0F9D7D5EE749E8AAE6AB43 /* MatchLiveTv.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = MatchLiveTv.app; sourceTree = BUILT_PRODUCTS_DIR; };
+ D2996990D08341ABA52BE287 /* MatchColors.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = MatchColors.swift; path = MatchLiveTv/UI/Theme/MatchColors.swift; sourceTree = ""; };
+ D7C29F5731A142C3A12B6DCA /* SplashScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = SplashScreen.swift; path = MatchLiveTv/UI/Splash/SplashScreen.swift; sourceTree = ""; };
+ E124B3B49FC34520805CCC97 /* LoginScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LoginScreen.swift; path = MatchLiveTv/UI/Login/LoginScreen.swift; sourceTree = ""; };
+ E5CA1FE59BA14F76BA94C995 /* BroadcastOrientationPolicyTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastOrientationPolicyTests.swift; path = MatchLiveTvTests/BroadcastOrientationPolicyTests.swift; sourceTree = ""; };
+ E860A0E35362427DA84F8972 /* BroadcastControlsOverlay.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = BroadcastControlsOverlay.swift; path = MatchLiveTv/UI/Broadcast/BroadcastControlsOverlay.swift; sourceTree = ""; };
+ EA08E23008964D02AB59377E /* ScoreState.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScoreState.swift; path = MatchLiveTv/Domain/ScoreState.swift; sourceTree = ""; };
+ EAB037B1369B454D84F6850D /* StepMatchScreen.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = StepMatchScreen.swift; path = MatchLiveTv/UI/Wizard/StepMatchScreen.swift; sourceTree = ""; };
+ EE0A49E8D59947448DAA7851 /* AuthRepository.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = AuthRepository.swift; path = MatchLiveTv/Data/Repository/AuthRepository.swift; sourceTree = ""; };
+ EEFE07D4B6FD44199A5B9C25 /* MatchLiveTv/Resources/de.lproj */ = {isa = PBXFileReference; lastKnownFileType = folder; path = MatchLiveTv/Resources/de.lproj; sourceTree = ""; };
+ F438E7E164F44C7B856C4808 /* LiveBroadcastCoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveBroadcastCoordinator.swift; path = MatchLiveTv/Streaming/LiveBroadcastCoordinator.swift; sourceTree = ""; };
+ F4F8BF2514BB4F5185827B95 /* LiveScoreDialogHostTests.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = LiveScoreDialogHostTests.swift; path = MatchLiveTvTests/LiveScoreDialogHostTests.swift; sourceTree = ""; };
+ FF10FF45004F41AD82397DC9 /* ScreenOrientation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; name = ScreenOrientation.swift; path = MatchLiveTv/UI/System/ScreenOrientation.swift; sourceTree = ""; };
+/* End PBXFileReference section */
+
+/* Begin PBXFrameworksBuildPhase section */
+ 414C9A6F8BE0437593A403A9 /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 4C29C4A7302793FE00CD9AAD /* RTMPHaishinKit in Frameworks */,
+ 4C29C4A6302793FE00CD9AAD /* HaishinKit in Frameworks */,
);
- MARKETING_VERSION = 2.0.10;
- PRODUCT_BUNDLE_IDENTIFIER = com.matchlivetv.match-live-tv;
- PRODUCT_NAME = "$(TARGET_NAME)";
- API_BASE_URL = "https://www.matchlivetv.it";
- SWIFT_VERSION = 5.0;
- TARGETED_DEVICE_FAMILY = "1,2";
- }; name = Release; };
- EFB6F8A078FC44639CBDACBD = {isa = XCBuildConfiguration; buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
- GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
- MARKETING_VERSION = 2.0.10;
- PRODUCT_BUNDLE_IDENTIFIER = com.matchlivetv.match-live-tv.tests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MatchLiveTv.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MatchLiveTv";
- }; name = Debug; };
- 6482CB0453A5481CBE8BA182 = {isa = XCBuildConfiguration; buildSettings = {
- BUNDLE_LOADER = "$(TEST_HOST)";
- CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
- GENERATE_INFOPLIST_FILE = YES;
- IPHONEOS_DEPLOYMENT_TARGET = 16.0;
- MARKETING_VERSION = 2.0.10;
- PRODUCT_BUNDLE_IDENTIFIER = com.matchlivetv.match-live-tv.tests;
- PRODUCT_NAME = "$(TARGET_NAME)";
- SDKROOT = iphoneos;
- SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
- SWIFT_VERSION = 5.0;
- TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MatchLiveTv.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MatchLiveTv";
- }; name = Release; };
- 19E8D060E51148A4B9C398B0 = {isa = XCBuildConfiguration; buildSettings = {IPHONEOS_DEPLOYMENT_TARGET = 16.0; SWIFT_VERSION = 5.0; }; name = Debug; };
- 61160469A90147FA9D4C7CA9 = {isa = XCBuildConfiguration; buildSettings = {IPHONEOS_DEPLOYMENT_TARGET = 16.0; SWIFT_VERSION = 5.0; }; name = Release; };
- 117DCD84E04B4B03A2BFFFEA = {isa = XCConfigurationList; buildConfigurations = (ABC7AFD6F8DE449D90C8AD6A, 71636134BDC0490291EAAE3E); defaultConfigurationName = Release; };
- FE6CC95B39C044E1AC614098 = {isa = XCConfigurationList; buildConfigurations = (EFB6F8A078FC44639CBDACBD, 6482CB0453A5481CBE8BA182); defaultConfigurationName = Release; };
- EDC625652E214655BDA2B2AC = {isa = XCConfigurationList; buildConfigurations = (19E8D060E51148A4B9C398B0, 61160469A90147FA9D4C7CA9); defaultConfigurationName = Release; };
- F54F6C97361C4E8A96AEDD11 = {isa = PBXNativeTarget; buildConfigurationList = 117DCD84E04B4B03A2BFFFEA; buildPhases = (3E146F1019B842318E38BF4D, 414C9A6F8BE0437593A403A9, B75DDD49798641E58FBE57D0); buildRules = (); dependencies = (); name = MatchLiveTv; packageProductDependencies = (74B2BB60EC504F4E9CAFDDC8, 8D1C04B6B7DF4271AC84A016); productName = MatchLiveTv; productReference = CE0F9D7D5EE749E8AAE6AB43; productType = "com.apple.product-type.application"; };
- 58E3C5EC752E497FBFD32D78 = {isa = PBXContainerItemProxy; containerPortal = AE0076753A1840A19E9F565F /* Project object */; proxyType = 1; remoteGlobalIDString = F54F6C97361C4E8A96AEDD11; remoteInfo = MatchLiveTv; };
- E2FB115E6BB84F2EA8EA369B = {isa = PBXTargetDependency; target = F54F6C97361C4E8A96AEDD11 /* MatchLiveTv */; targetProxy = 58E3C5EC752E497FBFD32D78 /* PBXContainerItemProxy */; };
- 20C695DBFB4042879308B0F5 = {isa = PBXNativeTarget; buildConfigurationList = FE6CC95B39C044E1AC614098; buildPhases = (FA890E18B4EB44C58C124F5C, C16D70862B15401AA91E067A); buildRules = (); dependencies = (E2FB115E6BB84F2EA8EA369B); name = MatchLiveTvTests; productName = MatchLiveTvTests; productReference = 3FC0CC8155BE469ABB420DC5; productType = "com.apple.product-type.bundle.unit-test"; };
- 294A8F0AC0E54F1EB302705C = {isa = XCRemoteSwiftPackageReference; repositoryURL = "https://github.com/shogo4405/HaishinKit.swift"; requirement = {kind = upToNextMajorVersion; minimumVersion = 2.0.0;}; };
- AE0076753A1840A19E9F565F = {isa = PBXProject; attributes = {BuildIndependentTargetsInParallel = 0; LastSwiftUpdateCheck = 1600;}; buildConfigurationList = EDC625652E214655BDA2B2AC; compatibilityVersion = "Xcode 15.0"; developmentRegion = it; mainGroup = 7E992B84100649D8BE8507F7; packageReferences = (294A8F0AC0E54F1EB302705C); productRefGroup = 0ADC6126267C410F9B60B426; targets = (F54F6C97361C4E8A96AEDD11, 20C695DBFB4042879308B0F5); };
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ C16D70862B15401AA91E067A /* Frameworks */ = {
+ isa = PBXFrameworksBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXFrameworksBuildPhase section */
+
+/* Begin PBXGroup section */
+ 0ADC6126267C410F9B60B426 /* Products */ = {
+ isa = PBXGroup;
+ children = (
+ CE0F9D7D5EE749E8AAE6AB43 /* MatchLiveTv.app */,
+ 3FC0CC8155BE469ABB420DC5 /* MatchLiveTvTests.xctest */,
+ );
+ name = Products;
+ sourceTree = "";
+ };
+ 6987D3982FAD44A6869B9FD6 /* MatchLiveTvTests */ = {
+ isa = PBXGroup;
+ children = (
+ 75FEB862C3A34BF8AC24052E /* ApiInstantTests.swift */,
+ E5CA1FE59BA14F76BA94C995 /* BroadcastOrientationPolicyTests.swift */,
+ 1830F9A925334BA4B65D490E /* LiveBroadcastCoordinatorTests.swift */,
+ F4F8BF2514BB4F5185827B95 /* LiveScoreDialogHostTests.swift */,
+ 8964CE287E2C4C2DB701497B /* MatchScoringRulesTests.swift */,
+ 10AD0F18190542818572CAEF /* ScoreActionDecodeTests.swift */,
+ 6DF142EBF33B45739BA8E42C /* ScoreControllerTests.swift */,
+ 377A2D2B2DA440AFB0CE2298 /* ThermalAdaptationTests.swift */,
+ );
+ name = MatchLiveTvTests;
+ sourceTree = "";
+ };
+ 7E992B84100649D8BE8507F7 = {
+ isa = PBXGroup;
+ children = (
+ DDEF729FE3334F8998C4A31C /* MatchLiveTv */,
+ 6987D3982FAD44A6869B9FD6 /* MatchLiveTvTests */,
+ 0ADC6126267C410F9B60B426 /* Products */,
+ );
+ sourceTree = "";
+ };
+ DDEF729FE3334F8998C4A31C /* MatchLiveTv */ = {
+ isa = PBXGroup;
+ children = (
+ 5F5FC005B683447B82372E36 /* MatchLiveTvApp.swift */,
+ C7D22FF2CF3D4230A7BAA60C /* ApiInstant.swift */,
+ 9F180A1FA5DD4DB3BA7E3B41 /* AppConfig.swift */,
+ 123A61DD4A6442728811488E /* AppLanguage.swift */,
+ CDDF270D449A43F18399966D /* ColorHex.swift */,
+ 902831E3D87C46359F0D0A21 /* DeviceTelemetry.swift */,
+ ADBBD9C8DF9F4A47ACEFE7B1 /* MediaUrl.swift */,
+ AAC2A198868F4B4E9010F862 /* ThermalState.swift */,
+ C9D84DE8EFA34B4CBDFF43F1 /* ThermalStateManager.swift */,
+ 31251A1297F24C70A14D8702 /* TokenStore.swift */,
+ 1BEBDFA6B21041729156ADFA /* UserFacingError.swift */,
+ 17E7568BD3D94B34A361F470 /* ApiDtos.swift */,
+ 99D52E8096064A359AAE3D47 /* MatchLiveAPI.swift */,
+ 7FC98372F1BD474BB0365488 /* AppContainer.swift */,
+ 98526C26B2584F55AADF0FFF /* ActionCableClient.swift */,
+ 50C70C614F3C45B9B824E465 /* SessionCableService.swift */,
+ EE0A49E8D59947448DAA7851 /* AuthRepository.swift */,
+ 537FC2C063D341DF97A391B9 /* MatchRepository.swift */,
+ 813463F3E17D453EAA801739 /* MatchSessionLauncher.swift */,
+ CCC8ECFD24A14054BDD984C3 /* ScoreRepository.swift */,
+ 87C01CC031C34343B3EBFF08 /* SessionRepository.swift */,
+ B0B243B2A21344558626DF7F /* ScoreController.swift */,
+ 81CA0BDC6EE44C4290D7E483 /* WizardSessionHolder.swift */,
+ 951A7265EF5C41A9A12DD86A /* MatchHubFilter.swift */,
+ 18445F0E4070424F86D55556 /* MatchScoringRules.swift */,
+ 61FCDE0B00FB485CB9B09110 /* Models.swift */,
+ EA08E23008964D02AB59377E /* ScoreState.swift */,
+ C9975D8D02CF4FA0A47696DD /* BroadcastModels.swift */,
+ B2432C46DFBA4322887D8C59 /* BroadcastOrientationPolicy.swift */,
+ A43B670D8BE94F66B38885C8 /* BroadcastVideoOrientation.swift */,
+ F438E7E164F44C7B856C4808 /* LiveBroadcastCoordinator.swift */,
+ C6D684B88BEB440F8D331D3D /* LiveBroadcastEngine.swift */,
+ 78104BD8D9044B659F33B02F /* CompactScoreboardElement.swift */,
+ A8048B96407947C7BA4222E8 /* OverlayCanvasRenderer.swift */,
+ B5BF3429BFBA4DB3BDBD721D /* OverlayLogoCache.swift */,
+ 509414F2274844F4B9A956C3 /* OverlayMappings.swift */,
+ 59E96B1417004CD3BC247C0F /* OverlayRenderer.swift */,
+ 2DDC7305F3B549D0B7646B14 /* OverlayState.swift */,
+ 9D645FD397CD40DDA859F160 /* ScoreboardElement.swift */,
+ 18B95E0D21B0407FA6723720 /* SponsorElement.swift */,
+ 31750F1B9E294337BDBD5B56 /* WatermarkElement.swift */,
+ 46CE696CAB994E2C8E399776 /* LivePreviewView.swift */,
+ 8C2A2F7BAC2B4AC69E8BEAF7 /* StreamVideoPreset.swift */,
+ 4419E10415414556B7C58458 /* AccountScreen.swift */,
+ E860A0E35362427DA84F8972 /* BroadcastControlsOverlay.swift */,
+ 71816F0D99E44551839474CE /* BroadcastScreen.swift */,
+ 4637B286559F4BC294018AC5 /* LiveScoreActions.swift */,
+ 2FF23D4B51AE4DA5B99D4021 /* MatchLiveWordmark.swift */,
+ 6F04C9EAB5984F938EC60BF4 /* MatchPrimaryButton.swift */,
+ 39F3C00B63534E6AA6D8A90A /* MatchScreenScaffold.swift */,
+ C7403EB9DBD8459A93D9E2D8 /* MatchSecondaryButton.swift */,
+ 34BB2251A67E401A9F1E789E /* MatchStatusBadge.swift */,
+ AF8C38306C6F420DBC42DA2A /* ForgotPasswordScreen.swift */,
+ E124B3B49FC34520805CCC97 /* LoginScreen.swift */,
+ 56A95962EF2A4B8F821343D9 /* MatchesScreen.swift */,
+ 866A83237E6943E89A165B9D /* AppNavHost.swift */,
+ 464CF87BEA644025B2D14644 /* ModalRoutes.swift */,
+ B214C9B30C794F00A31B0D83 /* Routes.swift */,
+ 3BFB2F18615747B1A1C9E9B2 /* BroadcastPermissions.swift */,
+ D7C29F5731A142C3A12B6DCA /* SplashScreen.swift */,
+ 004F86D8E8BE47E589B923FA /* KeepScreenOn.swift */,
+ FF10FF45004F41AD82397DC9 /* ScreenOrientation.swift */,
+ 2B5C00419D09442FA8ED60F3 /* ShareSheet.swift */,
+ D2996990D08341ABA52BE287 /* MatchColors.swift */,
+ EAB037B1369B454D84F6850D /* StepMatchScreen.swift */,
+ 1079231B9A4E446AA9AD6C0A /* StepNetworkTestScreen.swift */,
+ 7EC0179FE6BC4323B1F9E1D3 /* StepTransmissionScreen.swift */,
+ 6FBBE0F1399840FFA0E7EF2E /* TeamBrandingEditor.swift */,
+ 7001BB5D65B34280B306ECCF /* TeamColorPicker.swift */,
+ 5B75DC6D0B2248B2A6C9AA66 /* WizardComponents.swift */,
+ 3170F3149C614EC38B417905 /* WizardShellScreen.swift */,
+ 2146FBAC1D7F4FF7B47D360F /* MatchLiveTv/Resources/Assets.xcassets */,
+ 8588711837244B19B84BA0B3 /* MatchLiveTv/Resources/Info.plist */,
+ 857C036B5B5C43368506DD8B /* MatchLiveTv/Resources/it.lproj */,
+ 3A6F9AAB5A1249BBB4FC02E6 /* MatchLiveTv/Resources/en.lproj */,
+ 30B07E7585A7408EA47C8633 /* MatchLiveTv/Resources/fr.lproj */,
+ EEFE07D4B6FD44199A5B9C25 /* MatchLiveTv/Resources/de.lproj */,
+ 2ACAF5B8A617427C8CBF56AD /* MatchLiveTv/Resources/es.lproj */,
+ );
+ name = MatchLiveTv;
+ sourceTree = "";
+ };
+/* End PBXGroup section */
+
+/* Begin PBXNativeTarget section */
+ 20C695DBFB4042879308B0F5 /* MatchLiveTvTests */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = FE6CC95B39C044E1AC614098 /* Build configuration list for PBXNativeTarget "MatchLiveTvTests" */;
+ buildPhases = (
+ FA890E18B4EB44C58C124F5C /* Sources */,
+ C16D70862B15401AA91E067A /* Frameworks */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ E2FB115E6BB84F2EA8EA369B /* PBXTargetDependency */,
+ );
+ name = MatchLiveTvTests;
+ productName = MatchLiveTvTests;
+ productReference = 3FC0CC8155BE469ABB420DC5 /* MatchLiveTvTests.xctest */;
+ productType = "com.apple.product-type.bundle.unit-test";
+ };
+ F54F6C97361C4E8A96AEDD11 /* MatchLiveTv */ = {
+ isa = PBXNativeTarget;
+ buildConfigurationList = 117DCD84E04B4B03A2BFFFEA /* Build configuration list for PBXNativeTarget "MatchLiveTv" */;
+ buildPhases = (
+ 3E146F1019B842318E38BF4D /* Sources */,
+ 414C9A6F8BE0437593A403A9 /* Frameworks */,
+ B75DDD49798641E58FBE57D0 /* Resources */,
+ );
+ buildRules = (
+ );
+ dependencies = (
+ );
+ name = MatchLiveTv;
+ packageProductDependencies = (
+ 74B2BB60EC504F4E9CAFDDC8 /* HaishinKit */,
+ 8D1C04B6B7DF4271AC84A016 /* RTMPHaishinKit */,
+ );
+ productName = MatchLiveTv;
+ productReference = CE0F9D7D5EE749E8AAE6AB43 /* MatchLiveTv.app */;
+ productType = "com.apple.product-type.application";
+ };
+/* End PBXNativeTarget section */
+
+/* Begin PBXProject section */
+ AE0076753A1840A19E9F565F /* Project object */ = {
+ isa = PBXProject;
+ attributes = {
+ BuildIndependentTargetsInParallel = YES;
+ LastSwiftUpdateCheck = 1600;
+ LastUpgradeCheck = 2660;
+ };
+ buildConfigurationList = EDC625652E214655BDA2B2AC /* Build configuration list for PBXProject "MatchLiveTv" */;
+ compatibilityVersion = "Xcode 15.0";
+ developmentRegion = it;
+ hasScannedForEncodings = 0;
+ knownRegions = (
+ it,
+ en,
+ Base,
+ );
+ mainGroup = 7E992B84100649D8BE8507F7;
+ packageReferences = (
+ 294A8F0AC0E54F1EB302705C /* XCRemoteSwiftPackageReference "HaishinKit" */,
+ );
+ productRefGroup = 0ADC6126267C410F9B60B426 /* Products */;
+ projectDirPath = "";
+ projectRoot = "";
+ targets = (
+ F54F6C97361C4E8A96AEDD11 /* MatchLiveTv */,
+ 20C695DBFB4042879308B0F5 /* MatchLiveTvTests */,
+ );
+ };
+/* End PBXProject section */
+
+/* Begin PBXResourcesBuildPhase section */
+ B75DDD49798641E58FBE57D0 /* Resources */ = {
+ isa = PBXResourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 30D3EC3BE61744868019114F /* MatchLiveTv/Resources/Assets.xcassets in Resources */,
+ AA3A68B2C1784294ADB89605 /* MatchLiveTv/Resources/it.lproj in Resources */,
+ 6D6C2C09593B4EADBF082FB5 /* MatchLiveTv/Resources/en.lproj in Resources */,
+ 4F520F571EC647CB9A7B5465 /* MatchLiveTv/Resources/fr.lproj in Resources */,
+ 8C8FEABCD83C422BA5A5DEA3 /* MatchLiveTv/Resources/de.lproj in Resources */,
+ 4AE99343B3A442D6AEBF7032 /* MatchLiveTv/Resources/es.lproj in Resources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXResourcesBuildPhase section */
+
+/* Begin PBXSourcesBuildPhase section */
+ 3E146F1019B842318E38BF4D /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ 65D33C32CF91408B91AFF5D4 /* MatchLiveTvApp.swift in Sources */,
+ F4C4427723C34532AFA1F798 /* ApiInstant.swift in Sources */,
+ E75C942B73594F1484927866 /* AppConfig.swift in Sources */,
+ 38BACC0DAAA147EB8955A60C /* AppLanguage.swift in Sources */,
+ 99B3D05A3D704DA1A513689F /* ColorHex.swift in Sources */,
+ 65EB1857F331469BAC9A18D7 /* DeviceTelemetry.swift in Sources */,
+ 2F393B5FCD244E65B13C97A3 /* MediaUrl.swift in Sources */,
+ 5620C77D9A5B47F3BA0741E4 /* ThermalState.swift in Sources */,
+ D75CBE430CF947B1B8B0225B /* ThermalStateManager.swift in Sources */,
+ A74ACBA3E07740E59502306F /* TokenStore.swift in Sources */,
+ AA18CC40AAB249ECB8C88B85 /* UserFacingError.swift in Sources */,
+ 162DC182A26243599EEA862A /* ApiDtos.swift in Sources */,
+ 2A0825BF1DCC4DC2B1FBC236 /* MatchLiveAPI.swift in Sources */,
+ 70D5E80900C14B0897F02BF8 /* AppContainer.swift in Sources */,
+ 9391C9EA0B834DC8956483DF /* ActionCableClient.swift in Sources */,
+ 359A4FD093C84543AD4DA3B1 /* SessionCableService.swift in Sources */,
+ 59B045E87F2946B8BC8EA65A /* AuthRepository.swift in Sources */,
+ AECC36D80A0C411AB47D581A /* MatchRepository.swift in Sources */,
+ 39335ED5DE5847E5904222AB /* MatchSessionLauncher.swift in Sources */,
+ 470957DE79A84D9889F0663C /* ScoreRepository.swift in Sources */,
+ 66815B27A71244F791DE3C2F /* SessionRepository.swift in Sources */,
+ 244F331A033D4A32A0DC46CB /* ScoreController.swift in Sources */,
+ 6EB9973427144A28B857B49E /* WizardSessionHolder.swift in Sources */,
+ 454725D14B224276B06BCC67 /* MatchHubFilter.swift in Sources */,
+ C19C5E8152C44669AE5D8874 /* MatchScoringRules.swift in Sources */,
+ 20A6FAB1CB7F47C085B75A22 /* Models.swift in Sources */,
+ 8723E1F8443A46B3AF49E8A3 /* ScoreState.swift in Sources */,
+ 6A26C9639E5342ACA259DB67 /* BroadcastModels.swift in Sources */,
+ FF08A44E3B5C4C709095F08C /* BroadcastOrientationPolicy.swift in Sources */,
+ C3873D7719AA419AA0134B65 /* BroadcastVideoOrientation.swift in Sources */,
+ 56896861A77F4036B3763B59 /* LiveBroadcastCoordinator.swift in Sources */,
+ E16207FC581A4182B171119C /* LiveBroadcastEngine.swift in Sources */,
+ 1ABCBB3241B54AE3B8DC175F /* CompactScoreboardElement.swift in Sources */,
+ 69707A2BF3574451AFE893F5 /* OverlayCanvasRenderer.swift in Sources */,
+ 972B0F53517C4AC2A062FD68 /* OverlayLogoCache.swift in Sources */,
+ 9455267569924A4485199B85 /* OverlayMappings.swift in Sources */,
+ FCBDDBB72AD142A39944DA39 /* OverlayRenderer.swift in Sources */,
+ ABC5853FEC554FA4AFBDCD2E /* OverlayState.swift in Sources */,
+ 53A64EA59067426FA7BCEF2E /* ScoreboardElement.swift in Sources */,
+ C4A9BD596C4A4ACD88F7557F /* SponsorElement.swift in Sources */,
+ 6AD0B3220B154EA2936C634A /* WatermarkElement.swift in Sources */,
+ 713E0129656649FC8630FDC6 /* LivePreviewView.swift in Sources */,
+ 451211FDF3214D2098798DB6 /* StreamVideoPreset.swift in Sources */,
+ E5E21D088782469D8EB23543 /* AccountScreen.swift in Sources */,
+ 5B51805239FA4D4D90919D86 /* BroadcastControlsOverlay.swift in Sources */,
+ EE568EA02C404102B4DFD651 /* BroadcastScreen.swift in Sources */,
+ 64EBCA992CD147BB8518DE60 /* LiveScoreActions.swift in Sources */,
+ FE883346930E41C790474211 /* MatchLiveWordmark.swift in Sources */,
+ 57EC4C4193D4412892219315 /* MatchPrimaryButton.swift in Sources */,
+ C6A88BEC28824928A0F7ED08 /* MatchScreenScaffold.swift in Sources */,
+ D74C538E4B754047B328E6F9 /* MatchSecondaryButton.swift in Sources */,
+ 0CB8933AC2B34D4099BBA881 /* MatchStatusBadge.swift in Sources */,
+ CA87B95E856947AC9304E423 /* ForgotPasswordScreen.swift in Sources */,
+ 2C7E484A83584887A412E71E /* LoginScreen.swift in Sources */,
+ E0352EDB139740DBB11DBD51 /* MatchesScreen.swift in Sources */,
+ A2BB5F7A9BEA4F45AC9523C5 /* AppNavHost.swift in Sources */,
+ 30CF022083914A188A9E30A0 /* ModalRoutes.swift in Sources */,
+ BF6BFF14A642487CA8DE29C6 /* Routes.swift in Sources */,
+ 06FE9996B295456D8B8C7E96 /* BroadcastPermissions.swift in Sources */,
+ 142FA0805F1E40C69CAD3433 /* SplashScreen.swift in Sources */,
+ B92A8F0A41CC4ECE8BFCE0D9 /* KeepScreenOn.swift in Sources */,
+ 1C4B54C40F4E4D1090A6BDA5 /* ScreenOrientation.swift in Sources */,
+ 1A82C6F343F54284AFA8FECE /* ShareSheet.swift in Sources */,
+ 7575030B9AEB4DEBAD986A23 /* MatchColors.swift in Sources */,
+ 777B73E69F8A4DC6A8E7C1DF /* StepMatchScreen.swift in Sources */,
+ F67C0C88237F41DE8EDF6CB8 /* StepNetworkTestScreen.swift in Sources */,
+ 2B8E5D9945364094B74165DE /* StepTransmissionScreen.swift in Sources */,
+ 45776A6A76D04EF5A0C0D187 /* TeamBrandingEditor.swift in Sources */,
+ 39F7D49D44244F51907E803D /* TeamColorPicker.swift in Sources */,
+ E417F20C78464CA78B28E3DE /* WizardComponents.swift in Sources */,
+ D1CF09F02F8844C4A22922F4 /* WizardShellScreen.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+ FA890E18B4EB44C58C124F5C /* Sources */ = {
+ isa = PBXSourcesBuildPhase;
+ buildActionMask = 2147483647;
+ files = (
+ ACC54AA19C5747CFA118C70B /* ApiInstantTests.swift in Sources */,
+ 592DF4BAC5624417A7123422 /* BroadcastOrientationPolicyTests.swift in Sources */,
+ C9174111ED4A42E887578BF0 /* LiveBroadcastCoordinatorTests.swift in Sources */,
+ 095654DAAF6C4EA4B73BAB61 /* LiveScoreDialogHostTests.swift in Sources */,
+ AA18DECE8D08461B9197EB71 /* MatchScoringRulesTests.swift in Sources */,
+ 5D91C53D2E8A4952937F816B /* ScoreActionDecodeTests.swift in Sources */,
+ FB66DD0422E14C54AC5B3EDB /* ScoreControllerTests.swift in Sources */,
+ AB6FF1A930EB459091B77922 /* ThermalAdaptationTests.swift in Sources */,
+ );
+ runOnlyForDeploymentPostprocessing = 0;
+ };
+/* End PBXSourcesBuildPhase section */
+
+/* Begin PBXTargetDependency section */
+ E2FB115E6BB84F2EA8EA369B /* PBXTargetDependency */ = {
+ isa = PBXTargetDependency;
+ target = F54F6C97361C4E8A96AEDD11 /* MatchLiveTv */;
+ targetProxy = 58E3C5EC752E497FBFD32D78 /* PBXContainerItemProxy */;
+ };
+/* End PBXTargetDependency section */
+
+/* Begin XCBuildConfiguration section */
+ 19E8D060E51148A4B9C398B0 /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ DEAD_CODE_STRIPPING = YES;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_TESTABILITY = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ ONLY_ACTIVE_ARCH = YES;
+ STRING_CATALOG_GENERATE_SYMBOLS = YES;
+ SWIFT_VERSION = 5.0;
+ };
+ name = Debug;
+ };
+ 61160469A90147FA9D4C7CA9 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED = YES;
+ CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING = YES;
+ CLANG_WARN_BOOL_CONVERSION = YES;
+ CLANG_WARN_COMMA = YES;
+ CLANG_WARN_CONSTANT_CONVERSION = YES;
+ CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
+ CLANG_WARN_EMPTY_BODY = YES;
+ CLANG_WARN_ENUM_CONVERSION = YES;
+ CLANG_WARN_INFINITE_RECURSION = YES;
+ CLANG_WARN_INT_CONVERSION = YES;
+ CLANG_WARN_NON_LITERAL_NULL_CONVERSION = YES;
+ CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF = YES;
+ CLANG_WARN_OBJC_LITERAL_CONVERSION = YES;
+ CLANG_WARN_QUOTED_INCLUDE_IN_FRAMEWORK_HEADER = YES;
+ CLANG_WARN_RANGE_LOOP_ANALYSIS = YES;
+ CLANG_WARN_STRICT_PROTOTYPES = YES;
+ CLANG_WARN_SUSPICIOUS_MOVE = YES;
+ CLANG_WARN_UNREACHABLE_CODE = YES;
+ CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
+ DEAD_CODE_STRIPPING = YES;
+ ENABLE_STRICT_OBJC_MSGSEND = YES;
+ ENABLE_USER_SCRIPT_SANDBOXING = YES;
+ GCC_NO_COMMON_BLOCKS = YES;
+ GCC_WARN_64_TO_32_BIT_CONVERSION = YES;
+ GCC_WARN_ABOUT_RETURN_TYPE = YES;
+ GCC_WARN_UNDECLARED_SELECTOR = YES;
+ GCC_WARN_UNINITIALIZED_AUTOS = YES;
+ GCC_WARN_UNUSED_FUNCTION = YES;
+ GCC_WARN_UNUSED_VARIABLE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ STRING_CATALOG_GENERATE_SYMBOLS = YES;
+ SWIFT_COMPILATION_MODE = wholemodule;
+ SWIFT_VERSION = 5.0;
+ };
+ name = Release;
+ };
+ 6482CB0453A5481CBE8BA182 /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 32;
+ GENERATE_INFOPLIST_FILE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.6;
+ MARKETING_VERSION = 2.0.10;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.matchlivetv.match-live-tv.tests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MatchLiveTv.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MatchLiveTv";
+ };
+ name = Release;
+ };
+ 71636134BDC0490291EAAE3E /* Release */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ API_BASE_URL = "https://www.matchlivetv.it";
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 32;
+ DEVELOPMENT_TEAM = S8Q9TWBRG5;
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = MatchLiveTv/Resources/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = MatchLiveTv;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.sports";
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 2.0.10;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.matchlivetv.match-live-tv";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SWIFT_ENABLE_EXPLICIT_MODULES = NO;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Release;
+ };
+ ABC7AFD6F8DE449D90C8AD6A /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ API_BASE_URL = "https://www.matchlivetv.it";
+ ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 32;
+ DEVELOPMENT_TEAM = S8Q9TWBRG5;
+ ENABLE_TESTABILITY = YES;
+ GENERATE_INFOPLIST_FILE = NO;
+ INFOPLIST_FILE = MatchLiveTv/Resources/Info.plist;
+ INFOPLIST_KEY_CFBundleDisplayName = MatchLiveTv;
+ INFOPLIST_KEY_LSApplicationCategoryType = "public.app-category.sports";
+ IPHONEOS_DEPLOYMENT_TARGET = 16.0;
+ LD_RUNPATH_SEARCH_PATHS = (
+ "$(inherited)",
+ "@executable_path/Frameworks",
+ );
+ MARKETING_VERSION = 2.0.10;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.matchlivetv.match-live-tv";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SWIFT_ENABLE_EXPLICIT_MODULES = NO;
+ SWIFT_VERSION = 5.0;
+ TARGETED_DEVICE_FAMILY = "1,2";
+ };
+ name = Debug;
+ };
+ EFB6F8A078FC44639CBDACBD /* Debug */ = {
+ isa = XCBuildConfiguration;
+ buildSettings = {
+ BUNDLE_LOADER = "$(TEST_HOST)";
+ CLANG_ENABLE_OBJC_WEAK = YES;
+ CODE_SIGN_STYLE = Automatic;
+ CURRENT_PROJECT_VERSION = 32;
+ GENERATE_INFOPLIST_FILE = YES;
+ IPHONEOS_DEPLOYMENT_TARGET = 16.6;
+ MARKETING_VERSION = 2.0.10;
+ PRODUCT_BUNDLE_IDENTIFIER = "com.matchlivetv.match-live-tv.tests";
+ PRODUCT_NAME = "$(TARGET_NAME)";
+ SDKROOT = iphoneos;
+ SUPPORTED_PLATFORMS = "iphoneos iphonesimulator";
+ SWIFT_VERSION = 5.0;
+ TEST_HOST = "$(BUILT_PRODUCTS_DIR)/MatchLiveTv.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/MatchLiveTv";
+ };
+ name = Debug;
+ };
+/* End XCBuildConfiguration section */
+
+/* Begin XCConfigurationList section */
+ 117DCD84E04B4B03A2BFFFEA /* Build configuration list for PBXNativeTarget "MatchLiveTv" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ ABC7AFD6F8DE449D90C8AD6A /* Debug */,
+ 71636134BDC0490291EAAE3E /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ EDC625652E214655BDA2B2AC /* Build configuration list for PBXProject "MatchLiveTv" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ 19E8D060E51148A4B9C398B0 /* Debug */,
+ 61160469A90147FA9D4C7CA9 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+ FE6CC95B39C044E1AC614098 /* Build configuration list for PBXNativeTarget "MatchLiveTvTests" */ = {
+ isa = XCConfigurationList;
+ buildConfigurations = (
+ EFB6F8A078FC44639CBDACBD /* Debug */,
+ 6482CB0453A5481CBE8BA182 /* Release */,
+ );
+ defaultConfigurationIsVisible = 0;
+ defaultConfigurationName = Release;
+ };
+/* End XCConfigurationList section */
+
+/* Begin XCRemoteSwiftPackageReference section */
+ 294A8F0AC0E54F1EB302705C /* XCRemoteSwiftPackageReference "HaishinKit" */ = {
+ isa = XCRemoteSwiftPackageReference;
+ repositoryURL = "https://github.com/shogo4405/HaishinKit.swift";
+ requirement = {
+ kind = upToNextMajorVersion;
+ minimumVersion = 2.0.0;
+ };
+ };
+/* End XCRemoteSwiftPackageReference section */
+
+/* Begin XCSwiftPackageProductDependency section */
+ 74B2BB60EC504F4E9CAFDDC8 /* HaishinKit */ = {
+ isa = XCSwiftPackageProductDependency;
+ package = 294A8F0AC0E54F1EB302705C /* XCRemoteSwiftPackageReference "HaishinKit" */;
+ productName = HaishinKit;
+ };
+ 8D1C04B6B7DF4271AC84A016 /* RTMPHaishinKit */ = {
+ isa = XCSwiftPackageProductDependency;
+ package = 294A8F0AC0E54F1EB302705C /* XCRemoteSwiftPackageReference "HaishinKit" */;
+ productName = RTMPHaishinKit;
+ };
+/* End XCSwiftPackageProductDependency section */
};
rootObject = AE0076753A1840A19E9F565F /* Project object */;
}
diff --git a/native/ios/MatchLiveTv.xcodeproj/xcshareddata/xcschemes/MatchLiveTv.xcscheme b/native/ios/MatchLiveTv.xcodeproj/xcshareddata/xcschemes/MatchLiveTv.xcscheme
index e485ce6..d611ee6 100644
--- a/native/ios/MatchLiveTv.xcodeproj/xcshareddata/xcschemes/MatchLiveTv.xcscheme
+++ b/native/ios/MatchLiveTv.xcodeproj/xcshareddata/xcschemes/MatchLiveTv.xcscheme
@@ -1,32 +1,102 @@
-
-
+
+
-
-
+
+
+
-
-
+
+
+
-
+
-
-
+
+
+
-
-
-
+
+
+
+
-
-
-
+
+
+
+
-
-
+
+
+
+
diff --git a/native/ios/MatchLiveTv/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png b/native/ios/MatchLiveTv/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png
index c21c3cf..a625fdf 100644
Binary files a/native/ios/MatchLiveTv/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png and b/native/ios/MatchLiveTv/Resources/Assets.xcassets/AppIcon.appiconset/AppIcon.png differ
diff --git a/native/ios/MatchLiveTv/Resources/Info.plist b/native/ios/MatchLiveTv/Resources/Info.plist
index f43f856..fd49f40 100644
--- a/native/ios/MatchLiveTv/Resources/Info.plist
+++ b/native/ios/MatchLiveTv/Resources/Info.plist
@@ -32,7 +32,7 @@
CFBundleVersion
- 31
+ 32
LSRequiresIPhoneOS
NSCameraUsageDescription
@@ -55,6 +55,14 @@
UISupportedInterfaceOrientations
UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
+ UIInterfaceOrientationLandscapeLeft
+ UIInterfaceOrientationLandscapeRight
+
+ UISupportedInterfaceOrientations~ipad
+
+ UIInterfaceOrientationPortrait
+ UIInterfaceOrientationPortraitUpsideDown
UIInterfaceOrientationLandscapeLeft
UIInterfaceOrientationLandscapeRight
diff --git a/native/ios/generate_xcodeproj.py b/native/ios/generate_xcodeproj.py
index 8aa13ab..5b7762b 100755
--- a/native/ios/generate_xcodeproj.py
+++ b/native/ios/generate_xcodeproj.py
@@ -96,7 +96,7 @@ lines += [
app_settings = """
ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon;
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
+ CURRENT_PROJECT_VERSION = 32;
GENERATE_INFOPLIST_FILE = NO;
INFOPLIST_FILE = MatchLiveTv/Resources/Info.plist;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
@@ -122,7 +122,7 @@ app_debug_settings = app_settings + """
test_settings = """
BUNDLE_LOADER = "$(TEST_HOST)";
CODE_SIGN_STYLE = Automatic;
- CURRENT_PROJECT_VERSION = 31;
+ CURRENT_PROJECT_VERSION = 32;
GENERATE_INFOPLIST_FILE = YES;
IPHONEOS_DEPLOYMENT_TARGET = 16.0;
MARKETING_VERSION = 2.0.10;