İ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,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,282 @@
<?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>
a55hY0Y80uiEzgMh34WPQ7T7f9g=
</data>
<key>Resources/doc_classes/ProductView.xml</key>
<data>
3M/6BEREzR8r51+r7zHfNSE5b/Y=
</data>
<key>Resources/doc_classes/StoreKitManager.xml</key>
<data>
bt53Uy4kbGGF9s1fmSNPavGPnpU=
</data>
<key>Resources/doc_classes/StoreProduct.xml</key>
<data>
mwGN2YBdj37NeXDdKBGxIhu6F1Q=
</data>
<key>Resources/doc_classes/StoreProductPaymentMode.xml</key>
<data>
NWY7MWtIM/XlQIVtJfnEJDg5O00=
</data>
<key>Resources/doc_classes/StoreProductPurchaseOption.xml</key>
<data>
169Dx+ppSwA69d/5JTXMtg9Wu+4=
</data>
<key>Resources/doc_classes/StoreProductSubscriptionOffer.xml</key>
<data>
Z9WImiN8BvWcEXY3kS78lNuIHTE=
</data>
<key>Resources/doc_classes/StoreProductSubscriptionPeriod.xml</key>
<data>
2GZh4pGspXZ6DTfBgsIvKk+rsKg=
</data>
<key>Resources/doc_classes/StoreSubscriptionInfo.xml</key>
<data>
iTUGmpMJSPm1WxCSZ1FxHoTlvg4=
</data>
<key>Resources/doc_classes/StoreSubscriptionInfoRenewalInfo.xml</key>
<data>
sidHqdcp1EqWz8BWDhmiFp+4jSw=
</data>
<key>Resources/doc_classes/StoreSubscriptionInfoStatus.xml</key>
<data>
fFnkPu1YM23Oje4l/Bq14YYe5fQ=
</data>
<key>Resources/doc_classes/StoreTransaction.xml</key>
<data>
SEF4DEE7yg/NvV73/uaKoEafHJk=
</data>
<key>Resources/doc_classes/StoreView.xml</key>
<data>
2dsu8CTBVlVg6KNiS/MuzBEJg7U=
</data>
<key>Resources/doc_classes/SubscriptionOfferView.xml</key>
<data>
b5WaOfu8qhnx5i23j63JbHk/kzE=
</data>
<key>Resources/doc_classes/SubscriptionStoreView.xml</key>
<data>
EoSh+YB8fT3oUQSc5LfSUmBXoLM=
</data>
</dict>
<key>files2</key>
<dict>
<key>Resources/Info.plist</key>
<dict>
<key>hash2</key>
<data>
/6j/2zcQNRzfP1sg63em4jRqPqhGSiGOpqfgQCzJeNM=
</data>
</dict>
<key>Resources/doc_classes/ProductView.xml</key>
<dict>
<key>hash2</key>
<data>
7Ddtn8pSBD+TNGRdC25Il10b5UZYYxU0grcp/IyZdlw=
</data>
</dict>
<key>Resources/doc_classes/StoreKitManager.xml</key>
<dict>
<key>hash2</key>
<data>
dZ6oFf761fvgzfkz45zY9Henbznpq3PFMvr1r9WLMFE=
</data>
</dict>
<key>Resources/doc_classes/StoreProduct.xml</key>
<dict>
<key>hash2</key>
<data>
TvmIFLQO8Mh1OadfUGo3MSE97h/rtQdoWXiRXkM3jQA=
</data>
</dict>
<key>Resources/doc_classes/StoreProductPaymentMode.xml</key>
<dict>
<key>hash2</key>
<data>
TDqPjis6qFjJQzKCo4FJJd4fFcIJ2cIviwErHcoJ5XQ=
</data>
</dict>
<key>Resources/doc_classes/StoreProductPurchaseOption.xml</key>
<dict>
<key>hash2</key>
<data>
O8BFgmvMVyqR/0rjOusvZv2FE56kO5585gj3KqoZnWU=
</data>
</dict>
<key>Resources/doc_classes/StoreProductSubscriptionOffer.xml</key>
<dict>
<key>hash2</key>
<data>
C98FhDedLmFFe9gcOjar1labrLrbH9X6mFbQ8te3NBQ=
</data>
</dict>
<key>Resources/doc_classes/StoreProductSubscriptionPeriod.xml</key>
<dict>
<key>hash2</key>
<data>
pDzhbm+IN3xUQ/jVbRKkxnjIOr7NeP3Q81f3T3Lp9LI=
</data>
</dict>
<key>Resources/doc_classes/StoreSubscriptionInfo.xml</key>
<dict>
<key>hash2</key>
<data>
ghTYbH7kRMCHMadaJk9UZYfr3rMPvTnDDOIjFyhnzxY=
</data>
</dict>
<key>Resources/doc_classes/StoreSubscriptionInfoRenewalInfo.xml</key>
<dict>
<key>hash2</key>
<data>
YeI62LA698nuy18k3V+6ZfW2En4hMvG6XHx6xhD8RE8=
</data>
</dict>
<key>Resources/doc_classes/StoreSubscriptionInfoStatus.xml</key>
<dict>
<key>hash2</key>
<data>
dVeYxCgV/Tuzu+G9T0DS++vSUDMcbeSvNQQTjDWc0lM=
</data>
</dict>
<key>Resources/doc_classes/StoreTransaction.xml</key>
<dict>
<key>hash2</key>
<data>
2IYnBgeGbRHqCP0R1G/IT3yiEsagfvmyGTW83kecb4w=
</data>
</dict>
<key>Resources/doc_classes/StoreView.xml</key>
<dict>
<key>hash2</key>
<data>
JYaszhGFbW9nynHNO/cQYwigipk/kwgHgviYdcgJ7xY=
</data>
</dict>
<key>Resources/doc_classes/SubscriptionOfferView.xml</key>
<dict>
<key>hash2</key>
<data>
2XxnmOysDfBXDux9ZtJcLkV2Gx0SRlrvHm05mgVChVk=
</data>
</dict>
<key>Resources/doc_classes/SubscriptionStoreView.xml</key>
<dict>
<key>hash2</key>
<data>
JEaDbQQ6WRP2sZn2J5jtbOYsyJyWQwRO+FXUYmoTGVA=
</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