Fix physical iOS device deployment
This commit is contained in:
+27
-2
@@ -35,6 +35,16 @@ clients/apple/deploy-ios-device.sh \
|
||||
The verified bundle is staged at `dist/ios-managed-device/VoiceCat.iOS.app`. Omit `--no-build`
|
||||
to build and deploy in one command. Add `--console` to attach the launch to device logs.
|
||||
|
||||
The device build first validates the checked-in managed dependency locks, then generates
|
||||
`obj/packages.device.lock.json` for the single `ios-arm64` app restore. This keeps a preceding
|
||||
simulator restore from making the device build fail with `NU1004`; root-level generated lock
|
||||
files under `clients/apple/VoiceCat.iOS` are not inputs to the device build.
|
||||
|
||||
.NET's iOS linker reports `IL2104` aggregate warnings for the pinned BouncyCastle and
|
||||
Google.Protobuf assemblies. The iOS project leaves those aggregate warnings visible but does not
|
||||
promote them to errors. All other warnings remain subject to the repository-wide
|
||||
`TreatWarningsAsErrors` policy.
|
||||
|
||||
Confirm that the process stayed alive:
|
||||
|
||||
```bash
|
||||
@@ -81,15 +91,30 @@ them after runtime changes, then verify that dependency versions did not change:
|
||||
--force-evaluate
|
||||
```
|
||||
|
||||
The device script should not require this command merely because a simulator was built first. If
|
||||
it does, confirm that it is using `obj/packages.device.lock.json` for its `ios-arm64` restore.
|
||||
|
||||
### Command-line signing identity appears missing
|
||||
|
||||
Xcode being signed in and `security find-identity -v -p codesigning` returning no identities can
|
||||
be a shell sandbox or keychain-access artifact. Run the identity check from an ordinary Terminal
|
||||
session before changing certificates. A successful build prints the selected Apple Development
|
||||
identity, provisioning profile, bundle ID, and app ID before linking.
|
||||
|
||||
### Developer disk image cannot be mounted
|
||||
|
||||
CoreDevice errors 10003 or 12040 mean the phone locked. Unlock it, keep the display awake, and
|
||||
rerun deployment with `--no-build`.
|
||||
|
||||
CoreDevice can also install the app successfully and then reject only the launch with error
|
||||
10002 and reason `Locked`. In that case, unlock the phone and rerun the same `--no-build`
|
||||
deployment; rebuilding is unnecessary. Occasional CoreDeviceService initialization timeouts while
|
||||
listing devices or processes do not imply that an already-confirmed install or launch failed.
|
||||
|
||||
## Verified hardware result
|
||||
|
||||
On 2026-09-19, the Debug build completed with .NET 10.0.401 and Xcode 27.0. The host and
|
||||
On 2026-09-21, the Debug build completed with .NET 10.0.401 and Xcode 27.0. The host and
|
||||
ReplayKit extension were signed under team `FJV8L966W4`, installed wirelessly on Talon's iPhone,
|
||||
launched as `me.iamtalon.voicecat`, and remained in the device process list. Audio,
|
||||
and launched as `me.iamtalon.voicecat`; the running UI was confirmed on the device. Audio,
|
||||
background/lock behavior, Bluetooth, ReplayKit, ScreenCaptureKit, and VoiceOver remain separate
|
||||
manual hardware gates.
|
||||
|
||||
Reference in New Issue
Block a user