mirror of
https://github.com/narrrl/proton-stream.git
synced 2026-11-03 16:41:26 +01:00
`@testable import ProtonStream` imports the app's bridging header, which includes PstrBridgeFFI.h from ios/build/generated.
106 lines
4.0 KiB
YAML
106 lines
4.0 KiB
YAML
# XcodeGen spec for the iOS client. The .xcodeproj and Info.plist are generated
|
|
# from this by scripts/build-ios.sh and are not committed.
|
|
name: ProtonStream
|
|
options:
|
|
bundleIdPrefix: io.narl
|
|
deploymentTarget:
|
|
iOS: "17.0"
|
|
|
|
packages:
|
|
MPVKit:
|
|
url: https://github.com/mpvkit/MPVKit
|
|
exactVersion: 1.0.0
|
|
|
|
targets:
|
|
ProtonStream:
|
|
type: application
|
|
platform: iOS
|
|
sources:
|
|
- path: ProtonStream
|
|
excludes:
|
|
# The icon's source; the asset catalog holds what it renders to.
|
|
- Resources/AppIcon.svg
|
|
- Resources/THIRD_PARTY_NOTICES.md
|
|
- path: ProtonStream/Resources/THIRD_PARTY_NOTICES.md
|
|
buildPhase: resources
|
|
# UniFFI output, written by `scripts/build-ios.sh bindings`.
|
|
- path: build/generated/PstrBridge.swift
|
|
# Shared with the Android client rather than copied: Inter, and the
|
|
# licence texts the About page shows.
|
|
- path: ../android/app/src/main/res/font/inter_regular.ttf
|
|
buildPhase: resources
|
|
- path: ../android/app/src/main/res/font/inter_semibold.ttf
|
|
buildPhase: resources
|
|
- path: ../android/app/src/main/assets/licenses/GPL-3.0.txt
|
|
buildPhase: resources
|
|
- path: ../android/app/src/main/assets/licenses/Inter-OFL.txt
|
|
buildPhase: resources
|
|
dependencies:
|
|
# The GPL build is the one with libass and every demuxer; the app is
|
|
# sideloaded, never distributed through the App Store.
|
|
- package: MPVKit
|
|
product: MPVKit-GPL
|
|
- sdk: Security.framework
|
|
- sdk: SystemConfiguration.framework
|
|
scheme:
|
|
testTargets:
|
|
- ProtonStreamTests
|
|
settings:
|
|
base:
|
|
PRODUCT_BUNDLE_IDENTIFIER: io.narl.protonstream
|
|
MARKETING_VERSION: ${PSTR_VERSION}
|
|
CURRENT_PROJECT_VERSION: ${PSTR_BUILD}
|
|
SWIFT_VERSION: "5.0"
|
|
TARGETED_DEVICE_FAMILY: "1,2"
|
|
ASSETCATALOG_COMPILER_APPICON_NAME: AppIcon
|
|
SWIFT_OBJC_BRIDGING_HEADER: ProtonStream/Bridge/ProtonStream-Bridging-Header.h
|
|
HEADER_SEARCH_PATHS: $(PROJECT_DIR)/build/generated
|
|
"LIBRARY_SEARCH_PATHS[sdk=iphoneos*]": $(PROJECT_DIR)/../target/aarch64-apple-ios/release
|
|
"LIBRARY_SEARCH_PATHS[sdk=iphonesimulator*]": $(PROJECT_DIR)/../target/aarch64-apple-ios-sim/release
|
|
OTHER_LDFLAGS: -lpstr_android
|
|
info:
|
|
path: ProtonStream/Info.plist
|
|
properties:
|
|
CFBundleDisplayName: Proton Stream
|
|
LSRequiresIPhoneOS: true
|
|
ITSAppUsesNonExemptEncryption: false
|
|
UIBackgroundModes: [audio]
|
|
# The Proton palette's page colour, so a dark app does not open on white.
|
|
UILaunchScreen:
|
|
UIColorName: LaunchBackground
|
|
UIRequiresFullScreen: false
|
|
UIAppFonts:
|
|
- inter_regular.ttf
|
|
- inter_semibold.ttf
|
|
# A share link handed over from elsewhere: protonstream://add?url=…,
|
|
# or the link with its scheme swapped (IncomingShareLink.swift).
|
|
CFBundleURLTypes:
|
|
- CFBundleURLName: io.narl.protonstream.share-link
|
|
CFBundleURLSchemes: [protonstream]
|
|
UISupportedInterfaceOrientations:
|
|
- UIInterfaceOrientationPortrait
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
UISupportedInterfaceOrientations~ipad:
|
|
- UIInterfaceOrientationPortrait
|
|
- UIInterfaceOrientationPortraitUpsideDown
|
|
- UIInterfaceOrientationLandscapeLeft
|
|
- UIInterfaceOrientationLandscapeRight
|
|
|
|
# The pure logic the Android unit tests pin, pinned again here: hosted in the
|
|
# app, so `@testable import` reaches it, on the simulator.
|
|
ProtonStreamTests:
|
|
type: bundle.unit-test
|
|
platform: iOS
|
|
sources:
|
|
- path: ProtonStreamTests
|
|
dependencies:
|
|
- target: ProtonStream
|
|
settings:
|
|
base:
|
|
SWIFT_VERSION: "5.0"
|
|
GENERATE_INFOPLIST_FILE: YES
|
|
# `@testable import ProtonStream` pulls in the app's bridging header,
|
|
# which includes the generated FFI header.
|
|
HEADER_SEARCH_PATHS: $(PROJECT_DIR)/build/generated
|