Skip to content

Build the iOS package for arm64 watches and tvOS - #64

Merged
yusuftor merged 1 commit into
masterfrom
feat/watchos-arm64-tvos
Nov 5, 2026
Merged

yusuftor merged 1 commit into
masterfrom
feat/watchos-arm64-tvos

Conversation

@yusuftor

@yusuftor yusuftor commented Nov 4, 2026

Copy link
Copy Markdown
Contributor

Changes

watchOS: watch apps couldn't link. Xcode builds watch apps for both arm64_32 and arm64, but the watchOS device slice only had arm64_32. Any watch app using SuperwallKit failed to link:

ld: warning: ignoring file '…/libcel.a(…)': found architecture 'arm64_32', required architecture 'arm64'
clang: error: linker command failed with exit code 1

The device slice is now a fat arm64_32 + arm64 library (watchos-arm64_arm64_32).

tvOS: new slices. Adds tvOS device (arm64) and simulator (arm64 + x86_64) slices, so SuperwallKit can evaluate audience filters on tvOS. Today it leaves Superscript out on tvOS, so filters never match there.

All four new targets are tier 3 and use the same nightly build-std setup as watchOS and visionOS, with panic_unwind kept.

Release: bumps to 1.0.18 (crate, wasm package, changelog). The newest superscript-ios-next tag is 1.0.17, so the release won't be skipped. The evaluator itself is unchanged.

Merge order

  1. Declare tvOS and test real expression evaluation superscript-ios-next#3, which declares tvOS in Package.swift
  2. this PR, which publishes 1.0.18
  3. Build on watchOS and tvOS without paywalls Superwall-iOS#594 (or a follow-up), which moves to 1.0.18 and stops leaving Superscript out on tvOS

Testing

  • cargo test --lib: 114 passed.
  • ./build_ios.sh locally produces all 10 slices.
  • Against that local build:
    • a watch app and a tvOS app depending on SuperwallKit build and link for device and simulator (before this change, the watch device build failed to link)
    • expression tests pass on the watchOS 10 simulator
    • there's no tvOS simulator runtime here, so tvOS was only built and linked, not run

🤖 Generated with Claude Code

Xcode builds watch apps for arm64_32 and arm64, but the watchOS device
slice only had arm64_32, so any watch app linking Superscript failed with
"found architecture 'arm64_32', required architecture 'arm64'". The
device slice is now a fat arm64_32 + arm64 library.

Also adds tvOS device (arm64) and simulator (arm64 + x86_64) slices, so
SuperwallKit can evaluate audience filters on tvOS. All new targets are
tier 3 and use the same nightly build-std setup as watchOS and visionOS,
with panic_unwind kept.

Bumps to 1.0.18 to publish it.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@yusuftor
yusuftor merged commit 0ae69d9 into master Nov 5, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant