You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
iOS conforms on duplicate metadata; validators learn the at-most-once rule
The iOS development branch now tolerates duplicated root metadata with
last-wins semantics (efff512c), scoped to the six metadata children -
every implementation agrees, so the duplicate-root-elements entry is
deleted per the mechanism, and the duplicate-metadata-last-wins rule's
state records the fix.
The constraint itself becomes checkable: the grammar cannot express
at-most-once (root children are folded into a repeated choice for
libxml2), so the Schematron gains the root-metadata-once pattern and
validate_experiments a check_root_once pass, both flagging a duplicated
title, state-title, category, icon, color or description. A new corpus
fixture (invalid/state-title-duplicate.phyphox, parser: accepts) pins
both sides: validators flag it, the app suites assert it loads.
Also document the unattended-launch seam next to phyphox://asset=: iOS
takes -phyphoxUrl as a launch argument (simctl/devicectl) because the
openurl confirmation dialog cannot be suppressed; Android deliberately
has no counterpart - adb shell am start is dialog-free. Recorded so
nobody goes looking for the missing half.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Copy file name to clipboardExpand all lines: docs/file-format/index.md
-2Lines changed: 0 additions & 2 deletions
Display the source diff
Display the rich diff
Original file line number
Diff line number
Diff line change
@@ -35,8 +35,6 @@ The title of the experiment. This is just a simple string. Try to keep it short
35
35
36
36
This should not be used for an experiment which will be distributed. This tag contains the title given by the user when saving the state of an experiment. If this is set, the app will show this experiment in the saved-states section. A file may carry at most one `state-title` — like the other metadata tags of the root element, it must not be repeated. If a legacy file nevertheless carries a duplicate (old versions of the app could write one when re-saving a state), the app tolerates it and the last occurrence wins.
This is meant for links in worksheets, documentation and classroom materials that should land the user directly in the right bundled experiment, and it is what automated testing uses to drive the app. It is deliberately limited to the bundled collection: experiment titles are not unique, and files elsewhere on the device keep going through the regular file-opening routes. An unknown path shows the app's normal "could not load" message.
47
47
48
+
#### Launching from automation
49
+
50
+
Scripted testing needs to open such a URL without anyone tapping a dialog, and the two platforms get there differently — deliberately, so do not look for the missing half:
51
+
52
+
-**Android needs no special mechanism.**`adb shell am start -a android.intent.action.VIEW -d "phyphox://asset=accelerometer.phyphox"` delivers the URL to the app without any confirmation dialog.
53
+
-**iOS confirms opening a URL from `simctl openurl` with a system dialog that cannot be suppressed**, so the app instead accepts the URL as a launch argument: `-phyphoxUrl <url>` behaves exactly as if the URL had been opened from outside the app, and goes through the same handler, so the semantics cannot drift (AppDelegate.swift).
xcrun devicectl device process launch --device <udid> de.rwth-aachen.physics.phyphox -phyphoxUrl "phyphox://asset=accelerometer.phyphox"
58
+
```
59
+
48
60
### Online QR-Codes (recommended)
49
61
50
62
If your audience has internet access, this is the recommended method and the QR code can be created directly from our editor. This method is very similar to the phyphox:// URL, but the URL is encoded into a QR code, which can simply be scanned from the phyphox main menu. If you want to or need to create the QR code yourself, simply create a QR-Code that contains a link starting with phyphox://, <http://> or <https://> and phyphox should simply download the experiment after scanning the QR code.
0 commit comments