İlk commit: Stepstead Godot istemci (4.6 Mobile)

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
This commit is contained in:
jts 2026-07-11 11:31:35 +03:00
commit 6a1706051d
346 changed files with 14415 additions and 0 deletions

View file

@ -0,0 +1,5 @@
XSym
0044
99be1ba3f1b49f27eaef0cd758c0b70d
Versions/Current/GodotApplePluginsCoreMotion

View file

@ -0,0 +1,5 @@
XSym
0026
e58c4cf10cc7c8ef7d7167ccb641aeb4
Versions/Current/Resources

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>GodotApplePluginsCoreMotion</string>
<key>CFBundleIdentifier</key>
<string>godotappleplugins.GodotApplePluginsCoreMotion</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GodotApplePluginsCoreMotion</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAbsoluteAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
An absolute (sea-level-referenced) altitude sample from [CMAltimeter].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAbsoluteAltitudeData[/code], available on iOS 15 and later. Reports altitude referenced to mean sea level along with accuracy and precision estimates.
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmabsolutealtitudedata]CMAbsoluteAltitudeData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="accuracy" type="float" setter="set_accuracy" getter="get_accuracy">
Estimated accuracy of [member altitude] in meters.
</member>
<member name="altitude" type="float" setter="set_altitude" getter="get_altitude">
Altitude in meters relative to mean sea level.
</member>
<member name="precision" type="float" setter="set_precision" getter="get_precision">
Estimated precision of [member altitude] in meters.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAccelerometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single accelerometer sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAccelerometerData[/code]. Provides the raw accelerometer reading in G-forces (1 G = 9.81 m/s²) along each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaccelerometerdata]CMAccelerometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="acceleration" type="Vector3" setter="set_acceleration" getter="get_acceleration">
Acceleration along each axis in G-forces. Includes gravity. To remove gravity, use device-motion updates and read [member CMDeviceMotion.user_acceleration] instead.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAltimeter" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Reports relative and (iOS 15+) absolute altitude from the device barometer.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAltimeter[/code]. Use [method start_relative_altitude_updates] for change-from-start readings and [method start_absolute_altitude_updates] for sea-level-referenced readings (iOS 15+).
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [code]is_*_available[/code] returns [code]false[/code] and calls to start updates emit [signal altimeter_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltimeter]CMAltimeter reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer for altimeter access (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_absolute_altitude_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report absolute (sea-level) altitude. Requires iOS 15 or later.
</description>
</method>
<method name="is_relative_altitude_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device has a barometer capable of reporting relative altitude.
</description>
</method>
<method name="start_absolute_altitude_updates">
<return type="void" />
<description>
Begins absolute altitude updates delivered via [signal absolute_altitude_updated]. iOS 15+; emits [signal altimeter_failed] on earlier iOS versions or other platforms.
</description>
</method>
<method name="start_relative_altitude_updates">
<return type="void" />
<description>
Begins relative altitude updates delivered via [signal relative_altitude_updated].
</description>
</method>
<method name="stop_absolute_altitude_updates">
<return type="void" />
<description>
Stops absolute altitude updates.
</description>
</method>
<method name="stop_relative_altitude_updates">
<return type="void" />
<description>
Stops relative altitude updates.
</description>
</method>
</methods>
<signals>
<signal name="absolute_altitude_updated">
<param index="0" name="altitude" type="CMAbsoluteAltitudeData" />
<description>
Emitted on the main thread when a new absolute altitude sample is available.
</description>
</signal>
<signal name="altimeter_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
<signal name="relative_altitude_updated">
<param index="0" name="altitude" type="CMAltitudeData" />
<description>
Emitted on the main thread when a new relative altitude sample is available.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A relative altitude / barometric pressure sample from [CMAltimeter].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAltitudeData[/code]. The altitude is reported relative to the point at which updates were started, not absolute sea level — for absolute readings, use [method CMAltimeter.start_absolute_altitude_updates] and [CMAbsoluteAltitudeData].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltitudedata]CMAltitudeData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure">
Barometric pressure in kilopascals (kPa).
</member>
<member name="relative_altitude" type="float" setter="set_relative_altitude" getter="get_relative_altitude">
Change in altitude in meters, relative to the point at which updates were started.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMDeviceMotion" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Fused sensor data combining accelerometer, gyroscope and magnetometer into attitude, gravity, user acceleration and bias-corrected rotation rate.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMDeviceMotion[/code]. Use this instead of raw accelerometer/gyro data when you need device attitude, gravity-separated user acceleration, or bias-corrected rotation. Emitted by both [CMMotionManager] (handheld device) and [CMHeadphoneMotionManager] (AirPods).
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmdevicemotion]CMDeviceMotion reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="attitude_quaternion" type="Quaternion" setter="set_attitude_quaternion" getter="get_attitude_quaternion">
Device attitude as a quaternion, relative to the reference frame chosen when starting updates.
</member>
<member name="attitude_roll_pitch_yaw" type="Vector3" setter="set_attitude_roll_pitch_yaw" getter="get_attitude_roll_pitch_yaw">
Device attitude as Euler angles in radians: [code]x[/code] is roll, [code]y[/code] is pitch, [code]z[/code] is yaw.
</member>
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
The gravity component of the acceleration, in G-forces, in device coordinates.
</member>
<member name="heading" type="float" setter="set_heading" getter="get_heading">
Heading in degrees, where 0° is the reference attitude. Returns [code]-1[/code] on platforms where heading is not available (e.g. macOS headphone motion, iOS &lt; 11).
</member>
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
Bias-corrected magnetic field in microteslas. Check [member magnetic_field_accuracy] to interpret reliability.
</member>
<member name="magnetic_field_accuracy" type="int" setter="set_magnetic_field_accuracy" getter="get_magnetic_field_accuracy" enum="MagneticFieldCalibrationAccuracy">
Calibration accuracy of [member magnetic_field].
</member>
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
Bias-corrected rotation rate around each axis in radians per second.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
<member name="user_acceleration" type="Vector3" setter="set_user_acceleration" getter="get_user_acceleration">
Acceleration imparted by the user, in G-forces, with gravity removed.
</member>
</members>
<constants>
<constant name="UNCALIBRATED" value="-1" enum="MagneticFieldCalibrationAccuracy">
The magnetometer has not been calibrated; [member magnetic_field] is not reliable.
</constant>
<constant name="LOW" value="0" enum="MagneticFieldCalibrationAccuracy">
Low calibration accuracy.
</constant>
<constant name="MEDIUM" value="1" enum="MagneticFieldCalibrationAccuracy">
Medium calibration accuracy.
</constant>
<constant name="HIGH" value="2" enum="MagneticFieldCalibrationAccuracy">
High calibration accuracy.
</constant>
</constants>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMGyroData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single gyroscope sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMGyroData[/code]. Provides the raw rotation rate around each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmgyrodata]CMGyroData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
Rotation rate around each axis in radians per second. Includes bias from gyroscope drift. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.rotation_rate] instead.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMHeadphoneMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Streams fused head motion data from AirPods Pro / AirPods Max / AirPods 3rd gen and later.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMHeadphoneMotionManager[/code]. Provides [CMDeviceMotion] samples representing head pose when compatible headphones are connected. Useful for head-tracked audio, spatial UI, or letting the user look around with their head while their hands are free.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key (and on macOS, the matching entitlement).[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS 14+[/b] and [b]macOS 14+[/b]. On other platforms [member is_device_motion_available] is [code]false[/code] and [method start_device_motion_updates] emits [signal update_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager]CMHeadphoneMotionManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized). Available on iOS 17.4 / macOS 14.4 and later; returns 0 on earlier versions.
</description>
</method>
<method name="start_device_motion_updates">
<return type="void" />
<description>
Begins delivering [CMDeviceMotion] samples for the connected headphones via [signal device_motion_updated]. If no compatible headphones are connected, samples will begin to arrive once a pair connects.
</description>
</method>
<method name="stop_device_motion_updates">
<return type="void" />
<description>
Stops headphone motion updates.
</description>
</method>
</methods>
<members>
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
The most recent headphone motion sample, or [code]null[/code] if none is available.
</member>
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
[code]true[/code] when updates are currently being delivered.
</member>
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
[code]true[/code] when compatible headphones are currently connected and providing motion data.
</member>
</members>
<signals>
<signal name="connected">
<description>
Emitted when compatible headphones connect and begin providing motion data.
</description>
</signal>
<signal name="device_motion_updated">
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
<description>
Emitted on the main thread when a new headphone motion sample is available.
</description>
</signal>
<signal name="disconnected">
<description>
Emitted when the previously connected headphones disconnect.
</description>
</signal>
<signal name="update_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMagnetometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single magnetometer sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMagnetometerData[/code]. Provides the raw magnetic field reading in microteslas along each device axis. Includes bias from device magnetic interference. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.magnetic_field] instead. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmagnetometerdata]CMMagnetometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
Magnetic field strength along each axis in microteslas (µT).
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionActivity" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A user-activity classification (walking, running, automotive, etc.) from the system motion coprocessor.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionActivity[/code]. More than one activity flag may be set simultaneously (e.g. [member walking] and [member automotive] when the user is moving inside a vehicle). The system uses [member confidence] to indicate how certain the classification is.
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivity]CMMotionActivity reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="automotive" type="bool" setter="set_automotive" getter="get_automotive">
[code]true[/code] when the user appears to be in a vehicle.
</member>
<member name="confidence" type="int" setter="set_confidence" getter="get_confidence" enum="Confidence">
How confident the system is in this classification.
</member>
<member name="cycling" type="bool" setter="set_cycling" getter="get_cycling">
[code]true[/code] when the user appears to be cycling.
</member>
<member name="running" type="bool" setter="set_running" getter="get_running">
[code]true[/code] when the user appears to be running.
</member>
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
Unix-time start of the period for which this activity applies, in seconds.
</member>
<member name="stationary" type="bool" setter="set_stationary" getter="get_stationary">
[code]true[/code] when the user appears to be stationary.
</member>
<member name="unknown" type="bool" setter="set_unknown" getter="get_unknown">
[code]true[/code] when the system cannot classify the user's activity.
</member>
<member name="walking" type="bool" setter="set_walking" getter="get_walking">
[code]true[/code] when the user appears to be walking.
</member>
</members>
<constants>
<constant name="LOW" value="0" enum="Confidence">
Low confidence in the classification.
</constant>
<constant name="MEDIUM" value="1" enum="Confidence">
Medium confidence in the classification.
</constant>
<constant name="HIGH" value="2" enum="Confidence">
High confidence in the classification.
</constant>
</constants>
</class>

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionActivityManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Classifies the user's current activity (walking, running, automotive, cycling, stationary).
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionActivityManager[/code]. The system continuously classifies user activity in the background while motion permission is granted, so [method query_activity] can return historical data even from before your app launched.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [method is_activity_available] returns [code]false[/code] and calls report unavailability via the callback or [signal activity_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivitymanager]CMMotionActivityManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_activity_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device has a motion coprocessor capable of activity classification.
</description>
</method>
<method name="query_activity">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<param index="1" name="toUnixTime" type="float" />
<param index="2" name="callback" type="Callable" />
<description>
Returns historical activities recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(activities: Array, error: String)[/code]; [param activities] is an array of [CMMotionActivity].
</description>
</method>
<method name="start_activity_updates">
<return type="void" />
<description>
Begins live activity updates delivered via [signal activity_updated]. The signal fires whenever the classified activity changes.
</description>
</method>
<method name="stop_activity_updates">
<return type="void" />
<description>
Stops live activity updates.
</description>
</method>
</methods>
<signals>
<signal name="activity_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when the API is unavailable on the current platform.
</description>
</signal>
<signal name="activity_updated">
<param index="0" name="activity" type="CMMotionActivity" />
<description>
Emitted on the main thread when the user's classified activity changes.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Streams accelerometer, gyroscope, magnetometer, and fused device-motion data from the device.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionManager[/code]. Configure an update interval, call one of the [code]start_*_updates[/code] methods, and connect to the matching signal to receive samples.
Prefer [signal device_motion_updated] over raw [signal accelerometer_updated] / [signal gyro_updated] / [signal magnetometer_updated] when you need gravity-separated user acceleration, bias-corrected rotation, or device attitude.
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the manager exists but [code]is_*_available[/code] returns [code]false[/code] and calling [code]start_*_updates[/code] emits [signal update_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionmanager]CMMotionManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="start_accelerometer_updates">
<return type="void" />
<description>
Begins delivering accelerometer samples via [signal accelerometer_updated]. Sampling cadence is controlled by [member accelerometer_update_interval].
</description>
</method>
<method name="start_device_motion_updates">
<return type="void" />
<param index="0" name="referenceFrame" type="int" enum="AttitudeReferenceFrame" />
<description>
Begins delivering fused [CMDeviceMotion] samples via [signal device_motion_updated]. [param referenceFrame] selects how attitude is referenced. Pass [constant XMAGNETIC_NORTH_Z_VERTICAL] or [constant XTRUE_NORTH_Z_VERTICAL] to align yaw with magnetic or true north (requires the magnetometer).
</description>
</method>
<method name="start_gyro_updates">
<return type="void" />
<description>
Begins delivering gyroscope samples via [signal gyro_updated]. Sampling cadence is controlled by [member gyro_update_interval].
</description>
</method>
<method name="start_magnetometer_updates">
<return type="void" />
<description>
Begins delivering magnetometer samples via [signal magnetometer_updated]. Sampling cadence is controlled by [member magnetometer_update_interval].
</description>
</method>
<method name="stop_accelerometer_updates">
<return type="void" />
<description>
Stops accelerometer updates.
</description>
</method>
<method name="stop_device_motion_updates">
<return type="void" />
<description>
Stops device-motion updates.
</description>
</method>
<method name="stop_gyro_updates">
<return type="void" />
<description>
Stops gyroscope updates.
</description>
</method>
<method name="stop_magnetometer_updates">
<return type="void" />
<description>
Stops magnetometer updates.
</description>
</method>
</methods>
<members>
<member name="accelerometer_data" type="CMAccelerometerData" setter="" getter="get_accelerometer_data">
The most recent accelerometer sample, or [code]null[/code] if none is available.
</member>
<member name="accelerometer_update_interval" type="float" setter="set_accelerometer_update_interval" getter="get_accelerometer_update_interval">
Desired interval between accelerometer samples in seconds.
</member>
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
The most recent device-motion sample, or [code]null[/code] if none is available.
</member>
<member name="device_motion_update_interval" type="float" setter="set_device_motion_update_interval" getter="get_device_motion_update_interval">
Desired interval between device-motion samples in seconds.
</member>
<member name="gyro_data" type="CMGyroData" setter="" getter="get_gyro_data">
The most recent gyroscope sample, or [code]null[/code] if none is available.
</member>
<member name="gyro_update_interval" type="float" setter="set_gyro_update_interval" getter="get_gyro_update_interval">
Desired interval between gyroscope samples in seconds.
</member>
<member name="is_accelerometer_active" type="bool" setter="" getter="get_is_accelerometer_active">
[code]true[/code] when accelerometer updates are currently being delivered.
</member>
<member name="is_accelerometer_available" type="bool" setter="" getter="get_is_accelerometer_available">
[code]true[/code] when the device has an accelerometer available to this binding.
</member>
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
[code]true[/code] when device-motion updates are currently being delivered.
</member>
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
[code]true[/code] when fused device-motion is available on this device.
</member>
<member name="is_gyro_active" type="bool" setter="" getter="get_is_gyro_active">
[code]true[/code] when gyroscope updates are currently being delivered.
</member>
<member name="is_gyro_available" type="bool" setter="" getter="get_is_gyro_available">
[code]true[/code] when the device has a gyroscope available to this binding.
</member>
<member name="is_magnetometer_active" type="bool" setter="" getter="get_is_magnetometer_active">
[code]true[/code] when magnetometer updates are currently being delivered.
</member>
<member name="is_magnetometer_available" type="bool" setter="" getter="get_is_magnetometer_available">
[code]true[/code] when the device has a magnetometer available to this binding.
</member>
<member name="magnetometer_data" type="CMMagnetometerData" setter="" getter="get_magnetometer_data">
The most recent magnetometer sample, or [code]null[/code] if none is available.
</member>
<member name="magnetometer_update_interval" type="float" setter="set_magnetometer_update_interval" getter="get_magnetometer_update_interval">
Desired interval between magnetometer samples in seconds.
</member>
</members>
<signals>
<signal name="accelerometer_updated">
<param index="0" name="accelerometer" type="CMAccelerometerData" />
<description>
Emitted on the main thread when a new accelerometer sample is available.
</description>
</signal>
<signal name="device_motion_updated">
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
<description>
Emitted on the main thread when a new fused device-motion sample is available.
</description>
</signal>
<signal name="gyro_updated">
<param index="0" name="gyro" type="CMGyroData" />
<description>
Emitted on the main thread when a new gyroscope sample is available.
</description>
</signal>
<signal name="magnetometer_updated">
<param index="0" name="magnetometer" type="CMMagnetometerData" />
<description>
Emitted on the main thread when a new magnetometer sample is available.
</description>
</signal>
<signal name="update_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
</signals>
<constants>
<constant name="XARBITRARY_Z_VERTICAL" value="1" enum="AttitudeReferenceFrame">
Z axis vertical, X axis aligned with an arbitrary direction in the horizontal plane.
</constant>
<constant name="XARBITRARY_CORRECTED_Z_VERTICAL" value="2" enum="AttitudeReferenceFrame">
Same as [constant XARBITRARY_Z_VERTICAL] but corrected for magnetometer drift.
</constant>
<constant name="XMAGNETIC_NORTH_Z_VERTICAL" value="4" enum="AttitudeReferenceFrame">
Z axis vertical, X axis pointing toward magnetic north. Requires the magnetometer.
</constant>
<constant name="XTRUE_NORTH_Z_VERTICAL" value="8" enum="AttitudeReferenceFrame">
Z axis vertical, X axis pointing toward true north. Requires the magnetometer and Location Services.
</constant>
</constants>
</class>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMPedometer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Step, distance, and floor counts from the system pedometer.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMPedometer[/code]. Supports both historical queries (already-recorded data from the system) and live updates.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b] On iOS the system records pedometer data continuously while motion permission is granted, so [method query_pedometer_data] can return data even from before your app launched.
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the [code]is_*_available[/code] static methods return [code]false[/code] and calls report unavailability through their callback or [signal pedometer_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometer]CMPedometer reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns the current authorization status using Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_cadence_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report cadence.
</description>
</method>
<method name="is_distance_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can estimate walked/run distance.
</description>
</method>
<method name="is_floor_counting_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can count floors ascended/descended.
</description>
</method>
<method name="is_pace_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report pace.
</description>
</method>
<method name="is_step_counting_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can count steps. Step counting is the minimum requirement for any pedometer functionality.
</description>
</method>
<method name="query_pedometer_data">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<param index="1" name="toUnixTime" type="float" />
<param index="2" name="callback" type="Callable" />
<description>
Queries pedometer data recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(data: CMPedometerData, error: String)[/code]; [param data] is [code]null[/code] when [param error] is set.
</description>
</method>
<method name="start_updates">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<description>
Begins live pedometer updates accumulating from [param fromUnixTime] (Unix seconds). Subsequent samples arrive via [signal pedometer_updated]. Use [code]Time.get_unix_time_from_system()[/code] for "now".
</description>
</method>
<method name="stop_updates">
<return type="void" />
<description>
Stops live pedometer updates.
</description>
</method>
</methods>
<signals>
<signal name="pedometer_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error on a live updates stream, or when the API is unavailable on the current platform.
</description>
</signal>
<signal name="pedometer_updated">
<param index="0" name="data" type="CMPedometerData" />
<description>
Emitted on the main thread with the latest cumulative pedometer reading since [method start_updates] was called.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMPedometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Aggregated pedometer data covering a time window.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMPedometerData[/code]. Optional Apple values (distance, floor counts, pace, cadence) report [code]-1[/code] when the underlying capability is unavailable on the device. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometerdata]CMPedometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="average_active_pace" type="float" setter="set_average_active_pace" getter="get_average_active_pace">
Average pace across the window in seconds per meter, or [code]-1[/code] when unavailable.
</member>
<member name="current_cadence" type="float" setter="set_current_cadence" getter="get_current_cadence">
Instantaneous cadence in steps per second, or [code]-1[/code] when unavailable.
</member>
<member name="current_pace" type="float" setter="set_current_pace" getter="get_current_pace">
Instantaneous pace in seconds per meter, or [code]-1[/code] when unavailable.
</member>
<member name="distance" type="float" setter="set_distance" getter="get_distance">
Distance walked or run in meters, or [code]-1[/code] when distance estimation is unavailable.
</member>
<member name="end_date" type="float" setter="set_end_date" getter="get_end_date">
Unix-time end of the reporting window in seconds.
</member>
<member name="floors_ascended" type="int" setter="set_floors_ascended" getter="get_floors_ascended">
Approximate number of floors ascended, or [code]-1[/code] when floor counting is unavailable.
</member>
<member name="floors_descended" type="int" setter="set_floors_descended" getter="get_floors_descended">
Approximate number of floors descended, or [code]-1[/code] when floor counting is unavailable.
</member>
<member name="number_of_steps" type="int" setter="set_number_of_steps" getter="get_number_of_steps">
Step count across the reporting window.
</member>
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
Unix-time start of the reporting window in seconds.
</member>
</members>
</class>

