diff --git a/.gitignore b/.gitignore index 6b815a8..0b3c7ce 100644 --- a/.gitignore +++ b/.gitignore @@ -11,6 +11,8 @@ *.userprefs # Build results +.idea/ +src/.idea/ [Dd]ebug/ [Dd]ebugPublic/ [Rr]elease/ diff --git a/README.md b/README.md index 1480cf5..6787d93 100644 --- a/README.md +++ b/README.md @@ -1,10 +1,11 @@ -## In-App Billing Plugin for .NET MAUI, Xamarin, and Windows +## In-App Billing Plugin for .NET MAUI and Windows -A simple In-App Purchase plugin for .NET MAUI, Xamarin, and Windows to query item information, purchase items, restore items, and more. +A simple In-App Purchase plugin for .NET MAUI and Windows to query item information, purchase items, restore items, and more. Subscriptions are supported on iOS, Android, and Mac. Windows/UWP/WinUI 3 - does not support subscriptions at this time. ## Important Version Information +* v8 now supports .NET 8+ .NET MAUI and Windows Apps. * v7 now supports .NET 6+, .NET MAUI, UWP, and Xamarin/Xamarin.Forms projects * v7 is built against Android Billing Library 6.0 * See migration guides below @@ -19,13 +20,11 @@ Get started by reading through the [In-App Billing Plugin documentation](https:/ |Platform|Version| | ------------------- | :------------------: | -|Xamarin.iOS & iOS for .NET|10+| -|Xamarin.Mac, macOS for .NET, macCatlyst for .NET |All| -|Xamarin.TVOS, tvOS for .NET|10.13.2| -|Xamarin.Android, Android for .NET|21+| -|Windows 10 UWP|10+| +|iOS for .NET|10+| +|macCatlyst for .NET |All| +|tvOS for .NET|10.13.2| +|Android for .NET|21+| |Windows App SDK (WinUI 3) |10+| -|Xamarin.Forms|All| |.NET MAUI|All| ### Created By: [@JamesMontemagno](http://github.com/jamesmontemagno) diff --git a/docs/CheckAndRestorePurchases.md b/docs/CheckAndRestorePurchases.md index ad20ec3..c1217fb 100644 --- a/docs/CheckAndRestorePurchases.md +++ b/docs/CheckAndRestorePurchases.md @@ -6,8 +6,9 @@ When users get a new device or re-install your application it is best practice t /// Get all current purchases for a specified product type. /// /// Type of product +/// Cancel the request /// The current purchases -Task> GetPurchasesAsync(ItemType itemType); +Task> GetPurchasesAsync(ItemType itemType, CancellationToken cancellationToken = default); ``` When you make a call to restore a purchase it will prompt for the user to sign in if they haven't yet, so take that into consideration. diff --git a/docs/PurchaseConsumable.md b/docs/PurchaseConsumable.md index 7bbf337..69fc96b 100644 --- a/docs/PurchaseConsumable.md +++ b/docs/PurchaseConsumable.md @@ -23,9 +23,10 @@ Consumables are unique and work a bit different on each platform and the `Consum /// Type of product being requested /// Specifies an optional obfuscated string that is uniquely associated with the user's account in your app. /// Specifies an optional obfuscated string that is uniquely associated with the user's profile in your app. +/// Cancel the request. /// Purchase details /// If an error occurs during processing -Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null); +Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null, CancellationToken cancellationToken = default); ``` #### obfuscatedAccountId & obfuscatedProfileId @@ -44,9 +45,10 @@ Task PurchaseAsync(string productId, ItemType itemType, st /// /// Id or Sku of product /// Original Purchase Token +/// Cancel the request /// If consumed successful /// If an error occurs during processing -Task ConsumePurchaseAsync(string productId, string transactionIdentifier); +Task ConsumePurchaseAsync(string productId, string transactionIdentifier, CancellationToken cancellationToken = default); ``` diff --git a/docs/PurchaseNonConsumable.md b/docs/PurchaseNonConsumable.md index e190880..56086a7 100644 --- a/docs/PurchaseNonConsumable.md +++ b/docs/PurchaseNonConsumable.md @@ -17,9 +17,10 @@ All purchases go through the `PurchaseAsync` method and you must always `Connect /// Type of product being requested /// Specifies an optional obfuscated string that is uniquely associated with the user's account in your app. /// Specifies an optional obfuscated string that is uniquely associated with the user's profile in your app. +/// Cancel the request /// Purchase details /// If an error occurs during processing -Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null); +Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null, CancellationToken cancellationToken = default); ``` On Android you must call `FinalizePurchaseAsync` within 3 days when a purchase is validated. Please read the [Android documentation on Pending Transactions](https://developer.android.com/google/play/billing/integrate#pending) for more information. @@ -52,7 +53,7 @@ public async Task PurchaseItem(string productId) else if(purchase.State == PurchaseState.Purchased) { // only need to finalize if on Android unless you turn off auto finalize on iOS - var ack = await CrossInAppBilling.Current.FinalizePurchaseAsync(purchase.TransactionIdentifier); + var ack = await CrossInAppBilling.Current.FinalizePurchaseAsync([purchase.TransactionIdentifier]); // Handle if acknowledge was successful or not } diff --git a/docs/PurchaseSubscription.md b/docs/PurchaseSubscription.md index d613685..443e569 100644 --- a/docs/PurchaseSubscription.md +++ b/docs/PurchaseSubscription.md @@ -17,9 +17,10 @@ All purchases go through the `PurchaseAsync` method and you must always `Connect /// Type of product being requested /// Specifies an optional obfuscated string that is uniquely associated with the user's account in your app. /// Specifies an optional obfuscated string that is uniquely associated with the user's profile in your app. +/// Cancel the request. /// Purchase details /// If an error occurs during processing -Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null); +Task PurchaseAsync(string productId, ItemType itemType, string obfuscatedAccountId = null, string obfuscatedProfileId = null, CancellationToken cancellationToken = default); ``` On Android you must call `FinalizePurchaseAsync` within 3 days when a purchase is validated. Please read the [Android documentation on Pending Transactions](https://developer.android.com/google/play/billing/integrate#pending) for more information. @@ -52,7 +53,7 @@ public async Task PurchaseItem(string productId, string payload) else if(purchase.State == PurchaseState.Purchased) { //only needed on android unless you turn off auto finalize - var ack = await CrossInAppBilling.Current.FinalizePurchaseAsync(purchase.TransactionIdentifier); + var ack = await CrossInAppBilling.Current.FinalizePurchaseAsync([purchase.TransactionIdentifier]); // Handle if acknowledge was successful or not } diff --git a/docs/SecuringPurchases.md b/docs/SecuringPurchases.md index 2a67d93..c739d9e 100644 --- a/docs/SecuringPurchases.md +++ b/docs/SecuringPurchases.md @@ -3,7 +3,7 @@ Each platform handles security of In-App Purchases a bit different. To handle this whenever you make a purchase you should use the date from the purchase to validate on your backend. ## Recommended Reading: -* [Xamarin.iOS Securing Purchases Documentation](https://developer.xamarin.com/guides/ios/platform_features/in-app_purchasing/transactions_and_verification/#Securing_Purchases) +* [iOS Securing Purchases Documentation](https://developer.xamarin.com/guides/ios/platform_features/in-app_purchasing/transactions_and_verification/#Securing_Purchases) * [Google Play service Security and Design](https://developer.android.com/google/play/billing/billing_best_practices.html) diff --git a/nuget/readme.txt b/nuget/readme.txt index 5ceb5f5..5ba63f6 100644 --- a/nuget/readme.txt +++ b/nuget/readme.txt @@ -1,28 +1 @@ -In-App Billing Plugin for .NET MAUI, Xamarin, & Windows - -Version 7.0+ - Major Android updates -1.) You must compile and target against Android 12 or higher -2.) Android: Now using Android Billing v6 -3.) Android: Major changes to Android product details, subscriptions, and more - -Please read through: https://developer.android.com/google/play/billing/migrate-gpblv6 - - -Version 5.0+ has significant updates! -1.) We have removed IInAppBillingVerifyPurchase from all methods. All data required to handle this yourself is returned. -2.) iOS ReceiptURL data is avaialble via ReceiptData -3.) We are now using Android Billing version 4 -4.) Major breaking chanages across the API including AcknowledgePurchaseAsync being changed to FinalizePurchaseAsync -5.) Tons of new APIs when you get information about products - -Please read documentation for all changes at https://github.com/jamesmontemagno/InAppBillingPlugin - -Version 4.0 has significant updates. - -1.) You must compile and target against Android 10 or higher -2.) On Android you must handle pending transactions and call `FinalizePurchaseAsync` when done -3.) On Android HandleActivityResult has been removed. -4.) We now use Xamarin.Essentials and setup is required per docs. - -Find the latest setup guides, documentation, and testing instructions at: -https://github.com/jamesmontemagno/InAppBillingPlugin +This is until our pull request from compusport/plugin.inappbilling is merged into the main repository. diff --git a/src/InAppBilling.sln b/src/InAppBilling.sln index a401433..340fe9c 100644 --- a/src/InAppBilling.sln +++ b/src/InAppBilling.sln @@ -29,464 +29,29 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Docs", "Docs", "{6A41C44D-4 EndProject Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tests", "Tests", "{5124C265-C6EF-4415-9497-0EF227E43095}" EndProject -Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InAppBillingTests", "InAppBillingTests\InAppBillingTests\InAppBillingTests.csproj", "{2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InAppBillingTests.Android", "InAppBillingTests\InAppBillingTests.Android\InAppBillingTests.Android.csproj", "{4C7DF981-3F54-40EB-82AD-7D54C443FCCC}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InAppBillingTests.iOS", "InAppBillingTests\InAppBillingTests.iOS\InAppBillingTests.iOS.csproj", "{096CE273-B696-42E5-8770-E06FBE982235}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InAppBillingTests.Mac", "InAppBillingTests\InAppBillingTests.Mac\InAppBillingTests.Mac.csproj", "{04BF1C8C-EACA-466D-80D8-C2B9012A37F1}" -EndProject -Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "InAppBillingTests.UWP", "InAppBillingTests\InAppBillingTests.UWP\InAppBillingTests.UWP.csproj", "{EBD6A824-A56E-4F33-B352-B4E72D711B00}" -EndProject Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "InAppBillingMauiTest", "InAppBillingTests\InAppBillingMauiTest\InAppBillingMauiTest.csproj", "{BAE4393A-4E17-4E60-BF53-E916505F44E1}" EndProject Global GlobalSection(SolutionConfigurationPlatforms) = preSolution - Ad-Hoc|Any CPU = Ad-Hoc|Any CPU - Ad-Hoc|ARM = Ad-Hoc|ARM - Ad-Hoc|iPhone = Ad-Hoc|iPhone - Ad-Hoc|iPhoneSimulator = Ad-Hoc|iPhoneSimulator - Ad-Hoc|x64 = Ad-Hoc|x64 - Ad-Hoc|x86 = Ad-Hoc|x86 - AppStore|Any CPU = AppStore|Any CPU - AppStore|ARM = AppStore|ARM - AppStore|iPhone = AppStore|iPhone - AppStore|iPhoneSimulator = AppStore|iPhoneSimulator - AppStore|x64 = AppStore|x64 - AppStore|x86 = AppStore|x86 Debug|Any CPU = Debug|Any CPU - Debug|ARM = Debug|ARM - Debug|iPhone = Debug|iPhone - Debug|iPhoneSimulator = Debug|iPhoneSimulator - Debug|x64 = Debug|x64 - Debug|x86 = Debug|x86 Release|Any CPU = Release|Any CPU - Release|ARM = Release|ARM - Release|iPhone = Release|iPhone - Release|iPhoneSimulator = Release|iPhoneSimulator - Release|x64 = Release|x64 - Release|x86 = Release|x86 EndGlobalSection GlobalSection(ProjectConfigurationPlatforms) = postSolution - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|Any CPU.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|Any CPU.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|ARM.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|ARM.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|iPhone.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|iPhone.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|iPhoneSimulator.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|x64.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|x64.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|x86.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Ad-Hoc|x86.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|Any CPU.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|Any CPU.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|ARM.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|ARM.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|iPhone.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|iPhone.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|iPhoneSimulator.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|x64.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|x64.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|x86.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.AppStore|x86.Build.0 = Release|Any CPU {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|Any CPU.Build.0 = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|ARM.ActiveCfg = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|ARM.Build.0 = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|iPhone.Build.0 = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|x64.ActiveCfg = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|x64.Build.0 = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|x86.ActiveCfg = Debug|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Debug|x86.Build.0 = Debug|Any CPU {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|Any CPU.ActiveCfg = Release|Any CPU {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|Any CPU.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|ARM.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|ARM.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|iPhone.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|iPhone.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|x64.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|x64.Build.0 = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|x86.ActiveCfg = Release|Any CPU - {C570E25E-259F-4D4C-88F0-B2982815192D}.Release|x86.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|ARM.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|iPhone.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|x64.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|x64.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|x86.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.AppStore|x86.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|Any CPU.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|ARM.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|ARM.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|iPhone.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|x64.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|x64.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|x86.ActiveCfg = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Debug|x86.Build.0 = Debug|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|Any CPU.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|Any CPU.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|ARM.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|ARM.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|iPhone.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|iPhone.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|x64.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|x64.Build.0 = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|x86.ActiveCfg = Release|Any CPU - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6}.Release|x86.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|ARM.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|ARM.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhone.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhone.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x64.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x64.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x64.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x86.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x86.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.AppStore|x86.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|Any CPU.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|ARM.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|ARM.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|ARM.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhone.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x64.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x64.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x64.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x86.ActiveCfg = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x86.Build.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Debug|x86.Deploy.0 = Debug|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|Any CPU.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|Any CPU.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|Any CPU.Deploy.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|ARM.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|ARM.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|ARM.Deploy.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhone.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhone.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhone.Deploy.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x64.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x64.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x64.Deploy.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x86.ActiveCfg = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x86.Build.0 = Release|Any CPU - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC}.Release|x86.Deploy.0 = Release|Any CPU - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|Any CPU.ActiveCfg = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|Any CPU.Build.0 = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|ARM.ActiveCfg = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|ARM.Build.0 = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|iPhone.ActiveCfg = Ad-Hoc|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|iPhone.Build.0 = Ad-Hoc|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|iPhoneSimulator.Build.0 = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|x64.ActiveCfg = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|x64.Build.0 = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|x86.ActiveCfg = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Ad-Hoc|x86.Build.0 = Ad-Hoc|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|Any CPU.ActiveCfg = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|Any CPU.Build.0 = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|ARM.ActiveCfg = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|ARM.Build.0 = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|iPhone.ActiveCfg = AppStore|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|iPhone.Build.0 = AppStore|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|iPhoneSimulator.ActiveCfg = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|iPhoneSimulator.Build.0 = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|x64.ActiveCfg = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|x64.Build.0 = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|x86.ActiveCfg = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.AppStore|x86.Build.0 = AppStore|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|Any CPU.ActiveCfg = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|Any CPU.Build.0 = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|ARM.ActiveCfg = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|ARM.Build.0 = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|iPhone.ActiveCfg = Debug|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|iPhone.Build.0 = Debug|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|iPhoneSimulator.ActiveCfg = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|iPhoneSimulator.Build.0 = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|x64.ActiveCfg = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|x64.Build.0 = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|x86.ActiveCfg = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Debug|x86.Build.0 = Debug|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|Any CPU.ActiveCfg = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|Any CPU.Build.0 = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|ARM.ActiveCfg = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|ARM.Build.0 = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|iPhone.ActiveCfg = Release|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Release|iPhone.Build.0 = Release|iPhone - {096CE273-B696-42E5-8770-E06FBE982235}.Release|iPhoneSimulator.ActiveCfg = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|iPhoneSimulator.Build.0 = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|x64.ActiveCfg = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|x64.Build.0 = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|x86.ActiveCfg = Release|iPhoneSimulator - {096CE273-B696-42E5-8770-E06FBE982235}.Release|x86.Build.0 = Release|iPhoneSimulator - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|ARM.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|iPhone.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|x64.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|x64.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|x86.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.AppStore|x86.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|Any CPU.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|ARM.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|ARM.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|iPhone.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|x64.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|x64.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|x86.ActiveCfg = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Debug|x86.Build.0 = Debug|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|Any CPU.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|Any CPU.Build.0 = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|ARM.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|ARM.Build.0 = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|iPhone.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|iPhone.Build.0 = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|x64.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|x64.Build.0 = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|x86.ActiveCfg = Release|Any CPU - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1}.Release|x86.Build.0 = Release|Any CPU - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|Any CPU.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|Any CPU.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|Any CPU.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|ARM.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|ARM.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|ARM.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhone.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhone.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhone.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x64.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x64.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x64.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x86.ActiveCfg = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x86.Build.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Ad-Hoc|x86.Deploy.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|Any CPU.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|Any CPU.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|Any CPU.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|ARM.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|ARM.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|ARM.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhone.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhone.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhone.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhoneSimulator.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhoneSimulator.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|iPhoneSimulator.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x64.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x64.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x64.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x86.ActiveCfg = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x86.Build.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.AppStore|x86.Deploy.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|Any CPU.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|Any CPU.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|Any CPU.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|ARM.ActiveCfg = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|ARM.Build.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|ARM.Deploy.0 = Debug|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhone.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhone.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhone.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhoneSimulator.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhoneSimulator.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|iPhoneSimulator.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x64.ActiveCfg = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x64.Build.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x64.Deploy.0 = Debug|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x86.ActiveCfg = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x86.Build.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Debug|x86.Deploy.0 = Debug|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|Any CPU.ActiveCfg = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|Any CPU.Build.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|Any CPU.Deploy.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|ARM.ActiveCfg = Release|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|ARM.Build.0 = Release|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|ARM.Deploy.0 = Release|ARM - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhone.ActiveCfg = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhone.Build.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhone.Deploy.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhoneSimulator.ActiveCfg = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhoneSimulator.Build.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|iPhoneSimulator.Deploy.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x64.ActiveCfg = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x64.Build.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x64.Deploy.0 = Release|x64 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x86.ActiveCfg = Release|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x86.Build.0 = Release|x86 - {EBD6A824-A56E-4F33-B352-B4E72D711B00}.Release|x86.Deploy.0 = Release|x86 - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|Any CPU.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|Any CPU.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|Any CPU.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|ARM.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|ARM.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|ARM.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhone.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhone.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhone.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhoneSimulator.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x64.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x64.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x64.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x86.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x86.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Ad-Hoc|x86.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|Any CPU.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|Any CPU.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|Any CPU.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|ARM.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|ARM.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|ARM.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhone.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhone.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhone.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhoneSimulator.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x64.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x64.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x64.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x86.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x86.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.AppStore|x86.Deploy.0 = Debug|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|Any CPU.Build.0 = Debug|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|Any CPU.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|ARM.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|ARM.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|ARM.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhone.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhone.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhone.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhoneSimulator.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhoneSimulator.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|iPhoneSimulator.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x64.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x64.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x64.Deploy.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x86.ActiveCfg = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x86.Build.0 = Debug|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Debug|x86.Deploy.0 = Debug|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|Any CPU.ActiveCfg = Release|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|Any CPU.Build.0 = Release|Any CPU {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|Any CPU.Deploy.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|ARM.ActiveCfg = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|ARM.Build.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|ARM.Deploy.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhone.ActiveCfg = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhone.Build.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhone.Deploy.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhoneSimulator.ActiveCfg = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhoneSimulator.Build.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|iPhoneSimulator.Deploy.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x64.ActiveCfg = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x64.Build.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x64.Deploy.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x86.ActiveCfg = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x86.Build.0 = Release|Any CPU - {BAE4393A-4E17-4E60-BF53-E916505F44E1}.Release|x86.Deploy.0 = Release|Any CPU EndGlobalSection GlobalSection(SolutionProperties) = preSolution HideSolutionNode = FALSE EndGlobalSection GlobalSection(NestedProjects) = preSolution - {2E99E9AA-B6D4-4F7F-8D8B-F922D854F7C6} = {5124C265-C6EF-4415-9497-0EF227E43095} - {4C7DF981-3F54-40EB-82AD-7D54C443FCCC} = {5124C265-C6EF-4415-9497-0EF227E43095} - {096CE273-B696-42E5-8770-E06FBE982235} = {5124C265-C6EF-4415-9497-0EF227E43095} - {04BF1C8C-EACA-466D-80D8-C2B9012A37F1} = {5124C265-C6EF-4415-9497-0EF227E43095} - {EBD6A824-A56E-4F33-B352-B4E72D711B00} = {5124C265-C6EF-4415-9497-0EF227E43095} {BAE4393A-4E17-4E60-BF53-E916505F44E1} = {5124C265-C6EF-4415-9497-0EF227E43095} EndGlobalSection GlobalSection(ExtensibilityGlobals) = postSolution diff --git a/src/InAppBillingTests/InAppBillingMauiTest/AppShell.xaml b/src/InAppBillingTests/InAppBillingMauiTest/AppShell.xaml index eafe6a5..f6bf581 100644 --- a/src/InAppBillingTests/InAppBillingMauiTest/AppShell.xaml +++ b/src/InAppBillingTests/InAppBillingMauiTest/AppShell.xaml @@ -3,7 +3,7 @@ x:Class="InAppBillingMauiTest.AppShell" xmlns="http://schemas.microsoft.com/dotnet/2021/maui" xmlns:x="http://schemas.microsoft.com/winfx/2009/xaml" - xmlns:local="clr-namespace:InAppBillingMauiTest" + xmlns:local="clr-namespace:InAppBillingTests" Shell.FlyoutBehavior="Disabled"> - - net6.0-android;net6.0-ios;net6.0-maccatalyst - $(TargetFrameworks);net6.0-windows10.0.19041 - Exe - InAppBillingMauiTest - true - true - enable - - - InAppBillingMauiTest - - - com.companyname.inappbillingmauitest - 8C7E9190-68F2-4D7E-BF0E-C1E8A260B4D5 - - - 1.0 - 1 - - 14.2 - 14.0 - 21.0 - 10.0.17763.0 - 10.0.17763.0 - - - - - - - - - - - - - - - - - - - - - - + + net8.0-android;net8.0-ios + $(TargetFrameworks);net8.0-windows10.0.19041 + Exe + InAppBillingMauiTest + true + true + enable + + + InAppBillingMauiTest + + + com.companyname.inappbillingmauitest + 8C7E9190-68F2-4D7E-BF0E-C1E8A260B4D5 + + + 1.0 + 1 + + 14.2 + 14.0 + 21.0 + 10.0.17763.0 + 10.0.17763.0 + + + + + + + + + + + + + + + + + + + + + + - - - - - diff --git a/src/InAppBillingTests/InAppBillingMauiTest/MainPage.xaml b/src/InAppBillingTests/InAppBillingMauiTest/MainPage.xaml index 40ae8a9..92d5a3e 100644 --- a/src/InAppBillingTests/InAppBillingMauiTest/MainPage.xaml +++ b/src/InAppBillingTests/InAppBillingMauiTest/MainPage.xaml @@ -1,45 +1,23 @@  + xmlns:iap="clr-namespace:Plugin.InAppBilling;assembly=Plugin.InAppBilling" + x:Class="InAppBillingTests.MainPage"> - - - -