Search Unity

Apple iOS Build With Unity IAP Not Launching On iPad

Discussion in 'Unity IAP' started by iMancha, May 19, 2020.

  1. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    Apple iOS build with Unity IAP not launching On iPad but works on iPhone and Android device, I am able to test and complete the IAP pruchase in sandbox environment using TestFlight so I know that IAP is in fact working, but why crashing app on iPad.

    On iPad it just shows grey screen, doesn't get to show Splash screen - below are two logs, one from iPad and other from iPhone - both running iOS 13.4.1:

    IPAD:


    Code (CSharp):
    1. 2020-05-19 15:46:08.748972+0200 appname[2109:2718451] UnityIAP UnityEarlyTransactionObserver: Created
    2. 2020-05-19 15:46:08.750669+0200 appname[2109:2718451] UnityIAP UnityEarlyTransactionObserver: Registered for lifecycle events
    3. CrashReporter: initialized
    4. 2020-05-19 15:46:08.936750+0200 appname[2109:2718451] Built from '2019.3/release' branch, Version '2019.3.13f1 (d4ddf0d95db9)', Build type 'Release', Scripting Backend 'il2cpp'
    5. -> applicationDidFinishLaunching()
    6. Loading player data from /private/var/containers/Bundle/Application/5515C0CA-3136-43DF-A40E-D6461A6A3AD2/appname.app/Data/data.unity3d
    7. 2020-05-19 15:46:09.155324+0200 appname[2109:2718451] UnityIAP UnityEarlyTransactionObserver: Added to the payment queue
    8. 2020-05-19 15:46:09.298880+0200 appname[2109:2718649]  - <Google>[I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
    9. 2020-05-19 15:46:09.299119+0200 appname[2109:2718649]  - <Google>[I-ACS025031] AdMob App ID changed. Original, new: (nil), ca-app-pub-4633443251598509~1342104001
    10. 2020-05-19 15:46:09.299352+0200 appname[2109:2718649]  - <Google>[I-ACS023007] Analytics v.60500000 started
    11. 2020-05-19 15:46:09.299567+0200 appname[2109:2718649]  - <Google>[I-ACS023008] To enable debug logging set the following application argument: -APMAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
    12. 2020-05-19 15:46:09.306637+0200 appname[2109:2718617]  - <Google>[I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
    13. 2020-05-19 15:46:09.316585+0200 appname[2109:2718650]  - <Google>[I-ACS023012] Analytics collection enabled
    IPHONE:

    Code (CSharp):
    1. 2020-05-19 15:42:05.913056+0200 appname[11769:6272854] UnityIAP UnityEarlyTransactionObserver: Created
    2. 2020-05-19 15:42:05.914403+0200 appname[11769:6272854] UnityIAP UnityEarlyTransactionObserver: Registered for lifecycle events
    3. CrashReporter: initialized
    4. 2020-05-19 15:42:06.120761+0200 appname[11769:6272854] Built from '2019.3/release' branch, Version '2019.3.13f1 (d4ddf0d95db9)', Build type 'Release', Scripting Backend 'il2cpp'
    5. -> applicationDidFinishLaunching()
    6. Loading player data from /private/var/containers/Bundle/Application/92555FDF-261B-4ADA-A3FD-F417F7CFC912/appname.app/Data/data.unity3d
    7. 2020-05-19 15:42:06.376299+0200 appname[11769:6272854] UnityIAP UnityEarlyTransactionObserver: Added to the payment queue
    8. -> applicationDidBecomeActive()
    9. [Subsystems] Discovering subsystems at path /private/var/containers/Bundle/Application/92555FDF-261B-4ADA-A3FD-F417F7CFC912/appname.app/Data/UnitySubsystems
    10. GfxDevice: creating device client; threaded=1
    11. Initializing Metal device caps: Apple A12 GPU
    12. Initialize engine version: 2019.3.13f1 (d4ddf0d95db9)
    13. Shader 'Universal Render Pipeline/Particles/Lit': fallback shader 'Universal Render Pipeline/Particles/SimpleLit' not found
    14. CrashReporter: No pending report exists at /var/mobile/Containers/Data/Application/1FC9D438-3244-424B-8678-D0082D93AEFA/Library/Caches/CrashReports/crash-pending.plcrash
    15. 2020-05-19 15:42:07.172931+0200 appname[11769:6273010]  - <Google>[I-ACS025031] AdMob App ID changed. Original, new: (nil), ca-app-pub-4633443251598509~1342104001
    16. 2020-05-19 15:42:07.324569+0200 appname[11769:6273051]  - <Google>[I-ACS023007] Analytics v.60500000 started
    17. 2020-05-19 15:42:07.325461+0200 appname[11769:6273051]  - <Google>[I-ACS023008] To enable debug logging set the following application argument: -APMAnalyticsDebugEnabled (see http://goo.gl/RfcP7r)
    18. 2020-05-19 15:42:07.326566+0200 appname[11769:6273051]  - <Google>[I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
    19. 2020-05-19 15:42:07.357784+0200 appname[11769:6272854] Unbalanced calls to begin/end appearance transitions for <SplashScreenController: 0x1071398c0>.
    20. 2020-05-19 15:42:07.407452+0200 appname[11769:6273010]  - <Google>[I-ACS800023] No pending snapshot to activate. SDK name: app_measurement
    21. 2020-05-19 15:42:07.522208+0200 appname[11769:6273054]  - <Google>[I-ACS023012] Analytics collection enabled
    22. UnloadTime: 0.465167 ms
    23. 2020-05-19 15:42:09.231017+0200 appname[11769:6272854] IOSNative::LogLevel -> info:true  warning:true error:true
    24. UnityIAP Version: 1.23.1
    25. UnityEngine.Purchasing.StandardPurchasingModule:Instance(AppStore)
    26. IAPManager:InitializePurchasing()
    27. IAPManager:Start()
    28.  
    29. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    30.  
    31. 2020-05-19 15:42:09.310803+0200 appname[11769:6272854] <Google> To get test ads on this device, set: GADMobileAds.sharedInstance.requestConfiguration.testDeviceIdentifiers = @[ @"9e38cbf31068eaa0c999be65629ef646" ];
    32. 2020-05-19 15:42:09.521749+0200 appname[11769:6272854] WF: === Starting WebFilter logging for process appname
    33. 2020-05-19 15:42:09.521779+0200 appname[11769:6272854] WF: _userSettingsForUser mobile: {
    34.     filterBlacklist =     (
    35.     );
    36.     filterWhitelist =     (
    37.     );
    38.     restrictWeb = 1;
    39.     useContentFilter = 0;
    40.     useContentFilterOverrides = 0;
    41.     whitelistEnabled = 0;
    42. }
    43. 2020-05-19 15:42:09.521801+0200 appname[11769:6272854] WF: _WebFilterIsActive returning: NO
    44. Using configuration builder objects
    45. UnityEngine.Purchasing.StoreCatalogImpl:handleCachedCatalog(Action`1)
    46. System.Action`1:Invoke(T)
    47. UnityEngine.Purchasing.<Process>d__4:MoveNext()
    48. UnityEngine.SetupCoroutine:InvokeMoveNext(IEnumerator, IntPtr)
    49.  
    50. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    51.  
    52. 2020-05-19 15:42:09.913796+0200 appname[11769:6272854] UnityIAP: Requesting 1 products
    53. 2020-05-19 15:42:09.915216+0200 appname[11769:6272854] UnityIAP: Requesting product data...
    54. 2020-05-19 15:42:10.874868+0200 appname[11769:6272854] WF: _userSettingsForUser mobile: {
    55.     filterBlacklist =     (
    56.     );
    57.     filterWhitelist =     (
    58.     );
    59.     restrictWeb = 1;
    60.     useContentFilter = 0;
    61.     useContentFilterOverrides = 0;
    62.     whitelistEnabled = 0;
    63. }
    64. 2020-05-19 15:42:10.874914+0200 appname[11769:6272854] WF: _WebFilterIsActive returning: NO
    65. Ad loaded here
    66. SA.CrossPlatform.Advertisement.UM_GoogleBaseAds:HandleAdLoaded(Object, EventArgs)
    67. System.EventHandler`1:Invoke(Object, TEventArgs)
    68. System.EventHandler`1:Invoke(Object, TEventArgs)
    69.  
    70. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    71.  
    72. 2020-05-19 15:42:13.437550+0200 appname[11769:6273014] UnityIAP: Received 1 products
    73.                     productID: RemoveAds
    74.                 transactionID: 1000000666855896
    75. originalTransactionIdentifier: 1000000666855896
    76.                  purchaseDate: 2020/05/19 11:38:42 AM
    77.          originalPurchaseDate: 2020/05/19 11:38:42 AM
    78.    subscriptionExpirationDate: 0001/01/01 12:00:00 AM
    79. OnInitialized: PASS
    80. IAPManager:OnInitialized(IStoreController, IExtensionProvider)
    81. UnityEngine.Purchasing.PurchasingManager:CheckForInitialization()
    82. UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
    83. UnityEngine.Purchasing.AppleStoreImpl:OnProductsRetrieved(String)
    84. System.Action:Invoke()
    85. UnityEngine.Purchasing.Extension.UnityUtil:Update()
    86.  
    87. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    88.  
    89. Already recorded transaction 1000000666855896
    90. UnityEngine.Purchasing.PurchasingManager:ProcessPurchaseIfNew(Product)
    91. UnityEngine.Purchasing.PurchasingManager:OnProductsRetrieved(List`1)
    92. UnityEngine.Purchasing.AppleStoreImpl:OnProductsRetrieved(String)
    93. System.Action:Invoke()
    94. UnityEngine.Purchasing.Extension.UnityUtil:Update()
    95.  
    96. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    97.  
    98. 2020-05-19 15:42:13.462283+0200 appname[11769:6272854] UnityIAP: Transaction 1000000666855896 not pending, nothing to finish here
    99. UnityIAP Promo: Clearing promo product metadata
    100. UnityEngine.Purchasing.Promo:ProvideProductsToAds(HashSet`1)
    101. UnityEngine.Purchasing.AppleStoreImpl:OnProductsRetrieved(String)
    102. System.Action:Invoke()
    103. UnityEngine.Purchasing.Extension.UnityUtil:Update()
    104.  
    105. (Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
    106.  
    107. 2020-05-19 15:42:13.462725+0200 appname[11769:6272854] UnityIAP: Add transaction observer
    108. 2020-05-19 15:42:13.462785+0200 appname[11769:6272854] UnityIAP UnityEarlyTransactionObserver: Request to initiate queued payments
    109. 2020-05-19 15:42:18.805761+0200 appname[11769:6273130] [] tcp_input [C5.1:3] flags=[R.] seq=2465578792, ack=3682670058, win=268 state=FIN_WAIT_2 rcv_nxt=2465578792, snd_una=3682670058
     
  2. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
  3. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    @JeffDUnity3D That's the thing, it doesn't log any info after that as seen in the iPhone build which works. It works fine when IAP is disabled.

    Here's where the IAP service is initialised:

    Code (CSharp):
    1. using System;
    2. using System.Collections.Generic;
    3. using UnityEngine;
    4. using UnityEngine.Purchasing;
    5.  
    6. // Deriving the Purchaser class from IStoreListener enables it to receive messages from Unity Purchasing.
    7. public class IAPManager : MonoBehaviour, IStoreListener
    8. {
    9.     public static IAPManager instance;
    10.  
    11.     Launcher launcher;
    12.  
    13.     private static IStoreController m_StoreController;          // The Unity Purchasing system.
    14.     private static IExtensionProvider m_StoreExtensionProvider; // The store-specific Purchasing subsystems.
    15.  
    16.     public string removeADS = "RemoveAds";
    17.  
    18.     void Awake()
    19.     {
    20.         if (instance != null && instance != this)
    21.             Destroy(gameObject);
    22.         else
    23.             instance = this;
    24.     }
    25.  
    26.     void Start()
    27.     {
    28.         // If we haven't set up the Unity Purchasing reference
    29.         if (m_StoreController == null)
    30.         {
    31.             // Begin to configure our connection to Purchasing
    32.             InitializePurchasing();
    33.         }
    34.  
    35.         launcher = FindObjectOfType<Launcher>();
    36.     }
    37.  
    38.     public void InitializePurchasing()
    39.     {
    40.         // If we have already connected to Purchasing ...
    41.         if (IsInitialized())
    42.         {
    43.             // ... we are done here.
    44.             return;
    45.         }
    46.  
    47.         // Create a builder, first passing in a suite of Unity provided stores.
    48.         var builder = ConfigurationBuilder.Instance(StandardPurchasingModule.Instance());
    49.  
    50.         // Continue adding the non-consumable product.
    51.         builder.AddProduct(removeADS, ProductType.NonConsumable);
    52.  
    53.         // Kick off the remainder of the set-up with an asynchrounous call, passing the configuration
    54.         // and this class' instance. Expect a response either in OnInitialized or OnInitializeFailed.
    55.         UnityPurchasing.Initialize(this, builder);
    56.     }
    57.  
    58.     public bool IsInitialized()
    59.     {
    60.         // Only say we are initialized if both the Purchasing references are set.
    61.         return m_StoreController != null && m_StoreExtensionProvider != null;
    62.     }
    63.  
    64.     //public void BuyConsumable(string consumable)
    65.     //{
    66.     //    // Buy the consumable product using its general identifier. Expect a response either
    67.     //    // through ProcessPurchase or OnPurchaseFailed asynchronously.
    68.     //    BuyProductID(consumable);
    69.     //}
    70.  
    71.     public void BuyRemoveAds()
    72.     {
    73.         // Buy the non-consumable product using its general identifier. Expect a response either
    74.         // through ProcessPurchase or OnPurchaseFailed asynchronously.
    75.  
    76.         string productID = removeADS;
    77.  
    78.         BuyProductID(productID);
    79.     }
    80.  
    81.     void BuyProductID(string productId)
    82.     {
    83.         // If Purchasing has been initialized ...
    84.         if (IsInitialized())
    85.         {
    86.             // ... look up the Product reference with the general product identifier and the Purchasing
    87.             // system's products collection.
    88.             Product product = m_StoreController.products.WithID(productId);
    89.  
    90.             // If the look up found a product for this device's store and that product is ready to be sold ...
    91.             if (product != null && product.availableToPurchase)
    92.             {
    93.                 Debug.Log(string.Format("Purchasing product asychronously: '{0}'", product.definition.id));
    94.                 // ... buy the product. Expect a response either through ProcessPurchase or OnPurchaseFailed
    95.                 // asynchronously.
    96.                 m_StoreController.InitiatePurchase(product);
    97.             }
    98.             // Otherwise ...
    99.             else
    100.             {
    101.                 // ... report the product look-up failure situation
    102.                 Debug.Log("BuyProductID: FAIL. Not purchasing product, either is not found or is not available for purchase");
    103.             }
    104.         }
    105.         // Otherwise ...
    106.         else
    107.         {
    108.             // ... report the fact Purchasing has not succeeded initializing yet. Consider waiting longer or
    109.             // retrying initiailization.
    110.             Debug.Log("BuyProductID FAIL. Not initialized.");
    111.         }
    112.     }
    113.  
    114.  
    115.     public string GetProductPriceFromStore(string productId)
    116.     {
    117.         string productID = productId;
    118.         if (m_StoreController != null && m_StoreController.products != null)
    119.         {
    120.             return m_StoreController.products.WithID(productID).metadata.localizedPriceString;
    121.         }
    122.         else
    123.         {
    124.             return "";
    125.         }
    126.     }
    127.  
    128.     // Restore purchases previously made by this customer. Some platforms automatically restore purchases, like Google.
    129.     // Apple currently requires explicit purchase restoration for IAP, conditionally displaying a password prompt.
    130.     public void RestorePurchases()
    131.     {
    132.         // If Purchasing has not yet been set up ...
    133.         if (!IsInitialized())
    134.         {
    135.             // ... report the situation and stop restoring. Consider either waiting longer, or retrying initialization.
    136.             Debug.Log("RestorePurchases FAIL. Not initialized.");
    137.             return;
    138.         }
    139.  
    140.         // If we are running on an Apple device ...
    141.         if (Application.platform == RuntimePlatform.IPhonePlayer ||
    142.             Application.platform == RuntimePlatform.OSXPlayer)
    143.         {
    144.             // ... begin restoring purchases
    145.             Debug.Log("RestorePurchases started ...");
    146.  
    147.             // Fetch the Apple store-specific subsystem.
    148.             var apple = m_StoreExtensionProvider.GetExtension<IAppleExtensions>();
    149.             // Begin the asynchronous process of restoring purchases. Expect a confirmation response in
    150.             // the Action<bool> below, and ProcessPurchase if there are previously purchased products to restore.
    151.             apple.RestoreTransactions((result) => {
    152.                 // The first phase of restoration. If no more responses are received on ProcessPurchase then
    153.                 // no purchases are available to be restored.
    154.                 Debug.Log("RestorePurchases continuing: " + result + ". If no further messages, no purchases available to restore.");
    155.             });
    156.         }
    157.         // Otherwise ...
    158.         else
    159.         {
    160.             // We are not running on an Apple device. No work is necessary to restore purchases.
    161.             Debug.Log("RestorePurchases FAIL. Not supported on this platform. Current = " + Application.platform);
    162.         }
    163.     }
    164.  
    165.  
    166.     //
    167.     // --- IStoreListener
    168.     //
    169.  
    170.     public void OnInitialized(IStoreController controller, IExtensionProvider extensions)
    171.     {
    172.         // Purchasing has succeeded initializing. Collect our Purchasing references.
    173.         Debug.Log("OnInitialized: PASS");
    174.  
    175.         // Overall Purchasing system, configured with products for this application.
    176.         m_StoreController = controller;
    177.         // Store specific subsystem, for accessing device-specific store features.
    178.         m_StoreExtensionProvider = extensions;
    179.     }
    180.  
    181.  
    182.     public void OnInitializeFailed(InitializationFailureReason error)
    183.     {
    184.         // Purchasing set-up has not succeeded. Check error for reason. Consider sharing this reason with the user.
    185.         Debug.Log("OnInitializeFailed InitializationFailureReason:" + error);
    186.     }
    187.  
    188.  
    189.     public PurchaseProcessingResult ProcessPurchase(PurchaseEventArgs args)
    190.     {
    191.         if (String.Equals(args.purchasedProduct.definition.id, removeADS, StringComparison.Ordinal))
    192.         {
    193.             Debug.Log(string.Format("ProcessPurchase: PASS. Product: '{0}'", args.purchasedProduct.definition.id));
    194.             //launcher.removeads success
    195.             launcher.RemoveAdsSuccess();
    196.         }
    197.        
    198.         // Or ... an unknown product has been purchased by this user. Fill in additional products here....
    199.         else
    200.         {
    201.             Debug.Log(string.Format("ProcessPurchase: FAIL. Unrecognized product: '{0}'", args.purchasedProduct.definition.id));
    202.         }
    203.  
    204.         // Return a flag indicating whether this product has completely been received, or if the application needs
    205.         // to be reminded of this purchase at next app launch. Use PurchaseProcessingResult.Pending when still
    206.         // saving purchased products to the cloud, and when that save is delayed.
    207.         return PurchaseProcessingResult.Complete;
    208.     }
    209.  
    210.  
    211.     public void OnPurchaseFailed(Product product, PurchaseFailureReason failureReason)
    212.     {
    213.         // A product purchase attempt did not succeed. Check failureReason for more detail. Consider sharing
    214.         // this reason with the user to guide their troubleshooting actions.
    215.         Debug.Log(string.Format("OnPurchaseFailed: FAIL. Product: '{0}', PurchaseFailureReason: {1}", product.definition.storeSpecificId, failureReason));
    216.     }
    217. }
     
  4. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
  5. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    @JeffDUnity3D

    1. Downloaded sample, followed dialog to update API dependencies.
    2. Created Project link to Unity Services, Analytics and IAP were already enabled as per samples settings.
    3. Deployed to iPad, same issue(grey screen) but log has even less data(well it stops at UnityIAP UnityEarlyTransactionObserver: Added to the payment queue ):

    Code (CSharp):
    1. 2020-05-19 19:20:19.151010+0200 PureRocketsIAP[2151:2752709] UnityIAP UnityEarlyTransactionObserver: Created
    2. 2020-05-19 19:20:19.153207+0200 PureRocketsIAP[2151:2752709] UnityIAP UnityEarlyTransactionObserver: Registered for lifecycle events
    3. CrashReporter: initialized
    4. 2020-05-19 19:20:19.262144+0200 PureRocketsIAP[2151:2752709] Built from '2019.3/release' branch, Version '2019.3.13f1 (d4ddf0d95db9)', Build type 'Release', Scripting Backend 'il2cpp'
    5. -> applicationDidFinishLaunching()
    6. 2020-05-19 19:20:19.516104+0200 PureRocketsIAP[2151:2752709] UnityIAP UnityEarlyTransactionObserver: Added to the payment queue
     
  6. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    Additional Info:
    Unity: 2019.3.13f
    Xcode: 11.4.1
    .NET 4.x il2cpp
     
  7. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    What iPad version and iOS version? Unfortunately we don't have a quick solution for you.
     
  8. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    iPad 6th Gen iOS 13.4.1 - tested with WIFI/NO WIFI. same result.
    iPhone XR same OS version as above- WORKS
     
  9. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    The issue is only on your iPad?
     
  10. iMancha

    iMancha

    Joined:
    Sep 22, 2014
    Posts:
    25
    Yes, only iPad. updated previous reply.
     
    JeffDUnity3D likes this.
  11. ArthurMWM

    ArthurMWM

    Joined:
    Sep 3, 2020
    Posts:
    2
    Hi,

    Sorry for necro-ing (kinda), but we are encountering an extremely similar issue where our app freezes at launch (before the Splash Screen) on one specific iPad, and were wondering if there was any update on this?

    For reference, we run our application on a lot of devices, and only one (an iPad Air 2 running on OS 13.5.1) has this issue. Only on this device, when we run our application with the "Debug executable" off (from Xcode's scheme window), our app doesn't load and infinitely stay on a gray screen. The same result is obtained when using a version of the application which went through either Testflight or the App Store (which is problematic)

    We are mainly using Unity 2019.4.13f1, but have confirmed that upgrading to 2019.4.20 didn't fix it.

    The only 'application logs' we get when running are the same 2 cited on this thread's first post :
    1. UnityIAP UnityEarlyTransactionObserver: Created
    2. UnityIAP UnityEarlyTransactionObserver: Registered for lifecycle events
    We tried to check the entire devices logs around the 'freeze moment', but didn't get anything useful (device logs attached, the Unity IAP ones are on lines 1643-1644)

    We know for a fact that this bug is not present on some others iPad Air 2 running the same OS version, but this only makes it harder for us to pinpoint, or event know how many users / devices are concerned.

    Any news or help about this bug would be welcome!
     

    Attached Files:

  12. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    Does it work correctly with a test app without IAP?
     
    nicholasr likes this.
  13. nicholasr

    nicholasr

    Joined:
    Aug 15, 2015
    Posts:
    183
    @ArthurMWM Check your network settings / proxy settings and provisioning of the device for use by testflight.

    Not that I know, only speculating after reviewing the logs for piano-app, after those UnityIAP lines, there are logs talking about a Web exception, and SOAuthorization which is in a "AppSSO" framework (I never have used). Based on that I guess there could be a single-sign-on, or testflight related issue.
     
  14. stickygamessthlm

    stickygamessthlm

    Joined:
    Nov 12, 2020
    Posts:
    3
    Having the same problem on an iPad Air 4th gen, running iOS 15.0.1 . The iPad belongs to my nephew and thus has its apple account connected to his dad's account, which could be a meaningful datapoint

    Additional Info:
    Unity 2020.3.19f1
    XCode 13.0

    Build runs fine on other devices, including an iPhone 8 running iOS 14.6, and a first generation iPad Air running iOS 12.6

    This is the entirety of the XCode log output:
    2021-10-17 13:09:16.871885+0200 WordBlocks[1857:96740] UnityIAP UnityEarlyTransactionObserver: Created

    2021-10-17 13:09:16.871987+0200 WordBlocks[1857:96740] UnityIAP UnityEarlyTransactionObserver: Registered for lifecycle events

    @nicholasr , tagging you as the last post in this thread was in March
     
    Last edited: Oct 17, 2021
  15. JeffDUnity3D

    JeffDUnity3D

    Joined:
    May 2, 2017
    Posts:
    14,446
    There are no errors in the log that you supplied. As mentioned previously, are you certain it's related to IAP? What is the behavior without IAP installed? Perhaps test with a new/empty project to compare.
     
  16. ArthurMWM

    ArthurMWM

    Joined:
    Sep 3, 2020
    Posts:
    2
    For reference (since we answered earlier with a problem of ours that seemed similar) - we did find a (quite dirty) patch, in case it helps anyone

    The patch being in Xcode
    - Select your main Unity-iPhone target
    - Go into Build Phases
    - Open "Link Binary With Libraries"
    - Press +
    - Add UnityFramework.framework (the one who's under the Unity-iPhone Project category)

    I won't pretend we understand exactly why this does the trick, but we found this workaround here : https://issuetracker.unity3d.com/is...ns-triggers-watchdog-termination-after-launch ; where the symptoms were similar enough to our problem, so we tried the proposed workaround which solved our issue
     
    nxtboyIII, litebox, TK009999 and 4 others like this.
  17. SohilKadevar

    SohilKadevar

    Joined:
    May 19, 2018
    Posts:
    14

    Thanks @ArthurMWM,
    Its working for me you saved me.
     
    Last edited: Dec 21, 2021
  18. El1t3L33t

    El1t3L33t

    Joined:
    Jun 14, 2020
    Posts:
    13
    Thanks @ArthurMWM - I was running into the same issue, surprising but also not surprising that Unity does not account for this when creating the Xcode build..
     
  19. TK009999

    TK009999

    Joined:
    Nov 28, 2016
    Posts:
    8
    Thanks @ArthurMWM !
    It's working for me!
     
  20. litebox

    litebox

    Joined:
    Aug 29, 2011
    Posts:
    158
    Thank you, it's working for me