View file

@ -0,0 +1,271 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
V2gXiXYEKthoF+/jfExDDWF93LQ=
</data>
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
<data>
ruTKO3c2PbLquPxEPjNbxh5Lr0g=
</data>
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
<data>
MGhilTq5A7cDDIGlgTeepQ5YnEU=
</data>
<key>Resources/doc_classes/CMAltimeter.xml</key>
<data>
Bh8pRJUZzdX38IUZXYxk5xLAOcY=
</data>
<key>Resources/doc_classes/CMAltitudeData.xml</key>
<data>
XncwCLUZGKxizsT4d36ImyTAfhc=
</data>
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
<data>
7cMBuEKO+J33emlQzGAmUVY+37Y=
</data>
<key>Resources/doc_classes/CMGyroData.xml</key>
<data>
BUfMW1Q1pI+HZDTgn7S/kC4RZVY=
</data>
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
<data>
FnOPBnmglv3tUY2/KINv4MwAnUk=
</data>
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
<data>
yhze/CizXvHiuOZrD0iiFhB4mTU=
</data>
<key>Resources/doc_classes/CMMotionActivity.xml</key>
<data>
2BYkcgbtrEhnKtg4wo2BMIH3pxA=
</data>
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
<data>
i12o0lpE95M+o3cs+BhlMG6+PWA=
</data>
<key>Resources/doc_classes/CMMotionManager.xml</key>
<data>
y/QuZavNCtAQp/aFqQpPBsLrwpI=
</data>
<key>Resources/doc_classes/CMPedometer.xml</key>
<data>
jXC71Xh81YCrJcTyIk1ZfQ0zrzg=
</data>
<key>Resources/doc_classes/CMPedometerData.xml</key>
<data>
ragAg6xgX258zW943jka4RCMk7A=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
RA4KNEUT3BeYQxqO+ChSDfr68XFnxKBqktMIMvNJOKg=
</data>
</dict>
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
<dict>
<key>hash2</key>
<data>
RJbSliCU4rrzZ+Ds73KNMiV2V2hC3kF1vml1r3gVNrg=
</data>
</dict>
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
<dict>
<key>hash2</key>
<data>
0ZTg5tlk5CebGDj0zvJBOHrNq7MFG5YM+TXXkMpOvXg=
</data>
</dict>
<key>Resources/doc_classes/CMAltimeter.xml</key>
<dict>
<key>hash2</key>
<data>
wjkXKlnfQlR3FpN4zMszvfAKegJddYZaXaJPcf+5jKo=
</data>
</dict>
<key>Resources/doc_classes/CMAltitudeData.xml</key>
<dict>
<key>hash2</key>
<data>
MrQBfd0SlC/fnCNRxWozDU2l1kuh6u4krHpUeyNpEDw=
</data>
</dict>
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
<dict>
<key>hash2</key>
<data>
OGWPjyAOnFUgAUTrNZYuvDDj/QyxAzjJxvzzc9w72GI=
</data>
</dict>
<key>Resources/doc_classes/CMGyroData.xml</key>
<dict>
<key>hash2</key>
<data>
CauWse7MqNhA3wY+9eK7esh6Hj6s43RlEK4zO46KNkk=
</data>
</dict>
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
<dict>
<key>hash2</key>
<data>
8255jnS84Sld2w3fVL5fTl4EOn4zIbMfQE5ArxPScpA=
</data>
</dict>
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
<dict>
<key>hash2</key>
<data>
f1C6fe6RKz0BiJEeVQ6WQmwuLXyOpQple5yzW1VF59U=
</data>
</dict>
<key>Resources/doc_classes/CMMotionActivity.xml</key>
<dict>
<key>hash2</key>
<data>
mJtQxqJ5A/FzMfPR6briuOcUhX+TYmQt1tOdzncVFKM=
</data>
</dict>
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
<dict>
<key>hash2</key>
<data>
ptSLkSJQIHBOZfAzvavj63f4//29X9S9wqISFndxkcA=
</data>
</dict>
<key>Resources/doc_classes/CMMotionManager.xml</key>
<dict>
<key>hash2</key>
<data>
k3zhKAXBA0YNQnBIZnf6I1/ZKQWkCSqCan+n4wHqvgI=
</data>
</dict>
<key>Resources/doc_classes/CMPedometer.xml</key>
<dict>
<key>hash2</key>
<data>
wQfIsk9BMd0ZPyaPfjD2gKMPERVqxuZWa1jjKbCsqJA=
</data>
</dict>
<key>Resources/doc_classes/CMPedometerData.xml</key>
<dict>
<key>hash2</key>
<data>
pGA4w+NWkL1kO3DCw31Q8wFg+x5b2yL9hgKAWPOfEN8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0001
7fc56270e7a70fa81a5935b72eacbe29
A

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>GodotApplePluginsCoreMotion.framework/GodotApplePluginsCoreMotion</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>GodotApplePluginsCoreMotion.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>GodotApplePluginsCoreMotion.framework/GodotApplePluginsCoreMotion</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>GodotApplePluginsCoreMotion.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
YATGjz2TdE4R5vbRwDC/UvHPYg0=
</data>
</dict>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
UePO3lMGlX3OnMIwpSjcm5NID5w=
</data>
</dict>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0044
99be1ba3f1b49f27eaef0cd758c0b70d
Versions/Current/GodotApplePluginsCoreMotion

