fix(ios,macos): address PR #26 review findings
- ios/Runner.xcodeproj/project.pbxproj: Update RunnerTests TEST_HOST paths from Runner.app/Runner to Chanora.app/Chanora (target was renamed in prior commit but test config still pointed at old paths, breaking xcodebuild test). - Cargo.toml: Move release DWARF flags from workspace [profile.release] into Apple-only podspec CARGO_PROFILE_RELEASE_* env vars so Android, Linux, Windows release builds stay lean (~10MB DWARF avoided). - ios/Runner/Info.plist + macos/Runner/Info.plist: Flip ITSAppUsesNonExemptEncryption from false to true (Chanora ships ChaCha20-Poly1305 local storage + tsclientlib ECDH/AES-EAX voice channel encryption, not exempt under Apple export-compliance rules). - scripts/verify_silero_exports.sh: Make slice-aware via lipo -archs loop + per-arch nm -arch invocation so universal macOS builds verify every architecture slice, not just whichever slice nm picks. - .gitignore: Drop .omo/ and .playwright-mcp/ entries (scope leak; unrelated tooling state, not part of PR #26 archive-symbol concern).
This commit is contained in:
+11
-21
@@ -83,26 +83,16 @@ tsproto-types = { git = "https://github.com/EdisonJwa/tsclientlib.git", branch =
|
||||
[patch.crates-io]
|
||||
cmake = { git = "https://github.com/pr2502/cmake-rs", rev = "bdad5edc569d82151922c5c6c4685b1563f12aa1" }
|
||||
|
||||
# Emit DWARF debug info in release builds.
|
||||
# Apple-only DWARF emission for archive validation lives in the iOS and
|
||||
# macOS chanora_bridge podspecs (apps/chanora_flutter/{ios,macos}/
|
||||
# chanora_bridge.podspec) as per-build environment overrides:
|
||||
#
|
||||
# Apple's archive validator (and App Store Connect upload) require a
|
||||
# matching `.dSYM` for every embedded framework, keyed by the framework
|
||||
# binary's LC_UUID. The CocoaPods bridge podspecs copy the cargo-built
|
||||
# `libchanora_bridge.dylib` into `chanora_bridge.framework/chanora_bridge`
|
||||
# and then run `dsymutil` on it (see apps/chanora_flutter/ios and
|
||||
# apps/chanora_flutter/macos podspecs). `dsymutil` needs DWARF in the
|
||||
# input binary to produce a useful dSYM with symbol records; without
|
||||
# `debug = true` here we'd ship a stripped binary and an empty/unusable
|
||||
# dSYM and TestFlight crash reports would be unsymbolicated.
|
||||
# CARGO_PROFILE_RELEASE_DEBUG=true
|
||||
# CARGO_PROFILE_RELEASE_SPLIT_DEBUGINFO=off
|
||||
# CARGO_PROFILE_RELEASE_STRIP=false
|
||||
#
|
||||
# `split-debuginfo = "off"` keeps DWARF inside the dylib so install_name_tool
|
||||
# rewriting and the dsymutil pass both work without chasing per-object
|
||||
# `.o` files cargo would otherwise scatter under target/<triple>/release/deps.
|
||||
#
|
||||
# `strip = false` ensures cargo does not pre-strip the dylib before
|
||||
# dsymutil sees it. We strip the in-framework binary ourselves after the
|
||||
# dSYM is produced (handled in the podspec script phases).
|
||||
[profile.release]
|
||||
debug = true
|
||||
split-debuginfo = "off"
|
||||
strip = false
|
||||
# This keeps Android, Linux, and Windows release binaries on the cargo
|
||||
# default release profile (no DWARF, no extra ~10MB symbol payload).
|
||||
# Apple builds need the DWARF so dsymutil can emit a usable
|
||||
# chanora_bridge.framework.dSYM that the archive validator accepts.
|
||||
|
||||
|
||||
Reference in New Issue
Block a user