Search Unity

  1. Unity 2020.1 has been released.
    Dismiss Notice
  2. Good news ✨ We have more Unite Now videos available for you to watch on-demand! Come check them out and ask our experts any questions!
    Dismiss Notice

iOS Large Memory Usage = Apparently Feature, Not a Bug?

Discussion in 'iOS and tvOS' started by Xander-Davis, Mar 2, 2019.

  1. Xander-Davis

    Xander-Davis

    Joined:
    Apr 23, 2011
    Posts:
    414
    Well, if you have been following the iOS Large Memory Usage thread, the issue of which Astrogun internally called the 'Titanium Moth' bug, the latest reply from Unity via Apple is essentially that it is a feature, not a bug:

    https://forum.unity.com/threads/ios-12-large-memory-usage.558550/page-4#post-4271797

    This 'feature', known to 'more accurately' double or even quadruple a Unity game's memory footprint on iOS/tvOS, hitting memory limits and causing apps to crash, for over half a year now— when they previously worked fine, means that, while we were able to ship a game that looked better on older hardware (even four year old hardware) two years ago, now we must curtail what is possible with Unity on these platforms to get it to work on even newer hardware today. By a lot. A lot, a lot, a lot.

    Unity has either waited until the March 1st Apple deadline requiring all developers use iOS 12 or Xcode 10, forcing them to face this memory 'feature' and knew they had no solution (since perhaps when this bug first emerged around Summer 2018), or they were trying up until today to find a solution, or both. I'd like to give Unity the benefit of the doubt here and think that they were trying right up until the limit. Unity wouldn't leave us out to dry like this would they?

    Now essentially it seems the word is, Apple isn't budging on this. Because they're Apple. So that effectively means Unity must instead.

    I hope Unity isn't just 'closing this bug' and moving on like they're eager to do with the thread. This has to be addressed fundamentally in the engine itself. Perhaps they must rethink compression methods on iOS/tvOS now to stay under Apple's new memory limits? (this is a rhetorical question...)

    The way the thread was addressed today and closed by Unity is, with all due respect, very off-putting to say the least. It sort of felt like "since we absolutely must say something today now that the deadline has passed and there's absolutely nothing you can do about it, our answer is: we have no answer so deal with it."

    Meanwhile, Unity is busy posting dog photos on Instagram.

    I know a lot of other developers were affected by this memory quadrupling 'feature' that breaks parity with other platforms, and they can't be happy by this news...

    To Unity, this is extremely disappointing and unbecoming. But also not unexpected.
     
    Last edited: Mar 2, 2019
    Mahgo, yanivng, Regone and 4 others like this.
  2. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    As far as I can tell, the article that ScottF linked to is very new. Maybe it was created as a direct reaction to this issue. It may have some clues as to how we should approach optimization for 10.1.

    FYI I was able to submit a new build today (March 1) built with 9.4.1. How long that will be allowed is ambiguous.

    @ScottF - Are we able to take advantage of all these Metal features mentioned in the article? And is that true for images attached to UI Images?

    Designate resources as volatile when possible. Use MTLPurgeableState.volatile and setPurgeableState for textures and buffers whose underlying memory could be discarded under low-memory conditions, and subsequently recreated or reloaded as needed. This allows your app to keep a cache of idle resources in memory while avoiding counting them toward the memory limit.

    Use memoryless texture storage for temporary render targets. MTLStorageMode.memoryless avoids allocating regular system memory, allowing apps to store the contents of temporary render targets directly in tile memory on the GPU.

    Use Metal resource heaps. MTLHeap allows multiple Metal resources to be backed by the same memory allocation. For instance, you can use resource heaps when transient resources are produced and consumed for each frame but aren't all used together. Those not used together can share the same memory, backed by a heap.
     
    Last edited: Mar 2, 2019
  3. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    Is it possible to select which graphics engine to use (Metal vs OpenGL) at run time? In our case (and I realize this may not be helpful for others) the most impacted devices are older iPhones and iPads - at launch, could we choose to have those devices use OpenGL and newer devices use Metal?
     
    Last edited: Apr 3, 2019
  4. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    One more: We are currently using 2017.1.3p1 - is Metal memory handling in some way better in later versions of Unity?
     
  5. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,043
    I was about to create a new thread about this and tag the main members of the last discussion since Unity decided to lock the thread from further discussion so we could no longer discuss it (good old Unity).

    Anyway, the old "iOS now reports the memory usage properly" reason we're giving makes no sense to me because:

    A. My game doesn't crash when built with the old Xcode version, so if it was 'reporting' that was the issue, my game would still use too much ram and cause the the game to crash, but I'd see no reason for it as the memory usage would be well under the max limit (as reported - apparently incorrectly)

    B. On old Xcode, my game uses almost exactly the same amount of memory as my android version - which makes sense. But on new Xcode it triples.

    So basically, if I'm to understand what is supposed to be happening it's that my game has always used 3x as much ram than the same game on Android and because it's now being reported correctly, the device is shutting my game down?

    Makes no sense to me.
     
  6. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    6,899
    That's what Apple is saying, more or less:
     
  7. derkoi

    derkoi

    Joined:
    Jul 3, 2012
    Posts:
    2,043
    Yeah that's exactly what they're saying.

    For years I've had to put up with Apple and their annoyingness. Only recently I had to wrestle with them to release a game of mine that they were hinting was ripped off from someone else. When I asked them for clarification they replied that they couldn't discuss it with me! In the end they accepted the game but after my advertising campaign at a motor show had passed.

    Think it's time to cut my ties with Apple. I'm done with jumping through their hoops.
     
  8. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    @ScottF Is there a technique like this one to query Metal about how much "Metal memory" we are using?
    task_info is giving me much smaller memory numbers than the gauge and I'm trying to print out memory usage at various points in my code to better identify hotspots. @Xander-Davis is this thread OK for questions like this (and the ones I mentioned above) or would you prefer I move them to another thread.
     
  9. Xander-Davis

    Xander-Davis

    Joined:
    Apr 23, 2011
    Posts:
    414
    @jtokash - fine with me. In my opinion, it was a mistake for Scott to lock the previous thread because clearly this will remain a major issue, seems to be unresolved from our end (Unity's customers), and the discussion amongst developers needs to be ongoing with each other and Unity.
     
    protopop and jtokash like this.
  10. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    I agree Xander. If this is going to be the new normal, we're going to need some help adapting. @_Paulius @martonekler @ScottF, can you answer the optimization/analysis questions I posed above? Repeated/clarified here for convenience:

    1. Is there c# or objective c code we can use at runtime to find out how much metal memory we are using? I'm trying to litter our code with profiling to find the best areas to tackle and the standard objective c solution is not counting that memory..

    2. Is it possible to set the graphics engine to use (Metal vs OpenGL) at run time? In our case (and I realize this may not be helpful for others) the most impacted devices are older iPhones and iPads - at launch, could we choose to have those devices use OpenGL and newer devices use Metal?

    3. For those of us using 2017.1.3p1 or an older Unity version - is Metal memory handling in some way better in later versions of Unity? Should we upgrade as part of the solution?

    4. The Apple article that @ScottF linked to mentioned some specific areas to investigate - Are these capabilities available to Unity developers? If so, what versions of Unity should we be looking at?

    Designate resources as volatile when possible. Use MTLPurgeableState.volatile and setPurgeableState for textures and buffers whose underlying memory could be discarded under low-memory conditions, and subsequently recreated or reloaded as needed. This allows your app to keep a cache of idle resources in memory while avoiding counting them toward the memory limit.

    Use memoryless texture storage for temporary render targets. MTLStorageMode.memoryless avoids allocating regular system memory, allowing apps to store the contents of temporary render targets directly in tile memory on the GPU.

    Use Metal resource heaps. MTLHeap allows multiple Metal resources to be backed by the same memory allocation. For instance, you can use resource heaps when transient resources are produced and consumed for each frame but aren't all used together. Those not used together can share the same memory, backed by a heap.
    5. Our games use Unity UI and UI Images heavily - anything in particular we should keep in mind with regard to Metal?

    Thanks for any information you can provide!
    John
     
    Last edited: Mar 5, 2019
    Xander-Davis likes this.
  11. AcidArrow

    AcidArrow

    Joined:
    May 20, 2010
    Posts:
    6,899
  12. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
  13. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    Edit: I removed this post - it was my attempt at reverse engineering the XCode Memory Gauge number. My technique worked for one project, but I've since tested it in 2 other projects and it was very far off. I would still LOVE a way to get that number from code.
     
    Last edited: Mar 13, 2019
    AcidArrow and protopop like this.
  14. Duobix

    Duobix

    Joined:
    Dec 6, 2014
    Posts:
    49
    So I've just performed a quick test: how much ram is an empty project taking?
    With nothing out there it was about 80+ MB (Xcode 10.1 / iOS SDK 12.1, Unity 2018.1.2f1).

    Am I missing some sort of a setting here? Shouldn't the memory usage be around 20MB?
    Could anyone try making an empty project on their machine just like that? Maybe something
    is wrong with my mac?
     
    Xander-Davis likes this.
  15. Xander-Davis

    Xander-Davis

    Joined:
    Apr 23, 2011
    Posts:
    414
  16. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    I've made a few different memory testing projects here are some WIP conclusions. I hope they help others:
    • If you are loading textures make sure they are marked as nonreadable. Readable textures take up twice as much memory (regardless of iOS version, XCode version). Pass true as the second param to Texture2D.LoadImage to save that memory. Or if you are loading from Resources, make sure the Read/Write enabled box is unchecked.
    • An empty project built with Unity 2017.1, XCode 9.4.1, run on iOS 11 shows about 35 MB in the XCode memory gauge. Same project built with Unity 2017.1, XCode 10.1, iOS 12 show about 95MB in the XCode memory gauge. That's 60MB of new overhead right off the bat.
    • In my controlled memory tests, loading Texture2Ds via Resources(Resources.Load) and Streaming Assets(Texture2D.LoadImage) does not cost more (according to the XCode memory gauge) in iOS 12/XCode 10.1.
    • That said, one of our games is taking up 164 more MB under iOS 12/XCode 10.1. As I mentioned earlier, 60MB of this is "expected" for any Unity project. I have not yet established where the other 100MB is coming from and if it is somehow tied to images.
    • As previously mentioned, the cap for XCode gauge memory before things start going haywire on an iPhone 6 plus is now 600MB on iOS 12, so I'm still looking to reduce the 164 MB increase.
    • Reminder: if you are testing XCode 9.4.1 and 10.1 from the same XCode project/folder, make sure you do a Clean when you switch between XCode versions. If you don't, sometimes XCode will just use the last compiled version.
     
    Last edited: Mar 19, 2019
    MoribitoMT, Xander-Davis and protopop like this.
  17. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    60mb extra is crazy. Thanks for the in depth information.

    It ooks like apple is somewhat acknowledging this in todays announcement:

    https://developer.apple.com/news/?id=03202019a

    March 27th is the absolute deadline for requiring ios 12 sdk suppor, which as we know potemtialluy brings memory related crashes.

    Whats interesting is at the bottom of this page they mention this and give a link to apply for an entitlement to use the old memory system.

    "Understanding Changes in Memory Accounting
    iOS 12 and tvOS 12 require apps to use memory far more efficiently than before. If you have difficulty reducing your app’s memory requirements, contact us to request an entitlement for your app to use iOS 11-style memory accounting."​

    Check it out.
     
    Duobix, jtokash and Xander-Davis like this.
  18. gecko

    gecko

    Joined:
    Aug 10, 2006
    Posts:
    2,093
    Wow. So does that mean an app can actually use the old-style memory accounting and avoid memory-related crashes? Or is that just for review purposes....but doesn't sound like that.
     
    protopop likes this.
  19. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    Judging from the wording it looks like you can at least apply for a kind of exemption.

    It makes sense because this is an actual issue, and developers have no choice but to use Xcode 10 in a few days. So i dont see how they could justify that upgrade to a setup that crashes apps.

    I wish this whole thing had been more transparent. And i wish Unity had also left the previous thread open, because there was a lot that still needed to be discussed about it. The way that it was shut down without warning left me feeling without support.
     
    Duobix, hungrybelome, jtokash and 2 others like this.
  20. KristoferBoman

    KristoferBoman

    Joined:
    Feb 16, 2016
    Posts:
    58
    We have the exact same problem. We released an update a week ago buildt with Xcode 10 and we immediately got reports from iPhone 5s,6 and 6 plus users that the game now crashed. Thats when i found the previous thread and realized this is a huge issue. Our game has double the memory when buildt with Xcode 10, so i'm not buying the explination "On iOS 12 and Xcode 10 Apple's memory reporting tools has been updated to more accurately track memory footprint"

    I've applied to Apple for an exemption today.
     
    protopop likes this.
  21. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    If you don’t mind, let us know how that goes
     
  22. ScottF

    ScottF

    Vice President, Platforms Unity Technologies

    Joined:
    Jul 31, 2013
    Posts:
    96
    I apologies this is how it left you feeling. My intent (perhaps incorrectly) is that I wanted that thread to end on an actual answer since people will likely find it as time goes on. We are still monitoring this thread and will be answering what we can.

    I would encourage all of you impacted to contact Apple per the article protopop linked. We are working on a number of things to address memory consumption such as better tooling as well as seeing how we can integrate some of the best practices outlined in Apples previous article. Some of these things will require significant re-work in Unity and will take time to roll out, while improved tooling will be coming more quickly.
     
    Duobix and protopop like this.
  23. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    Thanks Scott:)
     
  24. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    Hi, Can we only support iphone 6s / iPad 2017 / and above devices with 2gb rams. I am really upset with apple approach and want to ditch all devices with 1gb ram. Like iphone 6 from 2014 ( 5 years old phone ).

    How can we achive this? if I set min os 11 or only metal api ( still includes iphone 5s and iphone 6 )

    Fornite done this
    https://itunes.apple.com/us/app/fortnite/id1261357853?mt=8


    EXTRA NOTE:
    Also Unity memory managements is kinda really bad. When I load scene and unload scene, or instantiate / destory objects. I call "Resources.UnloadUnusedAssest", and it removes "some" of memory free. If call it 3 or 4 times in a row ( which is on heavy cpu cost ). It frees all unused memory, so 1 time is not enough. How come?
     
    Last edited: Mar 24, 2019
  25. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    MoribitoMT likes this.
  26. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    Can we add arkit framework, even if we do not need it in the app? Can it be approved by apple team?

    ONE EXTRA QUESTION:
    Anyone tested metal vs opengl3.0, does it make difference?
     
    Last edited: Mar 24, 2019
  27. Duobix

    Duobix

    Joined:
    Dec 6, 2014
    Posts:
    49
    From what I've tested it does NOT make a difference. It's related to SDK 12.1....
    And also a friendly reminder from Apple regarding OpenGL:
    https://developer.apple.com/ios/whats-new/
     
    MoribitoMT likes this.
  28. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    So this memory problem is a Apple thing, now ios 12.1 is must to publish apps, unity cannot fix it, apple says do better memory management..

    I think this may be end of 3D games in Unity.. Back to flappy birds which will need 500 mb ram to run..
     
    Last edited: Mar 25, 2019
  29. JohnnyFactor

    JohnnyFactor

    Joined:
    May 18, 2018
    Posts:
    183
    I'm trying to determine the actual memory limit. Is it anything in the red, in the debug gauges?
     
  30. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    My findings

    iphone 5 ( ios 10.3.3 ) above 540 mb crash
    iphone 6 ( ios 12 ) above 640 mb crash
    iphone 6s ( ios 12 ) Not crashed it yet ( but some says 1300-1400 max limit ), my game runs fine around 700 mb max
    ipad 9.7 / 2017 ( ios 12 ) Not crashed it yet ( but some says 1300-1400 max limit ), my game runs fine around 850 mb max
    I do not have iphone 5s, it is a wonder to me..

    EXTRA:
    Also turning off AntiAliasing and MSAA drops memory usage like 10-20 mb in my game

    EXTRA:
    Admob video ads / interstial makes adds 30-40 more memory usage, if not handled well, it keeps increasing..
     
    Last edited: Mar 25, 2019
  31. KristoferBoman

    KristoferBoman

    Joined:
    Feb 16, 2016
    Posts:
    58
    @protopop I applied for the exemption and they where quite fast to reply. The first step they ask you to do is to send them a system diagnose report taken directly after the crash.

    After you have supplied the sys diagnose they ask you to supply a gpu trace from the game that is representative of when the issue occurs, one with the game built with iOS 11 SDK and one with iOS 12. At this step they also ask for a memory graph from the iOS 12 build.

    So they will not just give you the exemption :)

    I dont think they understand the extent of this issue quite yet. But just wait until all the games that use >500 MB Ram starts crashing on devices with 1 GB of ram.
     
    protopop likes this.
  32. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    This problem actually very easy to solve on apple side, they just need to give us the option support devices under 2gb checkbox on itunes connect submission page..

    Anyone can optimize the game for 2gb, but for 1 gb, you need to redo the game A to Z..
     
  33. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    I can offically say this now, I removed AdMob from the game totally, interstitial + rewarded video and saved 100 mb in memory, memory always stable, no crashes at all. If this helps anybody..
     
    protopop likes this.
  34. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    That's good to know. I recently removed advertising form one of my games too - i think it makes the architecture simpler, and leaves less unknowns running in the background.
     
  35. KristoferBoman

    KristoferBoman

    Joined:
    Feb 16, 2016
    Posts:
    58
    I just finished the gpu trace and memgraph step. Waiting for them to reply. I'll keep you posted.
     
  36. Duobix

    Duobix

    Joined:
    Dec 6, 2014
    Posts:
    49
    Did you guys had to take any extra steps to make the memgraph? It keeps throwing out "no reply dictionary received from leakagent request" for me, and I cannot export anything afterwards.

    Have you posted an issue on AdMob developer google group regarding the memory problem?
     
  37. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    No, I check device memory, if less than 1500 mb, I do not initialize and show any admob ads. Now my games run really good with even on iphone 5, stable with 450 mb max. Otherwise it was passing 550 mb and were crashing the app.
     
  38. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
    A few more tips to keep memory use down - this time from Apple's developer support:

    1. Use compressed texture formats. <https://docs.unity3d.com/Manual/class-TextureImporterOverride.html>
    2. Optimize geometry and weld vertices. <https://docs.unity3d.com/Manual/FBXImporter-Model.html>
    3. Use mip-maps when importing textures. Watch out for Anisotropic and Filter mode settings <https://docs.unity3d.com/Manual/ImportingTextures.html#Mipmaps>
    4. Consider the best practices for mobile optimization. <https://docs.unity3d.com/Manual/MobileOptimisation.html>
     
    protopop likes this.
  39. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    Thanks:) I was able to remove about 10mb of textures with #1 in just a half hour. I converted RGB32 to RGB16, found some textures that weren't compressed, found some non alpha textures that were in alpha rgba format, and changed some pvrtc4bit to 2 bit on rocks and other items where there is already a lot of noise.
     
    jtokash likes this.
  40. MoribitoMT

    MoribitoMT

    Joined:
    Jun 1, 2013
    Posts:
    301
    Offical iOS 12.2 out already, anyone tested it, any improvements, I did not have the chance to test yet..
     
  41. KristoferBoman

    KristoferBoman

    Joined:
    Feb 16, 2016
    Posts:
    58
    @Duobix

    When i used an iPhone 5S i had that issue as well. Then i changed to an iPhone 7 and i was able to get the memgraph.
     
  42. ttermeer-reboundcg

    ttermeer-reboundcg

    Joined:
    Jul 12, 2017
    Posts:
    54
    Did anyone successfully apply to the Apple exemption program ?
    Still this is a short term solution. 3rd party plugin don't always provides Xcode 9 compatible library.
    I we could send 2 version of a game for different iOS devices that wouldn't be a problem but right now, it makes support for iPhone 5s/6 very difficult. This represents around 10% of our iOS users and they get random crash. We have been working non-stop on optimizing the memory usage in our game but it seems to have changed nothing.
     
  43. KristoferBoman

    KristoferBoman

    Joined:
    Feb 16, 2016
    Posts:
    58
    ttermeer-reboundcg and protopop like this.
  44. jtokash

    jtokash

    Joined:
    Sep 1, 2013
    Posts:
    23
  45. Selezen88

    Selezen88

    Joined:
    Jul 10, 2017
    Posts:
    3
    Hey guys! Any updates? Facing the same issue with Unity 2018.2.16f1 xCode 10.12.1 and iOS 12.2 iOS 12.3

    - iPhone 6 (1gb ram) on iOS 12.2 and iOS 12.3 crashes at 650bm
    - iPad mini 2 (1gb ram) on iOS 11.3.1works perfect
     
  46. ttermeer-reboundcg

    ttermeer-reboundcg

    Joined:
    Jul 12, 2017
    Posts:
    54
    Only solution right now, is to apply to the Apple program to obtain a special provisioning profile.
     
    Selezen88 likes this.
  47. Selezen88

    Selezen88

    Joined:
    Jul 10, 2017
    Posts:
    3
    We haven't released yet, so i'm not sure apple will add us to this program, but anyway thanks a lot! We'll try
     
  48. protopop

    protopop

    Joined:
    May 19, 2009
    Posts:
    1,379
    My game was rejected for the memory management exemption. I applied and sent in the first step the crash report, thats when they get back to you and ask for additional information.

    The second steps were actually beyond me, so i thought i would wait until i had time to figure it out.

    Then a few weeks later i received an email that says the ios issue was not responsible for my crash in the first place.

    Ive had a few testers say that my new ios 12 sdk versions cause a crash where old ones didnt.

    At this point i decided just to not stress about it, and i will make a note that my game only works on 2gb devices. Maybe that's what Apple wants anyways ;)

    And i learned some optimization techniques on this thread that ive applied, so i will just try to make my game as micro as possible.

    But this does have me scared to update my main game, Nimian Legends BrightRidge, on IOS in case it ruins compatibility on older devices. So for now the plan is, unfortunately, to only update the Android version.

    And the whole thing has made me see it isnt a given about mobile games remaining compatible forever. Changes to ios, xcode, macos and unity all can introduce incompatibilities and break your game.

    So at some point mobile dev may need to be treated more like console development - where our games are only guaranteed on a certain os/device combo? That's a paradigm shift i think has been in the works because there used to be 5 devices ten years ago, and now on ios there is 50+ devices x 12 ios versions x 4 macos versions, with more to come. And we are seeing the removal of big games like BioShock and Inifinity Blade etc because of these incompatibilities.
     
    sandboks likes this.
  49. Selezen88

    Selezen88

    Joined:
    Jul 10, 2017
    Posts:
    3
    Btw, i tried to find way to block my game in appstore for list of devices with <2gb memory like it works in GooglePlay (Where You can choose exactly list of blocked devices) and cant find it in AppStore Connect settings and xCode settings. Any ideas , guys?
     
  50. ttermeer-reboundcg

    ttermeer-reboundcg

    Joined:
    Jul 12, 2017
    Posts:
    54
    You can't do that in Apple Store. Only things you can do is display a message when someone starts your app.
     
unityunity