View file

@ -0,0 +1,5 @@
XSym
0026
e58c4cf10cc7c8ef7d7167ccb641aeb4
Versions/Current/Resources

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>GodotApplePluginsCoreMotion</string>
<key>CFBundleIdentifier</key>
<string>godotappleplugins.GodotApplePluginsCoreMotion</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GodotApplePluginsCoreMotion</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,27 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAbsoluteAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
An absolute (sea-level-referenced) altitude sample from [CMAltimeter].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAbsoluteAltitudeData[/code], available on iOS 15 and later. Reports altitude referenced to mean sea level along with accuracy and precision estimates.
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmabsolutealtitudedata]CMAbsoluteAltitudeData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="accuracy" type="float" setter="set_accuracy" getter="get_accuracy">
Estimated accuracy of [member altitude] in meters.
</member>
<member name="altitude" type="float" setter="set_altitude" getter="get_altitude">
Altitude in meters relative to mean sea level.
</member>
<member name="precision" type="float" setter="set_precision" getter="get_precision">
Estimated precision of [member altitude] in meters.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAccelerometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single accelerometer sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAccelerometerData[/code]. Provides the raw accelerometer reading in G-forces (1 G = 9.81 m/s²) along each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaccelerometerdata]CMAccelerometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="acceleration" type="Vector3" setter="set_acceleration" getter="get_acceleration">
Acceleration along each axis in G-forces. Includes gravity. To remove gravity, use device-motion updates and read [member CMDeviceMotion.user_acceleration] instead.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,79 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAltimeter" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Reports relative and (iOS 15+) absolute altitude from the device barometer.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAltimeter[/code]. Use [method start_relative_altitude_updates] for change-from-start readings and [method start_absolute_altitude_updates] for sea-level-referenced readings (iOS 15+).
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [code]is_*_available[/code] returns [code]false[/code] and calls to start updates emit [signal altimeter_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltimeter]CMAltimeter reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer for altimeter access (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_absolute_altitude_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report absolute (sea-level) altitude. Requires iOS 15 or later.
</description>
</method>
<method name="is_relative_altitude_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device has a barometer capable of reporting relative altitude.
</description>
</method>
<method name="start_absolute_altitude_updates">
<return type="void" />
<description>
Begins absolute altitude updates delivered via [signal absolute_altitude_updated]. iOS 15+; emits [signal altimeter_failed] on earlier iOS versions or other platforms.
</description>
</method>
<method name="start_relative_altitude_updates">
<return type="void" />
<description>
Begins relative altitude updates delivered via [signal relative_altitude_updated].
</description>
</method>
<method name="stop_absolute_altitude_updates">
<return type="void" />
<description>
Stops absolute altitude updates.
</description>
</method>
<method name="stop_relative_altitude_updates">
<return type="void" />
<description>
Stops relative altitude updates.
</description>
</method>
</methods>
<signals>
<signal name="absolute_altitude_updated">
<param index="0" name="altitude" type="CMAbsoluteAltitudeData" />
<description>
Emitted on the main thread when a new absolute altitude sample is available.
</description>
</signal>
<signal name="altimeter_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
<signal name="relative_altitude_updated">
<param index="0" name="altitude" type="CMAltitudeData" />
<description>
Emitted on the main thread when a new relative altitude sample is available.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMAltitudeData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A relative altitude / barometric pressure sample from [CMAltimeter].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMAltitudeData[/code]. The altitude is reported relative to the point at which updates were started, not absolute sea level — for absolute readings, use [method CMAltimeter.start_absolute_altitude_updates] and [CMAbsoluteAltitudeData].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmaltitudedata]CMAltitudeData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="pressure" type="float" setter="set_pressure" getter="get_pressure">
Barometric pressure in kilopascals (kPa).
</member>
<member name="relative_altitude" type="float" setter="set_relative_altitude" getter="get_relative_altitude">
Change in altitude in meters, relative to the point at which updates were started.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMDeviceMotion" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Fused sensor data combining accelerometer, gyroscope and magnetometer into attitude, gravity, user acceleration and bias-corrected rotation rate.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMDeviceMotion[/code]. Use this instead of raw accelerometer/gyro data when you need device attitude, gravity-separated user acceleration, or bias-corrected rotation. Emitted by both [CMMotionManager] (handheld device) and [CMHeadphoneMotionManager] (AirPods).
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmdevicemotion]CMDeviceMotion reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="attitude_quaternion" type="Quaternion" setter="set_attitude_quaternion" getter="get_attitude_quaternion">
Device attitude as a quaternion, relative to the reference frame chosen when starting updates.
</member>
<member name="attitude_roll_pitch_yaw" type="Vector3" setter="set_attitude_roll_pitch_yaw" getter="get_attitude_roll_pitch_yaw">
Device attitude as Euler angles in radians: [code]x[/code] is roll, [code]y[/code] is pitch, [code]z[/code] is yaw.
</member>
<member name="gravity" type="Vector3" setter="set_gravity" getter="get_gravity">
The gravity component of the acceleration, in G-forces, in device coordinates.
</member>
<member name="heading" type="float" setter="set_heading" getter="get_heading">
Heading in degrees, where 0° is the reference attitude. Returns [code]-1[/code] on platforms where heading is not available (e.g. macOS headphone motion, iOS &lt; 11).
</member>
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
Bias-corrected magnetic field in microteslas. Check [member magnetic_field_accuracy] to interpret reliability.
</member>
<member name="magnetic_field_accuracy" type="int" setter="set_magnetic_field_accuracy" getter="get_magnetic_field_accuracy" enum="MagneticFieldCalibrationAccuracy">
Calibration accuracy of [member magnetic_field].
</member>
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
Bias-corrected rotation rate around each axis in radians per second.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
<member name="user_acceleration" type="Vector3" setter="set_user_acceleration" getter="get_user_acceleration">
Acceleration imparted by the user, in G-forces, with gravity removed.
</member>
</members>
<constants>
<constant name="UNCALIBRATED" value="-1" enum="MagneticFieldCalibrationAccuracy">
The magnetometer has not been calibrated; [member magnetic_field] is not reliable.
</constant>
<constant name="LOW" value="0" enum="MagneticFieldCalibrationAccuracy">
Low calibration accuracy.
</constant>
<constant name="MEDIUM" value="1" enum="MagneticFieldCalibrationAccuracy">
Medium calibration accuracy.
</constant>
<constant name="HIGH" value="2" enum="MagneticFieldCalibrationAccuracy">
High calibration accuracy.
</constant>
</constants>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMGyroData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single gyroscope sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMGyroData[/code]. Provides the raw rotation rate around each device axis. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmgyrodata]CMGyroData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="rotation_rate" type="Vector3" setter="set_rotation_rate" getter="get_rotation_rate">
Rotation rate around each axis in radians per second. Includes bias from gyroscope drift. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.rotation_rate] instead.
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMHeadphoneMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Streams fused head motion data from AirPods Pro / AirPods Max / AirPods 3rd gen and later.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMHeadphoneMotionManager[/code]. Provides [CMDeviceMotion] samples representing head pose when compatible headphones are connected. Useful for head-tracked audio, spatial UI, or letting the user look around with their head while their hands are free.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key (and on macOS, the matching entitlement).[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS 14+[/b] and [b]macOS 14+[/b]. On other platforms [member is_device_motion_available] is [code]false[/code] and [method start_device_motion_updates] emits [signal update_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmheadphonemotionmanager]CMHeadphoneMotionManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized). Available on iOS 17.4 / macOS 14.4 and later; returns 0 on earlier versions.
</description>
</method>
<method name="start_device_motion_updates">
<return type="void" />
<description>
Begins delivering [CMDeviceMotion] samples for the connected headphones via [signal device_motion_updated]. If no compatible headphones are connected, samples will begin to arrive once a pair connects.
</description>
</method>
<method name="stop_device_motion_updates">
<return type="void" />
<description>
Stops headphone motion updates.
</description>
</method>
</methods>
<members>
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
The most recent headphone motion sample, or [code]null[/code] if none is available.
</member>
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
[code]true[/code] when updates are currently being delivered.
</member>
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
[code]true[/code] when compatible headphones are currently connected and providing motion data.
</member>
</members>
<signals>
<signal name="connected">
<description>
Emitted when compatible headphones connect and begin providing motion data.
</description>
</signal>
<signal name="device_motion_updated">
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
<description>
Emitted on the main thread when a new headphone motion sample is available.
</description>
</signal>
<signal name="disconnected">
<description>
Emitted when the previously connected headphones disconnect.
</description>
</signal>
<signal name="update_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMagnetometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A single magnetometer sample produced by [CMMotionManager].
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMagnetometerData[/code]. Provides the raw magnetic field reading in microteslas along each device axis. Includes bias from device magnetic interference. For a bias-corrected value, use device-motion updates and read [member CMDeviceMotion.magnetic_field] instead. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmagnetometerdata]CMMagnetometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="magnetic_field" type="Vector3" setter="set_magnetic_field" getter="get_magnetic_field">
Magnetic field strength along each axis in microteslas (µT).
</member>
<member name="timestamp" type="float" setter="set_timestamp" getter="get_timestamp">
The time at which the sample was taken, in seconds since device boot.
</member>
</members>
</class>

View file

@ -0,0 +1,50 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionActivity" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A user-activity classification (walking, running, automotive, etc.) from the system motion coprocessor.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionActivity[/code]. More than one activity flag may be set simultaneously (e.g. [member walking] and [member automotive] when the user is moving inside a vehicle). The system uses [member confidence] to indicate how certain the classification is.
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivity]CMMotionActivity reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="automotive" type="bool" setter="set_automotive" getter="get_automotive">
[code]true[/code] when the user appears to be in a vehicle.
</member>
<member name="confidence" type="int" setter="set_confidence" getter="get_confidence" enum="Confidence">
How confident the system is in this classification.
</member>
<member name="cycling" type="bool" setter="set_cycling" getter="get_cycling">
[code]true[/code] when the user appears to be cycling.
</member>
<member name="running" type="bool" setter="set_running" getter="get_running">
[code]true[/code] when the user appears to be running.
</member>
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
Unix-time start of the period for which this activity applies, in seconds.
</member>
<member name="stationary" type="bool" setter="set_stationary" getter="get_stationary">
[code]true[/code] when the user appears to be stationary.
</member>
<member name="unknown" type="bool" setter="set_unknown" getter="get_unknown">
[code]true[/code] when the system cannot classify the user's activity.
</member>
<member name="walking" type="bool" setter="set_walking" getter="get_walking">
[code]true[/code] when the user appears to be walking.
</member>
</members>
<constants>
<constant name="LOW" value="0" enum="Confidence">
Low confidence in the classification.
</constant>
<constant name="MEDIUM" value="1" enum="Confidence">
Medium confidence in the classification.
</constant>
<constant name="HIGH" value="2" enum="Confidence">
High confidence in the classification.
</constant>
</constants>
</class>

View file

