feat(ipad): T-iPad-1 — device family [1,2] + iPad orientations + CI leg
Opens WebTerm to iPhone + iPad: TARGETED_DEVICE_FAMILY 1→1,2 (project + all targets), iPad gets all four orientations (~ipad key), ios.yml gains an ipad-tests leg (iPad Pro 11 sim). Built plist verified UIDeviceFamily [1,2]; app launches natively full-screen on iPad Pro 11 sim (no letterbox). Adaptive layout (NavigationSplitView) lands in T-iPad-2. Plan: docs/PLAN_IOS_IPAD.md.
This commit is contained in:
@@ -19,7 +19,7 @@ settings:
|
||||
SWIFT_VERSION: "6.0" # Swift 6 language mode
|
||||
SWIFT_STRICT_CONCURRENCY: complete
|
||||
IPHONEOS_DEPLOYMENT_TARGET: "17.0"
|
||||
TARGETED_DEVICE_FAMILY: "1" # iPhone only (iPad layout is out of v1 scope)
|
||||
TARGETED_DEVICE_FAMILY: "1,2" # iPhone + iPad (T-iPad-1; adaptive layout)
|
||||
CODE_SIGN_STYLE: Automatic
|
||||
|
||||
packages:
|
||||
@@ -55,9 +55,10 @@ targets:
|
||||
base:
|
||||
PRODUCT_BUNDLE_IDENTIFIER: com.yaojia.webterm
|
||||
# Target-level on purpose (T-iOS-19 finding): XcodeGen's target platform
|
||||
# default ("1,2") overrides a project-level value, shipping an
|
||||
# installable-but-untested iPad layout. Target-level wins.
|
||||
TARGETED_DEVICE_FAMILY: "1"
|
||||
# default overrides a project-level value. iPad adaptation (T-iPad-1)
|
||||
# opens this to iPhone + iPad; the adaptive layout (LayoutPolicy /
|
||||
# NavigationSplitView, T-iPad-2) makes the iPad layout first-class.
|
||||
TARGETED_DEVICE_FAMILY: "1,2"
|
||||
info:
|
||||
path: App/WebTerm/Resources/Info.plist
|
||||
properties:
|
||||
@@ -69,10 +70,18 @@ targets:
|
||||
CFBundleURLTypes:
|
||||
- CFBundleURLName: com.yaojia.webterm.deeplink
|
||||
CFBundleURLSchemes: [webterminal]
|
||||
# iPhone: portrait + both landscapes (no upside-down — matches P0).
|
||||
UISupportedInterfaceOrientations:
|
||||
- UIInterfaceOrientationPortrait
|
||||
- UIInterfaceOrientationLandscapeLeft
|
||||
- UIInterfaceOrientationLandscapeRight
|
||||
# iPad (T-iPad-1): all four orientations — iPad users hold it any way,
|
||||
# and Split View / Stage Manager assume full orientation freedom.
|
||||
UISupportedInterfaceOrientations~ipad:
|
||||
- UIInterfaceOrientationPortrait
|
||||
- UIInterfaceOrientationPortraitUpsideDown
|
||||
- UIInterfaceOrientationLandscapeLeft
|
||||
- UIInterfaceOrientationLandscapeRight
|
||||
# ── Security-critical keys, transcribed verbatim from PLAN_IOS_CLIENT §5.2 ──
|
||||
# NO NSAllowsArbitraryLoads anywhere (release OR debug): the five CIDR
|
||||
# exceptions below cover LAN + hotspot + Tailscale CGNAT + simulator
|
||||
@@ -114,7 +123,7 @@ targets:
|
||||
settings:
|
||||
base:
|
||||
GENERATE_INFOPLIST_FILE: true
|
||||
TARGETED_DEVICE_FAMILY: "1"
|
||||
TARGETED_DEVICE_FAMILY: "1,2"
|
||||
TEST_HOST: "$(BUILT_PRODUCTS_DIR)/WebTerm.app/$(BUNDLE_EXECUTABLE_FOLDER_PATH)/WebTerm"
|
||||
BUNDLE_LOADER: "$(TEST_HOST)"
|
||||
|
||||
@@ -131,7 +140,7 @@ targets:
|
||||
settings:
|
||||
base:
|
||||
GENERATE_INFOPLIST_FILE: true
|
||||
TARGETED_DEVICE_FAMILY: "1"
|
||||
TARGETED_DEVICE_FAMILY: "1,2"
|
||||
TEST_TARGET_NAME: WebTerm
|
||||
|
||||
schemes:
|
||||
|
||||
Reference in New Issue
Block a user