@ -0,0 +1,64 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionActivityManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Classifies the user's current activity (walking, running, automotive, cycling, stationary).
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionActivityManager[/code]. The system continuously classifies user activity in the background while motion permission is granted, so [method query_activity] can return historical data even from before your app launched.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b]
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms [method is_activity_available] returns [code]false[/code] and calls report unavailability via the callback or [signal activity_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionactivitymanager]CMMotionActivityManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_activity_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device has a motion coprocessor capable of activity classification.
</description>
</method>
<method name="query_activity">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<param index="1" name="toUnixTime" type="float" />
<param index="2" name="callback" type="Callable" />
<description>
Returns historical activities recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(activities: Array, error: String)[/code]; [param activities] is an array of [CMMotionActivity].
</description>
</method>
<method name="start_activity_updates">
<return type="void" />
<description>
Begins live activity updates delivered via [signal activity_updated]. The signal fires whenever the classified activity changes.
</description>
</method>
<method name="stop_activity_updates">
<return type="void" />
<description>
Stops live activity updates.
</description>
</method>
</methods>
<signals>
<signal name="activity_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when the API is unavailable on the current platform.
</description>
</signal>
<signal name="activity_updated">
<param index="0" name="activity" type="CMMotionActivity" />
<description>
Emitted on the main thread when the user's classified activity changes.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,162 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMMotionManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Streams accelerometer, gyroscope, magnetometer, and fused device-motion data from the device.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMMotionManager[/code]. Configure an update interval, call one of the [code]start_*_updates[/code] methods, and connect to the matching signal to receive samples.
Prefer [signal device_motion_updated] over raw [signal accelerometer_updated] / [signal gyro_updated] / [signal magnetometer_updated] when you need gravity-separated user acceleration, bias-corrected rotation, or device attitude.
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the manager exists but [code]is_*_available[/code] returns [code]false[/code] and calling [code]start_*_updates[/code] emits [signal update_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmmotionmanager]CMMotionManager reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="start_accelerometer_updates">
<return type="void" />
<description>
Begins delivering accelerometer samples via [signal accelerometer_updated]. Sampling cadence is controlled by [member accelerometer_update_interval].
</description>
</method>
<method name="start_device_motion_updates">
<return type="void" />
<param index="0" name="referenceFrame" type="int" enum="AttitudeReferenceFrame" />
<description>
Begins delivering fused [CMDeviceMotion] samples via [signal device_motion_updated]. [param referenceFrame] selects how attitude is referenced. Pass [constant XMAGNETIC_NORTH_Z_VERTICAL] or [constant XTRUE_NORTH_Z_VERTICAL] to align yaw with magnetic or true north (requires the magnetometer).
</description>
</method>
<method name="start_gyro_updates">
<return type="void" />
<description>
Begins delivering gyroscope samples via [signal gyro_updated]. Sampling cadence is controlled by [member gyro_update_interval].
</description>
</method>
<method name="start_magnetometer_updates">
<return type="void" />
<description>
Begins delivering magnetometer samples via [signal magnetometer_updated]. Sampling cadence is controlled by [member magnetometer_update_interval].
</description>
</method>
<method name="stop_accelerometer_updates">
<return type="void" />
<description>
Stops accelerometer updates.
</description>
</method>
<method name="stop_device_motion_updates">
<return type="void" />
<description>
Stops device-motion updates.
</description>
</method>
<method name="stop_gyro_updates">
<return type="void" />
<description>
Stops gyroscope updates.
</description>
</method>
<method name="stop_magnetometer_updates">
<return type="void" />
<description>
Stops magnetometer updates.
</description>
</method>
</methods>
<members>
<member name="accelerometer_data" type="CMAccelerometerData" setter="" getter="get_accelerometer_data">
The most recent accelerometer sample, or [code]null[/code] if none is available.
</member>
<member name="accelerometer_update_interval" type="float" setter="set_accelerometer_update_interval" getter="get_accelerometer_update_interval">
Desired interval between accelerometer samples in seconds.
</member>
<member name="device_motion" type="CMDeviceMotion" setter="" getter="get_device_motion">
The most recent device-motion sample, or [code]null[/code] if none is available.
</member>
<member name="device_motion_update_interval" type="float" setter="set_device_motion_update_interval" getter="get_device_motion_update_interval">
Desired interval between device-motion samples in seconds.
</member>
<member name="gyro_data" type="CMGyroData" setter="" getter="get_gyro_data">
The most recent gyroscope sample, or [code]null[/code] if none is available.
</member>
<member name="gyro_update_interval" type="float" setter="set_gyro_update_interval" getter="get_gyro_update_interval">
Desired interval between gyroscope samples in seconds.
</member>
<member name="is_accelerometer_active" type="bool" setter="" getter="get_is_accelerometer_active">
[code]true[/code] when accelerometer updates are currently being delivered.
</member>
<member name="is_accelerometer_available" type="bool" setter="" getter="get_is_accelerometer_available">
[code]true[/code] when the device has an accelerometer available to this binding.
</member>
<member name="is_device_motion_active" type="bool" setter="" getter="get_is_device_motion_active">
[code]true[/code] when device-motion updates are currently being delivered.
</member>
<member name="is_device_motion_available" type="bool" setter="" getter="get_is_device_motion_available">
[code]true[/code] when fused device-motion is available on this device.
</member>
<member name="is_gyro_active" type="bool" setter="" getter="get_is_gyro_active">
[code]true[/code] when gyroscope updates are currently being delivered.
</member>
<member name="is_gyro_available" type="bool" setter="" getter="get_is_gyro_available">
[code]true[/code] when the device has a gyroscope available to this binding.
</member>
<member name="is_magnetometer_active" type="bool" setter="" getter="get_is_magnetometer_active">
[code]true[/code] when magnetometer updates are currently being delivered.
</member>
<member name="is_magnetometer_available" type="bool" setter="" getter="get_is_magnetometer_available">
[code]true[/code] when the device has a magnetometer available to this binding.
</member>
<member name="magnetometer_data" type="CMMagnetometerData" setter="" getter="get_magnetometer_data">
The most recent magnetometer sample, or [code]null[/code] if none is available.
</member>
<member name="magnetometer_update_interval" type="float" setter="set_magnetometer_update_interval" getter="get_magnetometer_update_interval">
Desired interval between magnetometer samples in seconds.
</member>
</members>
<signals>
<signal name="accelerometer_updated">
<param index="0" name="accelerometer" type="CMAccelerometerData" />
<description>
Emitted on the main thread when a new accelerometer sample is available.
</description>
</signal>
<signal name="device_motion_updated">
<param index="0" name="deviceMotion" type="CMDeviceMotion" />
<description>
Emitted on the main thread when a new fused device-motion sample is available.
</description>
</signal>
<signal name="gyro_updated">
<param index="0" name="gyro" type="CMGyroData" />
<description>
Emitted on the main thread when a new gyroscope sample is available.
</description>
</signal>
<signal name="magnetometer_updated">
<param index="0" name="magnetometer" type="CMMagnetometerData" />
<description>
Emitted on the main thread when a new magnetometer sample is available.
</description>
</signal>
<signal name="update_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error or when the API is unavailable on the current platform.
</description>
</signal>
</signals>
<constants>
<constant name="XARBITRARY_Z_VERTICAL" value="1" enum="AttitudeReferenceFrame">
Z axis vertical, X axis aligned with an arbitrary direction in the horizontal plane.
</constant>
<constant name="XARBITRARY_CORRECTED_Z_VERTICAL" value="2" enum="AttitudeReferenceFrame">
Same as [constant XARBITRARY_Z_VERTICAL] but corrected for magnetometer drift.
</constant>
<constant name="XMAGNETIC_NORTH_Z_VERTICAL" value="4" enum="AttitudeReferenceFrame">
Z axis vertical, X axis pointing toward magnetic north. Requires the magnetometer.
</constant>
<constant name="XTRUE_NORTH_Z_VERTICAL" value="8" enum="AttitudeReferenceFrame">
Z axis vertical, X axis pointing toward true north. Requires the magnetometer and Location Services.
</constant>
</constants>
</class>

View file

@ -0,0 +1,89 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMPedometer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Step, distance, and floor counts from the system pedometer.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMPedometer[/code]. Supports both historical queries (already-recorded data from the system) and live updates.
[b]Requires the [code]NSMotionUsageDescription[/code] Info.plist key.[/b] On iOS the system records pedometer data continuously while motion permission is granted, so [method query_pedometer_data] can return data even from before your app launched.
[b]Platform availability:[/b] Real implementation on [b]iOS[/b]. On other platforms the [code]is_*_available[/code] static methods return [code]false[/code] and calls report unavailability through their callback or [signal pedometer_failed].
See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometer]CMPedometer reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<methods>
<method name="authorization_status" qualifiers="static">
<return type="int" />
<description>
Returns the current authorization status using Apple's [code skip-lint]CMAuthorizationStatus[/code] integer (0 = notDetermined, 1 = restricted, 2 = denied, 3 = authorized).
</description>
</method>
<method name="is_cadence_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report cadence.
</description>
</method>
<method name="is_distance_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can estimate walked/run distance.
</description>
</method>
<method name="is_floor_counting_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can count floors ascended/descended.
</description>
</method>
<method name="is_pace_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can report pace.
</description>
</method>
<method name="is_step_counting_available" qualifiers="static">
<return type="bool" />
<description>
Returns [code]true[/code] when the device can count steps. Step counting is the minimum requirement for any pedometer functionality.
</description>
</method>
<method name="query_pedometer_data">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<param index="1" name="toUnixTime" type="float" />
<param index="2" name="callback" type="Callable" />
<description>
Queries pedometer data recorded between two Unix-time stamps. [param callback] is invoked on the main thread with [code]callback(data: CMPedometerData, error: String)[/code]; [param data] is [code]null[/code] when [param error] is set.
</description>
</method>
<method name="start_updates">
<return type="void" />
<param index="0" name="fromUnixTime" type="float" />
<description>
Begins live pedometer updates accumulating from [param fromUnixTime] (Unix seconds). Subsequent samples arrive via [signal pedometer_updated]. Use [code]Time.get_unix_time_from_system()[/code] for "now".
</description>
</method>
<method name="stop_updates">
<return type="void" />
<description>
Stops live pedometer updates.
</description>
</method>
</methods>
<signals>
<signal name="pedometer_failed">
<param index="0" name="message" type="String" />
<description>
Emitted when CoreMotion reports an error on a live updates stream, or when the API is unavailable on the current platform.
</description>
</signal>
<signal name="pedometer_updated">
<param index="0" name="data" type="CMPedometerData" />
<description>
Emitted on the main thread with the latest cumulative pedometer reading since [method start_updates] was called.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,41 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="CMPedometerData" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Aggregated pedometer data covering a time window.
</brief_description>
<description>
Wraps Apple's [code skip-lint]CMPedometerData[/code]. Optional Apple values (distance, floor counts, pace, cadence) report [code]-1[/code] when the underlying capability is unavailable on the device. See Apple's [url=https://developer.apple.com/documentation/coremotion/cmpedometerdata]CMPedometerData reference[/url].
</description>
<tutorials>
<link title="CoreMotion Integration Guide">$DOCS_URL/coremotion_coremotionguide.html</link>
</tutorials>
<members>
<member name="average_active_pace" type="float" setter="set_average_active_pace" getter="get_average_active_pace">
Average pace across the window in seconds per meter, or [code]-1[/code] when unavailable.
</member>
<member name="current_cadence" type="float" setter="set_current_cadence" getter="get_current_cadence">
Instantaneous cadence in steps per second, or [code]-1[/code] when unavailable.
</member>
<member name="current_pace" type="float" setter="set_current_pace" getter="get_current_pace">
Instantaneous pace in seconds per meter, or [code]-1[/code] when unavailable.
</member>
<member name="distance" type="float" setter="set_distance" getter="get_distance">
Distance walked or run in meters, or [code]-1[/code] when distance estimation is unavailable.
</member>
<member name="end_date" type="float" setter="set_end_date" getter="get_end_date">
Unix-time end of the reporting window in seconds.
</member>
<member name="floors_ascended" type="int" setter="set_floors_ascended" getter="get_floors_ascended">
Approximate number of floors ascended, or [code]-1[/code] when floor counting is unavailable.
</member>
<member name="floors_descended" type="int" setter="set_floors_descended" getter="get_floors_descended">
Approximate number of floors descended, or [code]-1[/code] when floor counting is unavailable.
</member>
<member name="number_of_steps" type="int" setter="set_number_of_steps" getter="get_number_of_steps">
Step count across the reporting window.
</member>
<member name="start_date" type="float" setter="set_start_date" getter="get_start_date">
Unix-time start of the reporting window in seconds.
</member>
</members>
</class>

View file

@ -0,0 +1,271 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
V2gXiXYEKthoF+/jfExDDWF93LQ=
</data>
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
<data>
ruTKO3c2PbLquPxEPjNbxh5Lr0g=
</data>
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
<data>
MGhilTq5A7cDDIGlgTeepQ5YnEU=
</data>
<key>Resources/doc_classes/CMAltimeter.xml</key>
<data>
Bh8pRJUZzdX38IUZXYxk5xLAOcY=
</data>
<key>Resources/doc_classes/CMAltitudeData.xml</key>
<data>
XncwCLUZGKxizsT4d36ImyTAfhc=
</data>
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
<data>
7cMBuEKO+J33emlQzGAmUVY+37Y=
</data>
<key>Resources/doc_classes/CMGyroData.xml</key>
<data>
BUfMW1Q1pI+HZDTgn7S/kC4RZVY=
</data>
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
<data>
FnOPBnmglv3tUY2/KINv4MwAnUk=
</data>
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
<data>
yhze/CizXvHiuOZrD0iiFhB4mTU=
</data>
<key>Resources/doc_classes/CMMotionActivity.xml</key>
<data>
2BYkcgbtrEhnKtg4wo2BMIH3pxA=
</data>
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
<data>
i12o0lpE95M+o3cs+BhlMG6+PWA=
</data>
<key>Resources/doc_classes/CMMotionManager.xml</key>
<data>
y/QuZavNCtAQp/aFqQpPBsLrwpI=
</data>
<key>Resources/doc_classes/CMPedometer.xml</key>
<data>
jXC71Xh81YCrJcTyIk1ZfQ0zrzg=
</data>
<key>Resources/doc_classes/CMPedometerData.xml</key>
<data>
ragAg6xgX258zW943jka4RCMk7A=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
RA4KNEUT3BeYQxqO+ChSDfr68XFnxKBqktMIMvNJOKg=
</data>
</dict>
<key>Resources/doc_classes/CMAbsoluteAltitudeData.xml</key>
<dict>
<key>hash2</key>
<data>
RJbSliCU4rrzZ+Ds73KNMiV2V2hC3kF1vml1r3gVNrg=
</data>
</dict>
<key>Resources/doc_classes/CMAccelerometerData.xml</key>
<dict>
<key>hash2</key>
<data>
0ZTg5tlk5CebGDj0zvJBOHrNq7MFG5YM+TXXkMpOvXg=
</data>
</dict>
<key>Resources/doc_classes/CMAltimeter.xml</key>
<dict>
<key>hash2</key>
<data>
wjkXKlnfQlR3FpN4zMszvfAKegJddYZaXaJPcf+5jKo=
</data>
</dict>
<key>Resources/doc_classes/CMAltitudeData.xml</key>
<dict>
<key>hash2</key>
<data>
MrQBfd0SlC/fnCNRxWozDU2l1kuh6u4krHpUeyNpEDw=
</data>
</dict>
<key>Resources/doc_classes/CMDeviceMotion.xml</key>
<dict>
<key>hash2</key>
<data>
OGWPjyAOnFUgAUTrNZYuvDDj/QyxAzjJxvzzc9w72GI=
</data>
</dict>
<key>Resources/doc_classes/CMGyroData.xml</key>
<dict>
<key>hash2</key>
<data>
CauWse7MqNhA3wY+9eK7esh6Hj6s43RlEK4zO46KNkk=
</data>
</dict>
<key>Resources/doc_classes/CMHeadphoneMotionManager.xml</key>
<dict>
<key>hash2</key>
<data>
8255jnS84Sld2w3fVL5fTl4EOn4zIbMfQE5ArxPScpA=
</data>
</dict>
<key>Resources/doc_classes/CMMagnetometerData.xml</key>
<dict>
<key>hash2</key>
<data>
f1C6fe6RKz0BiJEeVQ6WQmwuLXyOpQple5yzW1VF59U=
</data>
</dict>
<key>Resources/doc_classes/CMMotionActivity.xml</key>
<dict>
<key>hash2</key>
<data>
mJtQxqJ5A/FzMfPR6briuOcUhX+TYmQt1tOdzncVFKM=
</data>
</dict>
<key>Resources/doc_classes/CMMotionActivityManager.xml</key>
<dict>
<key>hash2</key>
<data>
ptSLkSJQIHBOZfAzvavj63f4//29X9S9wqISFndxkcA=
</data>
</dict>
<key>Resources/doc_classes/CMMotionManager.xml</key>
<dict>
<key>hash2</key>
<data>
k3zhKAXBA0YNQnBIZnf6I1/ZKQWkCSqCan+n4wHqvgI=
</data>
</dict>
<key>Resources/doc_classes/CMPedometer.xml</key>
<dict>
<key>hash2</key>
<data>
wQfIsk9BMd0ZPyaPfjD2gKMPERVqxuZWa1jjKbCsqJA=
</data>
</dict>
<key>Resources/doc_classes/CMPedometerData.xml</key>
<dict>
<key>hash2</key>
<data>
pGA4w+NWkL1kO3DCw31Q8wFg+x5b2yL9hgKAWPOfEN8=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0001
7fc56270e7a70fa81a5935b72eacbe29
A

View file

@ -0,0 +1,18 @@
[configuration]
entry_symbol = "godot_apple_plugins_core_motion_start"
compatibility_minimum = 4.2
[libraries]
ios = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion.xcframework"
linux.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.linux.arm64.so"
linux.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.linux.x86_64.so"
macos.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion.framework"
macos.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/GodotApplePluginsCoreMotion_x64.framework"
windows.arm64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.windows.arm64.dll"
windows.x86_64 = "res://addons/GodotApplePluginsCoreMotion/bin/godot_apple_plugins_core_motion_stub.windows.x86_64.dll"
[dependencies]
ios = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime.xcframework": "" }
macos.arm64 = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime.framework": "" }
macos.x86_64 = { "res://addons/GodotApplePluginsRuntime/bin/SwiftGodotRuntime_x64.framework": "" }

View file

@ -0,0 +1 @@
uid://dhf6qp0offg0b

View file

@ -0,0 +1,8 @@
`SwiftGodotRuntime` payload for the split `GodotApplePlugins*` addons.
The split addon frameworks share the runtime from
`res://addons/GodotApplePluginsRuntime/bin`.
Keep this addon installed when using any split `GodotApplePlugins*` addon. The
`.gdextension` manifests declare it as a native dependency so Godot embeds it in
iOS exports and preloads it on macOS.

View file

@ -0,0 +1,5 @@
XSym
0026
e58c4cf10cc7c8ef7d7167ccb641aeb4
Versions/Current/Resources

View file

@ -0,0 +1,5 @@
XSym
0034
d9f38aed87acda872f71f5c9a9f1a0cf
Versions/Current/SwiftGodotRuntime

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>SwiftGodotRuntime</string>
<key>CFBundleIdentifier</key>
<string>swiftgodot.SwiftGodotRuntime</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>SwiftGodotRuntime</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
rs4XjH4BXNQu+5tpbh9iAcLOIeo=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
cQ/r/W+7G+K1jNBmCgdhR5xs5WLS21Xc3R3oTeLoeMs=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0001
7fc56270e7a70fa81a5935b72eacbe29
A

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>AvailableLibraries</key>
<array>
<dict>
<key>BinaryPath</key>
<string>SwiftGodotRuntime.framework/SwiftGodotRuntime</string>
<key>LibraryIdentifier</key>
<string>ios-arm64</string>
<key>LibraryPath</key>
<string>SwiftGodotRuntime.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
</dict>
<dict>
<key>BinaryPath</key>
<string>SwiftGodotRuntime.framework/SwiftGodotRuntime</string>
<key>LibraryIdentifier</key>
<string>ios-arm64_x86_64-simulator</string>
<key>LibraryPath</key>
<string>SwiftGodotRuntime.framework</string>
<key>SupportedArchitectures</key>
<array>
<string>arm64</string>
<string>x86_64</string>
</array>
<key>SupportedPlatform</key>
<string>ios</string>
<key>SupportedPlatformVariant</key>
<string>simulator</string>
</dict>
</array>
<key>CFBundlePackageType</key>
<string>XFWK</string>
<key>XCFrameworkFormatVersion</key>
<string>1.0</string>
</dict>
</plist>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
6WsXVY++re9rUkG4Ckg+FZPmp48=
</data>
</dict>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,101 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Info.plist</key>
<data>
SVuEmDA5fhoHjDX1OZ8EhAidy0s=
</data>
</dict>
<key>files2</key>
<dict/>
<key>rules</key>
<dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^.*</key>
<true/>
<key>^.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0026
e58c4cf10cc7c8ef7d7167ccb641aeb4
Versions/Current/Resources

View file

@ -0,0 +1,5 @@
XSym
0034
d9f38aed87acda872f71f5c9a9f1a0cf
Versions/Current/SwiftGodotRuntime

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>SwiftGodotRuntime</string>
<key>CFBundleIdentifier</key>
<string>swiftgodot.SwiftGodotRuntime</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>SwiftGodotRuntime</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,128 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>files</key>
<dict>
<key>Resources/Info.plist</key>
<data>
rs4XjH4BXNQu+5tpbh9iAcLOIeo=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
cQ/r/W+7G+K1jNBmCgdhR5xs5WLS21Xc3R3oTeLoeMs=
</data>
</dict>
</dict>
<key>rules</key>
<dict>
<key>^Resources/</key>
<true/>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^version.plist$</key>
<true/>
</dict>
<key>rules2</key>
<dict>
<key>.*\.dSYM($|/)</key>
<dict>
<key>weight</key>
<real>11</real>
</dict>
<key>^(.*/)?\.DS_Store$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>2000</real>
</dict>
<key>^(Frameworks|SharedFrameworks|PlugIns|Plug-ins|XPCServices|Helpers|MacOS|Library/(Automator|Spotlight|LoginItems))/</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^.*</key>
<true/>
<key>^Info\.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^PkgInfo$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^Resources/.*\.lproj/</key>
<dict>
<key>optional</key>
<true/>
<key>weight</key>
<real>1000</real>
</dict>
<key>^Resources/.*\.lproj/locversion.plist$</key>
<dict>
<key>omit</key>
<true/>
<key>weight</key>
<real>1100</real>
</dict>
<key>^Resources/Base\.lproj/</key>
<dict>
<key>weight</key>
<real>1010</real>
</dict>
<key>^[^/]+$</key>
<dict>
<key>nested</key>
<true/>
<key>weight</key>
<real>10</real>
</dict>
<key>^embedded\.provisionprofile$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
<key>^version\.plist$</key>
<dict>
<key>weight</key>
<real>20</real>
</dict>
</dict>
</dict>
</plist>

View file

@ -0,0 +1,5 @@
XSym
0001
7fc56270e7a70fa81a5935b72eacbe29
A

View file

@ -0,0 +1,5 @@
XSym
0042
8cedafd2db76746fc7627d87b40dbaa3
Versions/Current/GodotApplePluginsStoreKit

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>GodotApplePluginsStoreKit</string>
<key>CFBundleIdentifier</key>
<string>godotappleplugins.GodotApplePluginsStoreKit</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GodotApplePluginsStoreKit</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ProductView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A view that displays a single product from the App Store.
</brief_description>
<description>
This class represents a view that displays a single product from the App Store. It allows you to configure the product to display, the style of the view, and the icon to use.
</description>
<tutorials>
</tutorials>
<methods>
<method name="dismiss">
<return type="void" />
<description>
Dismisses the currently presented view.
</description>
</method>
<method name="present">
<return type="void" />
<description>
Presents the product view on top of the current view hierarchy.
</description>
</method>
</methods>
<members>
<member name="prefers_promotional_icon" type="bool" setter="set_prefers_promotional_icon" getter="get_prefers_promotional_icon" default="false">
Whether the view prefers to show the promotional icon for the product.
</member>
<member name="product_id" type="String" setter="set_product_id" getter="get_product_id" default="&quot;&quot;">
The product identifier of the product to display.
</member>
<member name="style" type="int" setter="set_style" getter="get_style" default="0">
The style of the product view. See [enum ViewStyle] for available options.
</member>
<member name="system_icon_name" type="String" setter="set_system_icon_name" getter="get_system_icon_name" default="&quot;cart&quot;">
The name of the system icon to use as a placeholder while the product icon loads.
</member>
</members>
<constants>
<constant name="AUTOMATIC" value="0" enum="ViewStyle">
The system automatically chooses the most appropriate style.
</constant>
<constant name="COMPACT" value="1" enum="ViewStyle">
A compact style that displays minimal information.
</constant>
<constant name="LARGE" value="2" enum="ViewStyle">
A large style that displays more detailed information.
</constant>
<constant name="REGULAR" value="3" enum="ViewStyle">
The regular style.
</constant>
</constants>
</class>

View file

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreKitManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Manages StoreKit interactions such as requesting products, purchasing, and restoring purchases.
</brief_description>
<description>
This class handles the core StoreKit functionality. It provides methods to fetch product information from the App Store, initiate purchases,
restore previous purchases and be notified of the current status of the purchase upon startup.
Once you instantiate this class, connect to the the [signal transaction_updated] signal to
get notification related to the status of your purchases - these are delivered to notify
your application of what products your user is entitled to at startup. If you are using
Apple's PurchaseIntent, you will also want to connect to the [signal purchase_intent].
The [signal transaction_updated] is only raised for verified transactions.
Apple also supports unverified transactions, those are posted to the [signal unverified_transaction_updated] signal
and in addition to the transaction they contains a status code from the [enum VerificationError].
After you have set up your signals, you are ready to receive those events.
In addition, when you call the [method purchase] or [method purchase_with_options] you will
want to setup a handler for the [signal purchase_completed] signal which is raised in
response to different events during the purchasing.
</description>
<tutorials>
</tutorials>
<methods>
<method name="fetch_current_entitlements">
<return type="void" />
<description>
The current entitlements sequence provides the most recent transaction for each product the customer is entitled to, use this
to refresh the list of features the user is entitled to.
Specifically, it includes:
* One transaction for each non-consumable In-App Purchase
* The latest transaction for each auto-renewable subscription whose Product.SubscriptionInfo.RenewalState is either subscribed or inGracePeriod
* The latest transaction for each non-renewing subscription, including those that have ended
* Products that have been refunded or revoked by the App Store are excluded from the current entitlements, as are consumable In-App Purchases. To retrieve transactions for unfinished consumables, use the unfinished or all transaction sequences instead.
</description>
</method>
<method name="purchase">
<return type="void" />
<param index="0" name="product" type="StoreProduct" />
<description>
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code]. This will raise the
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
purchase.
</description>
</method>
<method name="purchase_with_options">
<return type="void" />
<param index="0" name="product" type="StoreProduct" />
<param index="1" name="options" type="Array" />
<description>
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code], and allows you to provide additional purchase options.
This will raise the
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
purchase.
</description>
</method>
<method name="request_products">
<return type="void" />
<param index="0" name="productIds" type="PackedStringArray" />
<description>
Requests product information for a list of product identifiers, e.g. [code]request_products(PackedStringArray(["com.example.product1", "com.example.product2"]))[/code].
This method will raise the [signal products_request_completed] signal when the information is retrieved.
</description>
</method>
<method name="restore_purchases">
<return type="void" />
<description>
Restores previously purchased non-consumable products and auto-renewable subscriptions. This will raise the
[signal restore_completed] signal when the product purchased have been restored.
</description>
</method>
<method name="start">
<return type="void" />
<description>
</description>
</method>
</methods>
<signals>
<signal name="products_request_completed">
<param index="0" name="products" type="Array" />
<param index="1" name="status" type="int" />
<description>
Emitted when a product request completes.
[param products] is an Array of [StoreProduct]s (or nulls).
[param status] indicates success or failure.
</description>
</signal>
<signal name="purchase_completed">
<param index="0" name="transaction" type="StoreTransaction" />
<param index="1" name="status" type="int" />
<param index="2" name="error_message" type="String" />
<description>
Emitted when a purchase completes.
[param transaction] is the [StoreTransaction] on success.
[param status] indicates the result (OK, cancelled, invalid product, etc.).
[param error_message] contains error details if failed.
</description>
</signal>
<signal name="purchase_intent">
<param index="0" name="product" type="StoreProduct" />
<description>
</description>
</signal>
<signal name="restore_completed">
<param index="0" name="status" type="int" />
<param index="1" name="error_message" type="String" />
<description>
Emitted when the restore process completes. `arg1` is the [enum StoreKitStatus], and `arg2` is an error message if applicable.
</description>
</signal>
<signal name="supscription_update">
<param index="0" name="status" type="StoreSubscriptionInfoStatus" />
<description>
</description>
</signal>
<signal name="transaction_updated">
<param index="0" name="transaction" type="StoreTransaction" />
<description>
Emitted when a transaction is updated (e.g., a subscription renews or a purchase is approved externally). `transaction` is the updated [StoreTransaction].
You must call the finished method on the transaction once you have made sure that you have delivered the content to the user.
</description>
</signal>
<signal name="unverified_transaction_updated">
<param index="0" name="transaction" type="StoreTransaction" />
<param index="1" name="verification_error" type="int" />
<description>
</description>
</signal>
</signals>
<constants>
<constant name="OK" value="0" enum="StoreKitStatus">
The operation completed successfully.
</constant>
<constant name="INVALID_PRODUCT" value="1" enum="StoreKitStatus">
The product identifier is invalid.
</constant>
<constant name="CANCELLED" value="2" enum="StoreKitStatus">
The operation was cancelled.
</constant>
<constant name="UNVERIFIED_TRANSACTION" value="3" enum="StoreKitStatus">
The transaction could not be verified.
</constant>
<constant name="USER_CANCELLED" value="4" enum="StoreKitStatus">
The user cancelled the operation.
</constant>
<constant name="PURCHASE_PENDING" value="5" enum="StoreKitStatus">
The purchase is pending (e.g., waiting for parental approval).
</constant>
<constant name="UNKNOWN_STATUS" value="6" enum="StoreKitStatus">
An unknown status occurred.
</constant>
<constant name="REVOKED_CERTIFICATE" value="0" enum="VerificationError">
The certificate chain was parsable, but was invalid due to one or more revoked certificates.
</constant>
<constant name="INVALID_CERTIFICATE_CHAIN" value="1" enum="VerificationError">
The certificate chain was parsable, but it was invalid for signing this data.
</constant>
<constant name="INVALID_DEVICE_VERIFICATION" value="2" enum="VerificationError">
The device verification properties were invalid for this device.
</constant>
<constant name="INVALID_ENCODING" value="3" enum="VerificationError">
Th JWS header and any data included in it or it's certificate chain had an invalid encoding.
</constant>
<constant name="INVALID_SIGNATURE" value="4" enum="VerificationError">
The certificate chain was valid for signing this data, but the leaf's public key was invalid for the JWS signature.
</constant>
<constant name="MISSING_REQUIRED_PROPERTIES" value="5" enum="VerificationError">
Either the JWS header or any certificate in the chain was missing necessary properties for verification.
</constant>
<constant name="OTHER" value="6" enum="VerificationError">
A new error code was introduced that was not previously handled.
</constant>
</constants>
</class>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProduct" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a product available for purchase in the App Store.
</brief_description>
<description>
This class contains information about a product, such as its ID, display name, description, and price. It is returned by [method StoreKitManager.request_products].
</description>
<tutorials>
</tutorials>
<members>
<member name="description_value" type="String" setter="" getter="get_description_value" default="&quot;&quot;">
The description of the product, used for display in the UI.
</member>
<member name="display_name" type="String" setter="" getter="get_display_name" default="&quot;&quot;">
The localized display name of the product.
</member>
<member name="display_price" type="String" setter="" getter="get_display_price" default="&quot;&quot;">
The formatted price of the product, including the currency symbol (e.g. "$0.99").
</member>
<member name="is_family_shareable" type="bool" setter="" getter="get_is_family_shareable" default="false">
Indicates whether the product can be shared with family members.
</member>
<member name="json_representation" type="String" setter="" getter="get_json_representation" default="&quot;&quot;">
A JSON debug representation of the product.
</member>
<member name="price" type="float" setter="" getter="get_price" default="0.0">
The price of the product in the local currency.
</member>
<member name="product_id" type="String" setter="" getter="get_product_id" default="&quot;&quot;">
The unique identifier for the product.
</member>
</members>
</class>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductPaymentMode" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
The payment modes for subscription offers that apply to a transaction.
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="get_free_trial" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode representing a free trial.
</description>
</method>
<method name="get_pay_as_you_go" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode where the user pays as they go (e.g. monthly for 3 months).
</description>
</method>
<method name="pay_up_front" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode where the user pays the entire amount up front.
</description>
</method>
</methods>
<members>
<member name="localized_description" type="String" setter="" getter="get_localized_description" default="&quot;&quot;">
The localized description of the payment mode.
</member>
</members>
</class>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductPurchaseOption" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents an option that can be supplied when purchasing a [StoreProduct].
</brief_description>
<description>
You create instances of this class and you can pass those to [method StoreKitManager.purchase_with_options].
</description>
<tutorials>
</tutorials>
<methods>
<method name="app_account_token" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="stringUuidToken" type="String" />
<description>
Creates a purchase option with an app account token. This token should be a UUID string that associates the transaction with a user account on your service.
</description>
</method>
<method name="introductory_offer_elligibility" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="jws" type="String" />
<description>
Creates a purchase option with a specific introductory offer eligibility. This requires the signed JWS string from the App Store.
</description>
</method>
<method name="quantity" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="value" type="int" />
<description>
Creates a purchase option specifying the quantity of the product to purchase.
</description>
</method>
<method name="simulate_ask_to_buy_in_sandbox" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="enabled" type="bool" />
<description>
Creates a purchase option to simulate the "Ask to Buy" flow in the sandbox environment.
</description>
</method>
<method name="win_back_offer" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="offer" type="StoreProductSubscriptionOffer" />
<description>
Creates a purchase option for a win-back offer.
</description>
</method>
</methods>
</class>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductSubscriptionOffer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a subscription offer for a [StoreProduct].
</brief_description>
<description>
You configure these in AppStore Connect. See [url=https://developer.apple.com/documentation/storekit/product/subscriptionoffer]Apple's documentation[/url] for additional information
</description>
<tutorials>
</tutorials>
<constants>
<constant name="INTRODUCTORY" value="0" enum="OfferType">
An introductory offer for new subscribers.
</constant>
<constant name="PROMOTIONAL" value="1" enum="OfferType">
A promotional offer for existing or lapsed subscribers.
</constant>
<constant name="WIN_BACK" value="2" enum="OfferType">
A win-back offer for lapsed subscribers.
</constant>
<constant name="UNKNOWN" value="3" enum="OfferType">
An unknown offer type.
</constant>
</constants>
</class>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductSubscriptionPeriod" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Values that represent the duration of time between subscription renewals.
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<constants>
<constant name="DAY" value="0" enum="Unit">
A subscription period of one day.
</constant>
<constant name="MONTH" value="1" enum="Unit">
A subscription period of one month.
</constant>
<constant name="WEEK" value="2" enum="Unit">
A subscription period of one week.
</constant>
<constant name="YEAR" value="3" enum="Unit">
A subscription period of one year.
</constant>
</constants>
</class>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Provides subscription group metadata and status queries.
</brief_description>
<description>
This class wraps StoreKit subscription information and exposes the subscription group metadata for a product.
Use the status methods to query the current subscription status for a product, subscription group, or transaction ID.
</description>
<tutorials>
</tutorials>
<methods>
<method name="getStatus">
<return type="void" />
<param index="0" name="callback" type="Callable" />
<description>
Fetches the current status entries for this subscription. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
</description>
</method>
<method name="status_for_group_id">
<return type="void" />
<param index="0" name="group_id" type="String" />
<param index="1" name="status" type="Callable" />
<description>
Fetches status entries for the subscription group identifier. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
</description>
</method>
<method name="status_for_transaction">
<return type="void" />
<param index="0" name="transaction_id" type="int" />
<param index="1" name="status" type="Callable" />
<description>
Fetches the status entry for the provided transaction identifier. The callback receives a [code skip-lint]StoreSubscriptionInfoStatus[/code] when available, an empty [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] when no status is found, or a [code skip-lint]String[/code] describing the error.
On macOS, this requires macOS 15.4 or newer; earlier versions perform no action.
</description>
</method>
</methods>
<members>
<member name="group_display_name" type="String" setter="" getter="get_group_display_name" default="&quot;&quot;">
The localized display name of the subscription group. Returns an empty string if unavailable.
</member>
<member name="group_level" type="int" setter="" getter="get_group_level" default="-1">
The subscription group level used for upgrade/downgrade ranking. Returns [code]-1[/code] when unavailable.
</member>
<member name="subscription_group_id" type="String" setter="" getter="get_subscription_group_id" default="&quot;&quot;">
The subscription group identifier from App Store Connect. Returns an empty string if unavailable.
</member>
</members>
</class>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfoRenewalInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Contains verified renewal metadata for a subscription.
</brief_description>
<description>
This class wraps StoreKit renewal information and is only created from verified renewal data.
</description>
<tutorials>
</tutorials>
<members>
<member name="app_account_token" type="String" setter="" getter="get_app_account_token" default="&quot;&quot;">
The app account token used when purchasing, as a UUID string. Returns an empty string when not set.
</member>
<member name="app_transaction_id" type="String" setter="" getter="get_app_transaction_id" default="&quot;&quot;">
The app transaction identifier associated with the subscription. Returns an empty string when unavailable.
</member>
<member name="current_product_id" type="String" setter="" getter="get_current_product_id" default="&quot;&quot;">
The current product identifier for the subscription group.
</member>
<member name="original_transaction_id" type="int" setter="" getter="get_original_transaction_id" default="0">
The original transaction identifier for the subscription. Returns [code]0[/code] when unavailable.
</member>
</members>
</class>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfoStatus" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Describes the status of a subscription in a subscription group.
</brief_description>
<description>
This class wraps StoreKit's subscription status information, including renewal state, verified renewal info, and the latest verified transaction.
</description>
<tutorials>
</tutorials>
<members>
<member name="renewal_info" type="StoreSubscriptionInfoRenewalInfo" setter="" getter="get_renewal_info" default="null">
Verified renewal info for the subscription, or [code]null[/code] if it is missing or unverified.
</member>
<member name="state" type="int" setter="" getter="get_state" default="0">
The current renewal state. Use the [enum RenewalState] constants.
</member>
<member name="transaction" type="StoreTransaction" setter="" getter="get_transaction" default="null">
The latest verified transaction for the subscription, or [code]null[/code] if it is missing or unverified.
</member>
</members>
<constants>
<constant name="UNKNOWN" value="0" enum="RenewalState">
The renewal state is unknown or not available.
</constant>
<constant name="EXPIRED" value="1" enum="RenewalState">
The subscription has expired.
</constant>
<constant name="SUBSCRIBED" value="2" enum="RenewalState">
The subscription is currently active.
</constant>
<constant name="IN_BILLING_RETRY_PERIOD" value="3" enum="RenewalState">
The subscription is in the billing retry period after a failed renewal.
</constant>
<constant name="IN_GRACE_PERIOD" value="4" enum="RenewalState">
The subscription is in the grace period after a failed renewal.
</constant>
<constant name="REVOKED" value="5" enum="RenewalState">
The subscription was revoked by Apple.
</constant>
</constants>
</class>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreTransaction" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a successful purchase transaction.
</brief_description>
<description>
This class contains details about a purchase, such as the product ID, purchase date, and expiration date (for subscriptions).
When you receive a transaction update, you must call the [method finish] method on the transaction once you have made sure
that you have delivered the content to the user.
</description>
<tutorials>
</tutorials>
<methods>
<method name="finish">
<return type="void" />
<description>
The finish method notifies the App Store that the app has successfully provided the purchased content or
activated the purchased service, allowing the transaction to be completed.
Call [method finish] only after your app has delivered the content or enabled the service. If the purchase
includes on-demand resources, wait to finish the transaction until the download is complete or the
resources have otherwise been fully delivered.
</description>
</method>
</methods>
<members>
<member name="expiration_date" type="float" setter="" getter="get_expiration_date" default="0.0">
The date when the subscription expires, as a Unix timestamp. Returns 0 if not applicable.
</member>
<member name="is_upgraded" type="bool" setter="" getter="get_is_upgraded" default="false">
Whether this transaction is an upgrade of another transaction.
</member>
<member name="jws_representation" type="String" setter="" getter="get_jws_representation" default="&quot;&quot;">
The JWS (JSON Web Signature) representation of the signed transaction, suitable for server-side receipt validation (for example the App Store Server API or a third-party validator such as RevenueCat). Empty when the transaction was not constructed from a verification result.
</member>
<member name="original_id" type="int" setter="" getter="get_original_id" default="0">
The transaction identifier of the original purchase.
</member>
<member name="ownership_type" type="String" setter="" getter="get_ownership_type" default="&quot;unknown&quot;">
The type of ownership (e.g., "purchased", "familyShared", "unknown").
</member>
<member name="product_id" type="String" setter="" getter="get_product_id" default="&quot;&quot;">
The unique identifier of the purchased product.
</member>
<member name="purchase_date" type="float" setter="" getter="get_purchase_date" default="0.0">
The date when the purchase was made, as a Unix timestamp.
</member>
<member name="revocation_date" type="float" setter="" getter="get_revocation_date" default="0.0">
The date when the transaction was revoked, as a Unix timestamp. Returns 0 if not revoked.
</member>
<member name="transaction_id" type="int" setter="" getter="get_transaction_id" default="0">
The unique identifier of the transaction.
</member>
</members>
</class>

View file

@ -0,0 +1,30 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A view that displays a collection of products.
</brief_description>
<description>
This class represents a view that displays multiple products from the App Store. It is useful for creating a storefront or a list of available items.
</description>
<tutorials>
</tutorials>
<methods>
<method name="dismiss">
<return type="void" />
<description>
Dismisses the currently presented view.
</description>
</method>
<method name="present">
<return type="void" />
<description>
Presents the store view on top of the current view hierarchy.
</description>
</method>
</methods>
<members>
<member name="product_ids" type="PackedStringArray" setter="set_product_ids" getter="get_product_ids" default="PackedStringArray()">
A list of product identifiers to display in the store view.
</member>
</members>
</class>

View file

@ -0,0 +1,44 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="SubscriptionOfferView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A view for redeeming subscription offers.
</brief_description>
<description>
This class provides a view for users to redeem subscription offer codes. It handles the UI flow for entering and verifying offer codes.
</description>
<tutorials>
</tutorials>
<methods>
<method name="dismiss">
<return type="void" />
<description>
Dismisses the currently presented view.
</description>
</method>
<method name="present">
<return type="void" />
<param index="0" name="callback" type="Callable" />
<description>
Presents the offer code redemption view. note: The `callback` parameter is currently unused; use the [signal success] and [signal error] signals to handle the result.
</description>
</method>
</methods>
<members>
<member name="title" type="String" setter="set_title" getter="get_title" default="&quot;Redeeming Offer...&quot;">
The title displayed on the view.
</member>
</members>
<signals>
<signal name="error">
<param index="0" name="message" type="String" />
<description>
Emitted when the offer redemption fails. `arg1` contains the error message.
</description>
</signal>
<signal name="success">
<description>
Emitted when the offer redemption is successful.
</description>
</signal>
</signals>
</class>

View file

@ -0,0 +1,59 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="SubscriptionStoreView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A view for displaying subscription options.
</brief_description>
<description>
This class presents a standard StoreKit subscription view. It can be configured to show a specific subscription group or a list of specific products. The visual style of the controls is also customizable.
</description>
<tutorials>
</tutorials>
<methods>
<method name="dismiss">
<return type="void" />
<description>
Dismisses the currently presented view.
</description>
</method>
<method name="present">
<return type="void" />
<description>
Presents the subscription store view on top of the current view hierarchy.
</description>
</method>
</methods>
<members>
<member name="control_style" type="int" setter="set_control_style" getter="get_control_style" default="0">
The visual style of the subscription controls. See [enum ControlStyle] for options.
</member>
<member name="group_id" type="String" setter="set_group_id" getter="get_group_id" default="&quot;&quot;">
The identifier of the subscription group to display. If set, this takes precedence over [member product_i_ds].
</member>
<member name="product_i_ds" type="PackedStringArray" setter="set_product_i_ds" getter="get_product_i_ds" default="PackedStringArray()">
A list of specific product identifiers to display. Ignored if [member group_id] is set.
</member>
</members>
<constants>
<constant name="AUTOMATIC" value="0" enum="ControlStyle">
The system automatically chooses the most appropriate style.
</constant>
<constant name="PICKER" value="1" enum="ControlStyle">
A picker style.
</constant>
<constant name="BUTTONS" value="2" enum="ControlStyle">
A button-based style.
</constant>
<constant name="COMPACT_PICKER" value="3" enum="ControlStyle">
A compact picker style.
</constant>
<constant name="PROMINENT_PICKER" value="4" enum="ControlStyle">
A prominent picker style.
</constant>
<constant name="PAGED_PICKER" value="5" enum="ControlStyle">
A paged picker style.
</constant>
<constant name="PAGED_PROMINENT_PICKER" value="6" enum="ControlStyle">
A prominent paged picker style.
</constant>
</constants>
</class>

View file

@ -0,0 +1,46 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>BuildMachineOSBuild</key>
<string>25F71</string>
<key>CFBundleDevelopmentRegion</key>
<string>en</string>
<key>CFBundleExecutable</key>
<string>GodotApplePluginsStoreKit</string>
<key>CFBundleIdentifier</key>
<string>godotappleplugins.GodotApplePluginsStoreKit</string>
<key>CFBundleInfoDictionaryVersion</key>
<string>6.0</string>
<key>CFBundleName</key>
<string>GodotApplePluginsStoreKit</string>
<key>CFBundlePackageType</key>
<string>FMWK</string>
<key>CFBundleShortVersionString</key>
<string>1.0</string>
<key>CFBundleSupportedPlatforms</key>
<array>
<string>MacOSX</string>
</array>
<key>CFBundleVersion</key>
<string>1</string>
<key>DTCompiler</key>
<string>com.apple.compilers.llvm.clang.1_0</string>
<key>DTPlatformBuild</key>
<string>25E251</string>
<key>DTPlatformName</key>
<string>macosx</string>
<key>DTPlatformVersion</key>
<string>26.4</string>
<key>DTSDKBuild</key>
<string>25E251</string>
<key>DTSDKName</key>
<string>macosx26.4</string>
<key>DTXcode</key>
<string>2641</string>
<key>DTXcodeBuild</key>
<string>17E202</string>
<key>LSMinimumSystemVersion</key>
<string>14.0</string>
</dict>
</plist>

View file

@ -0,0 +1,53 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="ProductView" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
A view that displays a single product from the App Store.
</brief_description>
<description>
This class represents a view that displays a single product from the App Store. It allows you to configure the product to display, the style of the view, and the icon to use.
</description>
<tutorials>
</tutorials>
<methods>
<method name="dismiss">
<return type="void" />
<description>
Dismisses the currently presented view.
</description>
</method>
<method name="present">
<return type="void" />
<description>
Presents the product view on top of the current view hierarchy.
</description>
</method>
</methods>
<members>
<member name="prefers_promotional_icon" type="bool" setter="set_prefers_promotional_icon" getter="get_prefers_promotional_icon" default="false">
Whether the view prefers to show the promotional icon for the product.
</member>
<member name="product_id" type="String" setter="set_product_id" getter="get_product_id" default="&quot;&quot;">
The product identifier of the product to display.
</member>
<member name="style" type="int" setter="set_style" getter="get_style" default="0">
The style of the product view. See [enum ViewStyle] for available options.
</member>
<member name="system_icon_name" type="String" setter="set_system_icon_name" getter="get_system_icon_name" default="&quot;cart&quot;">
The name of the system icon to use as a placeholder while the product icon loads.
</member>
</members>
<constants>
<constant name="AUTOMATIC" value="0" enum="ViewStyle">
The system automatically chooses the most appropriate style.
</constant>
<constant name="COMPACT" value="1" enum="ViewStyle">
A compact style that displays minimal information.
</constant>
<constant name="LARGE" value="2" enum="ViewStyle">
A large style that displays more detailed information.
</constant>
<constant name="REGULAR" value="3" enum="ViewStyle">
The regular style.
</constant>
</constants>
</class>

View file

@ -0,0 +1,180 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreKitManager" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Manages StoreKit interactions such as requesting products, purchasing, and restoring purchases.
</brief_description>
<description>
This class handles the core StoreKit functionality. It provides methods to fetch product information from the App Store, initiate purchases,
restore previous purchases and be notified of the current status of the purchase upon startup.
Once you instantiate this class, connect to the the [signal transaction_updated] signal to
get notification related to the status of your purchases - these are delivered to notify
your application of what products your user is entitled to at startup. If you are using
Apple's PurchaseIntent, you will also want to connect to the [signal purchase_intent].
The [signal transaction_updated] is only raised for verified transactions.
Apple also supports unverified transactions, those are posted to the [signal unverified_transaction_updated] signal
and in addition to the transaction they contains a status code from the [enum VerificationError].
After you have set up your signals, you are ready to receive those events.
In addition, when you call the [method purchase] or [method purchase_with_options] you will
want to setup a handler for the [signal purchase_completed] signal which is raised in
response to different events during the purchasing.
</description>
<tutorials>
</tutorials>
<methods>
<method name="fetch_current_entitlements">
<return type="void" />
<description>
The current entitlements sequence provides the most recent transaction for each product the customer is entitled to, use this
to refresh the list of features the user is entitled to.
Specifically, it includes:
* One transaction for each non-consumable In-App Purchase
* The latest transaction for each auto-renewable subscription whose Product.SubscriptionInfo.RenewalState is either subscribed or inGracePeriod
* The latest transaction for each non-renewing subscription, including those that have ended
* Products that have been refunded or revoked by the App Store are excluded from the current entitlements, as are consumable In-App Purchases. To retrieve transactions for unfinished consumables, use the unfinished or all transaction sequences instead.
</description>
</method>
<method name="purchase">
<return type="void" />
<param index="0" name="product" type="StoreProduct" />
<description>
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code]. This will raise the
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
purchase.
</description>
</method>
<method name="purchase_with_options">
<return type="void" />
<param index="0" name="product" type="StoreProduct" />
<param index="1" name="options" type="Array" />
<description>
Initiates the purchase of a specific product, e.g. [code]purchase(product)[/code], and allows you to provide additional purchase options.
This will raise the
[signal purchase_completed] signal, either to indicate that an error took place, or the status of the
purchase.
</description>
</method>
<method name="request_products">
<return type="void" />
<param index="0" name="productIds" type="PackedStringArray" />
<description>
Requests product information for a list of product identifiers, e.g. [code]request_products(PackedStringArray(["com.example.product1", "com.example.product2"]))[/code].
This method will raise the [signal products_request_completed] signal when the information is retrieved.
</description>
</method>
<method name="restore_purchases">
<return type="void" />
<description>
Restores previously purchased non-consumable products and auto-renewable subscriptions. This will raise the
[signal restore_completed] signal when the product purchased have been restored.
</description>
</method>
<method name="start">
<return type="void" />
<description>
</description>
</method>
</methods>
<signals>
<signal name="products_request_completed">
<param index="0" name="products" type="Array" />
<param index="1" name="status" type="int" />
<description>
Emitted when a product request completes.
[param products] is an Array of [StoreProduct]s (or nulls).
[param status] indicates success or failure.
</description>
</signal>
<signal name="purchase_completed">
<param index="0" name="transaction" type="StoreTransaction" />
<param index="1" name="status" type="int" />
<param index="2" name="error_message" type="String" />
<description>
Emitted when a purchase completes.
[param transaction] is the [StoreTransaction] on success.
[param status] indicates the result (OK, cancelled, invalid product, etc.).
[param error_message] contains error details if failed.
</description>
</signal>
<signal name="purchase_intent">
<param index="0" name="product" type="StoreProduct" />
<description>
</description>
</signal>
<signal name="restore_completed">
<param index="0" name="status" type="int" />
<param index="1" name="error_message" type="String" />
<description>
Emitted when the restore process completes. `arg1` is the [enum StoreKitStatus], and `arg2` is an error message if applicable.
</description>
</signal>
<signal name="supscription_update">
<param index="0" name="status" type="StoreSubscriptionInfoStatus" />
<description>
</description>
</signal>
<signal name="transaction_updated">
<param index="0" name="transaction" type="StoreTransaction" />
<description>
Emitted when a transaction is updated (e.g., a subscription renews or a purchase is approved externally). `transaction` is the updated [StoreTransaction].
You must call the finished method on the transaction once you have made sure that you have delivered the content to the user.
</description>
</signal>
<signal name="unverified_transaction_updated">
<param index="0" name="transaction" type="StoreTransaction" />
<param index="1" name="verification_error" type="int" />
<description>
</description>
</signal>
</signals>
<constants>
<constant name="OK" value="0" enum="StoreKitStatus">
The operation completed successfully.
</constant>
<constant name="INVALID_PRODUCT" value="1" enum="StoreKitStatus">
The product identifier is invalid.
</constant>
<constant name="CANCELLED" value="2" enum="StoreKitStatus">
The operation was cancelled.
</constant>
<constant name="UNVERIFIED_TRANSACTION" value="3" enum="StoreKitStatus">
The transaction could not be verified.
</constant>
<constant name="USER_CANCELLED" value="4" enum="StoreKitStatus">
The user cancelled the operation.
</constant>
<constant name="PURCHASE_PENDING" value="5" enum="StoreKitStatus">
The purchase is pending (e.g., waiting for parental approval).
</constant>
<constant name="UNKNOWN_STATUS" value="6" enum="StoreKitStatus">
An unknown status occurred.
</constant>
<constant name="REVOKED_CERTIFICATE" value="0" enum="VerificationError">
The certificate chain was parsable, but was invalid due to one or more revoked certificates.
</constant>
<constant name="INVALID_CERTIFICATE_CHAIN" value="1" enum="VerificationError">
The certificate chain was parsable, but it was invalid for signing this data.
</constant>
<constant name="INVALID_DEVICE_VERIFICATION" value="2" enum="VerificationError">
The device verification properties were invalid for this device.
</constant>
<constant name="INVALID_ENCODING" value="3" enum="VerificationError">
Th JWS header and any data included in it or it's certificate chain had an invalid encoding.
</constant>
<constant name="INVALID_SIGNATURE" value="4" enum="VerificationError">
The certificate chain was valid for signing this data, but the leaf's public key was invalid for the JWS signature.
</constant>
<constant name="MISSING_REQUIRED_PROPERTIES" value="5" enum="VerificationError">
Either the JWS header or any certificate in the chain was missing necessary properties for verification.
</constant>
<constant name="OTHER" value="6" enum="VerificationError">
A new error code was introduced that was not previously handled.
</constant>
</constants>
</class>

View file

@ -0,0 +1,34 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProduct" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a product available for purchase in the App Store.
</brief_description>
<description>
This class contains information about a product, such as its ID, display name, description, and price. It is returned by [method StoreKitManager.request_products].
</description>
<tutorials>
</tutorials>
<members>
<member name="description_value" type="String" setter="" getter="get_description_value" default="&quot;&quot;">
The description of the product, used for display in the UI.
</member>
<member name="display_name" type="String" setter="" getter="get_display_name" default="&quot;&quot;">
The localized display name of the product.
</member>
<member name="display_price" type="String" setter="" getter="get_display_price" default="&quot;&quot;">
The formatted price of the product, including the currency symbol (e.g. "$0.99").
</member>
<member name="is_family_shareable" type="bool" setter="" getter="get_is_family_shareable" default="false">
Indicates whether the product can be shared with family members.
</member>
<member name="json_representation" type="String" setter="" getter="get_json_representation" default="&quot;&quot;">
A JSON debug representation of the product.
</member>
<member name="price" type="float" setter="" getter="get_price" default="0.0">
The price of the product in the local currency.
</member>
<member name="product_id" type="String" setter="" getter="get_product_id" default="&quot;&quot;">
The unique identifier for the product.
</member>
</members>
</class>

View file

@ -0,0 +1,35 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductPaymentMode" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
The payment modes for subscription offers that apply to a transaction.
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<methods>
<method name="get_free_trial" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode representing a free trial.
</description>
</method>
<method name="get_pay_as_you_go" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode where the user pays as they go (e.g. monthly for 3 months).
</description>
</method>
<method name="pay_up_front" qualifiers="static">
<return type="StoreProductPaymentMode" />
<description>
Returns a payment mode where the user pays the entire amount up front.
</description>
</method>
</methods>
<members>
<member name="localized_description" type="String" setter="" getter="get_localized_description" default="&quot;&quot;">
The localized description of the payment mode.
</member>
</members>
</class>

View file

@ -0,0 +1,48 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductPurchaseOption" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents an option that can be supplied when purchasing a [StoreProduct].
</brief_description>
<description>
You create instances of this class and you can pass those to [method StoreKitManager.purchase_with_options].
</description>
<tutorials>
</tutorials>
<methods>
<method name="app_account_token" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="stringUuidToken" type="String" />
<description>
Creates a purchase option with an app account token. This token should be a UUID string that associates the transaction with a user account on your service.
</description>
</method>
<method name="introductory_offer_elligibility" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="jws" type="String" />
<description>
Creates a purchase option with a specific introductory offer eligibility. This requires the signed JWS string from the App Store.
</description>
</method>
<method name="quantity" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="value" type="int" />
<description>
Creates a purchase option specifying the quantity of the product to purchase.
</description>
</method>
<method name="simulate_ask_to_buy_in_sandbox" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="enabled" type="bool" />
<description>
Creates a purchase option to simulate the "Ask to Buy" flow in the sandbox environment.
</description>
</method>
<method name="win_back_offer" qualifiers="static">
<return type="StoreProductPurchaseOption" />
<param index="0" name="offer" type="StoreProductSubscriptionOffer" />
<description>
Creates a purchase option for a win-back offer.
</description>
</method>
</methods>
</class>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductSubscriptionOffer" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a subscription offer for a [StoreProduct].
</brief_description>
<description>
You configure these in AppStore Connect. See [url=https://developer.apple.com/documentation/storekit/product/subscriptionoffer]Apple's documentation[/url] for additional information
</description>
<tutorials>
</tutorials>
<constants>
<constant name="INTRODUCTORY" value="0" enum="OfferType">
An introductory offer for new subscribers.
</constant>
<constant name="PROMOTIONAL" value="1" enum="OfferType">
A promotional offer for existing or lapsed subscribers.
</constant>
<constant name="WIN_BACK" value="2" enum="OfferType">
A win-back offer for lapsed subscribers.
</constant>
<constant name="UNKNOWN" value="3" enum="OfferType">
An unknown offer type.
</constant>
</constants>
</class>

View file

@ -0,0 +1,24 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreProductSubscriptionPeriod" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Values that represent the duration of time between subscription renewals.
</brief_description>
<description>
</description>
<tutorials>
</tutorials>
<constants>
<constant name="DAY" value="0" enum="Unit">
A subscription period of one day.
</constant>
<constant name="MONTH" value="1" enum="Unit">
A subscription period of one month.
</constant>
<constant name="WEEK" value="2" enum="Unit">
A subscription period of one week.
</constant>
<constant name="YEAR" value="3" enum="Unit">
A subscription period of one year.
</constant>
</constants>
</class>

View file

@ -0,0 +1,49 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Provides subscription group metadata and status queries.
</brief_description>
<description>
This class wraps StoreKit subscription information and exposes the subscription group metadata for a product.
Use the status methods to query the current subscription status for a product, subscription group, or transaction ID.
</description>
<tutorials>
</tutorials>
<methods>
<method name="getStatus">
<return type="void" />
<param index="0" name="callback" type="Callable" />
<description>
Fetches the current status entries for this subscription. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
</description>
</method>
<method name="status_for_group_id">
<return type="void" />
<param index="0" name="group_id" type="String" />
<param index="1" name="status" type="Callable" />
<description>
Fetches status entries for the subscription group identifier. The callback receives a [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] on success, or a [code skip-lint]String[/code] describing the error.
</description>
</method>
<method name="status_for_transaction">
<return type="void" />
<param index="0" name="transaction_id" type="int" />
<param index="1" name="status" type="Callable" />
<description>
Fetches the status entry for the provided transaction identifier. The callback receives a [code skip-lint]StoreSubscriptionInfoStatus[/code] when available, an empty [code skip-lint]Array[StoreSubscriptionInfoStatus][/code] when no status is found, or a [code skip-lint]String[/code] describing the error.
On macOS, this requires macOS 15.4 or newer; earlier versions perform no action.
</description>
</method>
</methods>
<members>
<member name="group_display_name" type="String" setter="" getter="get_group_display_name" default="&quot;&quot;">
The localized display name of the subscription group. Returns an empty string if unavailable.
</member>
<member name="group_level" type="int" setter="" getter="get_group_level" default="-1">
The subscription group level used for upgrade/downgrade ranking. Returns [code]-1[/code] when unavailable.
</member>
<member name="subscription_group_id" type="String" setter="" getter="get_subscription_group_id" default="&quot;&quot;">
The subscription group identifier from App Store Connect. Returns an empty string if unavailable.
</member>
</members>
</class>

View file

@ -0,0 +1,25 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfoRenewalInfo" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Contains verified renewal metadata for a subscription.
</brief_description>
<description>
This class wraps StoreKit renewal information and is only created from verified renewal data.
</description>
<tutorials>
</tutorials>
<members>
<member name="app_account_token" type="String" setter="" getter="get_app_account_token" default="&quot;&quot;">
The app account token used when purchasing, as a UUID string. Returns an empty string when not set.
</member>
<member name="app_transaction_id" type="String" setter="" getter="get_app_transaction_id" default="&quot;&quot;">
The app transaction identifier associated with the subscription. Returns an empty string when unavailable.
</member>
<member name="current_product_id" type="String" setter="" getter="get_current_product_id" default="&quot;&quot;">
The current product identifier for the subscription group.
</member>
<member name="original_transaction_id" type="int" setter="" getter="get_original_transaction_id" default="0">
The original transaction identifier for the subscription. Returns [code]0[/code] when unavailable.
</member>
</members>
</class>

View file

@ -0,0 +1,42 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreSubscriptionInfoStatus" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Describes the status of a subscription in a subscription group.
</brief_description>
<description>
This class wraps StoreKit's subscription status information, including renewal state, verified renewal info, and the latest verified transaction.
</description>
<tutorials>
</tutorials>
<members>
<member name="renewal_info" type="StoreSubscriptionInfoRenewalInfo" setter="" getter="get_renewal_info" default="null">
Verified renewal info for the subscription, or [code]null[/code] if it is missing or unverified.
</member>
<member name="state" type="int" setter="" getter="get_state" default="0">
The current renewal state. Use the [enum RenewalState] constants.
</member>
<member name="transaction" type="StoreTransaction" setter="" getter="get_transaction" default="null">
The latest verified transaction for the subscription, or [code]null[/code] if it is missing or unverified.
</member>
</members>
<constants>
<constant name="UNKNOWN" value="0" enum="RenewalState">
The renewal state is unknown or not available.
</constant>
<constant name="EXPIRED" value="1" enum="RenewalState">
The subscription has expired.
</constant>
<constant name="SUBSCRIBED" value="2" enum="RenewalState">
The subscription is currently active.
</constant>
<constant name="IN_BILLING_RETRY_PERIOD" value="3" enum="RenewalState">
The subscription is in the billing retry period after a failed renewal.
</constant>
<constant name="IN_GRACE_PERIOD" value="4" enum="RenewalState">
The subscription is in the grace period after a failed renewal.
</constant>
<constant name="REVOKED" value="5" enum="RenewalState">
The subscription was revoked by Apple.
</constant>
</constants>
</class>

View file

@ -0,0 +1,56 @@
<?xml version="1.0" encoding="UTF-8" ?>
<class name="StoreTransaction" inherits="RefCounted" api_type="extension" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="https://raw.githubusercontent.com/godotengine/godot/master/doc/class.xsd">
<brief_description>
Represents a successful purchase transaction.
</brief_description>
<description>
This class contains details about a purchase, such as the product ID, purchase date, and expiration date (for subscriptions).
When you receive a transaction update, you must call the [method finish] method on the transaction once you have made sure
that you have delivered the content to the user.
</description>
<tutorials>
</tutorials>
<methods>
<method name="finish">
<return type="void" />
<description>
The finish method notifies the App Store that the app has successfully provided the purchased content or
activated the purchased service, allowing the transaction to be completed.
Call [method finish] only after your app has delivered the content or enabled the service. If the purchase
includes on-demand resources, wait to finish the transaction until the download is complete or the
resources have otherwise been fully delivered.
</description>
</method>
</methods>
<members>
<member name="expiration_date" type="float" setter="" getter="get_expiration_date" default="0.0">
The date when the subscription expires, as a Unix timestamp. Returns 0 if not applicable.
</member>
<member name="is_upgraded" type="bool" setter="" getter="get_is_upgraded" default="false">
Whether this transaction is an upgrade of another transaction.
</member>
<member name="jws_representation" type="String" setter="" getter="get_jws_representation" default="&quot;&quot;">
The JWS (JSON Web Signature) representation of the signed transaction, suitable for server-side receipt validation (for example the App Store Server API or a third-party validator such as RevenueCat). Empty when the transaction was not constructed from a verification result.
</member>
<member name="original_id" type="int" setter="" getter="get_original_id" default="0">
The transaction identifier of the original purchase.
</member>
<member name="ownership_type" type="String" setter="" getter="get_ownership_type" default="&quot;unknown&quot;">
The type of ownership (e.g., "purchased", "familyShared", "unknown").
</member>
<member name="product_id" type="String" setter="" getter="get_product_id" default="&quot;&quot;">
The unique identifier of the purchased product.
</member>
<member name="purchase_date" type="float" setter="" getter="get_purchase_date" default="0.0">
The date when the purchase was made, as a Unix timestamp.
</member>
<member name="revocation_date" type="float" setter="" getter="get_revocation_date" default="0.0">
The date when the transaction was revoked, as a Unix timestamp. Returns 0 if not revoked.
</member>
<member name="transaction_id" type="int" setter="" getter="get_transaction_id" default="0">
The unique identifier of the transaction.
</member>
</members>
</class>

Some files were not shown because too many files have changed in this diff Show more