Announcement

Collapse
No announcement yet.

UE app about to be banned from the app store and dev account terminated over an Unreal Engine bug

Collapse
X
 
  • Filter
  • Time
  • Show
Clear All
new posts

    [PACKAGE & DEPLOY] UE app about to be banned from the app store and dev account terminated over an Unreal Engine bug

    My app update submission to Apple was just rejected with the following message:

    Guideline 2.5.1 - Performance - Software Requirements
    Your app uses or references the following non-public APIs:

    - MTLDebugDevice

    The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change.

    Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.
    I've read briefly that this is fixed in 4.19. Unless it's coming out tomorrow this fix needs to be hotfixed as soon as possible.

    Additionally it would be well advised that Epic maintains a shipping example game on the Apple app store so that Epic engineers encounter messages like this before Joe Shmoe or someone like me who has no weight with Apple runs into it and has his livelihood permanently annihilated. At the very least it seems like one of you should be on the blower letting Apple's review staff know what's up and that it's unintentional and not malicious. Develop a working relationship please.

    For the rest of you, apparently you can use the "nm" tool to verify what third party libraries you have, but I don't what is involved with that. But I personally won't be submitting any more updates until 4.19 is out and the fix has been verified by someone else.

    #2
    To update, they are not budging. Here is the communication so far. After their last post they removed my ability to reply.

    Apple don't give a flying **** about developers. They might listen to Epic. Unfortunately Epic don't seem to give a flying **** about this situation either.

    It's looking more and more like Unreal Engine on iOS devices is not viable.


    • Feb 21, 2018 at 4:58 AM

      From Apple
      • 2.
         5 Performance: Software Requirements



      Hello,

      Thank you for your message. As stated in the original rejection, ‘Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store’. 

      Please make the needed changes so that your app is compliant with our guidelines and resubmit so that we can continue with the review process.

      Best regards,

      App Store Review
    • Feb 17, 2018 at 12:04 PM

      From Antidamage

      That reply bears no resemblance to what I asked you. To re-iterate: I don't have any way of verifying if this API is being used in my project, but if I make changes and resubmit it will my app be terminated and my developer account banned if we find it's still in the IPA?
    • Feb 17, 2018 at 11:29 AM

      From Apple

      Hello,

      Thank you for your reply. 

      We understand that you may not agree with the feedback we have provided. However, to ensure App Store customers a safe and enjoyable experience, all apps must comply with the App Store Review Guidelines. We hope that you will make the appropriate changes to your app to bring it into compliance with the App Store Review Guidelines and resubmit your app for review.

      Best regards,

      App Store Review
    • Feb 16, 2018 at 10:39 PM

      From Antidamage

      I should also add I also don't have the game in the submitted state anymore so I can't rebuild it without releasing new features that I've been working on. Is there any way that this can be disregarded, given that the wrongly included API is common in Unreal Engine and not an intentional thing?
    • Feb 16, 2018 at 9:20 PM

      From Antidamage

      Straight up: I don't know what that is. Apparently it was introduced in 4.18.3 of Unreal Engine and is fixed in 4.19, as it's a debug library it shouldn't be present in shipping builds.

      I have no way of telling if it is present in any given build so I would appreciate not having my app terminated while I resubmit in the hope that I've removed whatever it is.
    • Feb 16, 2018 at 7:57 AM

      From Apple
      Guideline 2.5.1 - Performance - Software Requirements



      Your app uses or references the following non-public APIs:

      - MTLDebugDevice

      The use of non-public APIs is not permitted on the App Store because it can lead to a poor user experience should these APIs change. 

      Continuing to use or conceal non-public APIs in future submissions of this app may result in the termination of your Apple Developer account, as well as removal of all associated apps from the App Store.

      Next Steps

      If you are using third-party libraries, please update to the most recent version of those libraries. If you do not have access to the libraries' source, you may be able to search the compiled binary using the "strings" or "otool" command line tools. The "strings" tool can output a list of the methods that the library calls and "otool -ov" will output the Objective-C class structures and their defined methods. These tools can help you narrow down where the problematic code resides. You could also use the "nm" tool to verify if any third-party libraries are calling these APIs.

      Resources

      For information on the "nm" tool, please review the "nm tool" Xcode manual page.

      If there are no alternatives for providing the functionality your app requires, you can file an enhancement request.

    Comment


      #3
      Mhm, it looks like a fix for it. Submitted on February 12th.
      https://github.com/EpicGames/UnrealE...d1abf28407562b

      Epic doesn't provide support for old engine versions while finishing a new one. I'd never expected such hotfix. Had to wait for 4.19.
      Last edited by Doctor Ergot; 02-21-2018, 09:16 AM.

      Comment


        #4
        That right there is the problem:

        1. It happened at all. Getting banned from the app store because your framework had a bug would bankrupt most developers. I'm lucky I got a warning. Updating a demo app on the app store should be part of the pre-release process.
        2. It wasn't hotfixed immediately. Contrary to what you said Epic do release hotfixes of this nature, this one should have made it in.
        3. Apple's response means Epic don't talk to them. The platform needs an advocate with Apple. Unity has one.
        Last edited by Antidamage; 02-21-2018, 05:26 PM.

        Comment


          #5
          We've uploaded a Quick-Fix solution to resolve the issue here: https://forums.unrealengine.com/unre...-releases/3303

          Hope it helps!

          Comment


            #6
            Good stuff!

            Comment


              #7
              Amanda.Bott good news and bad news.

              The good news is I was finally able to talk to Apple on the phone and my account isn't marked for any termination action yet. Phew.

              The bad news is they have confirmed that the above patch didn't work. Metal Debugger is still in shipping builds:



              I've applied the patch on MacOS and the build configuration is set to shipping. I don't have much faith that 4.19 will actually fix the problem either if the patch didn't do anything.

              So again, can I suggest that Epic put a test app through the submission process? Not just Fortnite mobile but some kind of feature demonstration app that's designed to be released during the preview phase of each engine version so that you catch the issues early.

              Does anyone know how I can verify for myself that the library is being included in future builds?
              Last edited by Antidamage; 03-12-2018, 08:13 PM.

              Comment


                #8
                Originally posted by Antidamage View Post
                Amanda.Bott good news and bad news.

                The good news is I was finally able to talk to Apple on the phone and my account isn't marked for any termination action yet. Phew.

                The bad news is they have confirmed that the above patch didn't work. Metal Debugger is still in shipping builds:



                I've applied the patch on MacOS and the build configuration is set to shipping. I don't have much faith that 4.19 will actually fix the problem either if the patch didn't do anything.

                So again, can I suggest that Epic put a test app through the submission process? Not just Fortnite mobile but some kind of feature demonstration app that's designed to be released during the preview phase of each engine version so that you catch the issues early.

                Does anyone know how I can verify for myself that the library is being included in future builds?

                Antidamage, I ran into the same rejection with an app update I tried to push through last month. I had to delay the update.

                I'm not sure how to test if an API is include for not; but this is the Pull Request, which has been accepted by Epic into 4.19, which is confirmed to fix the problem: https://github.com/EpicGames/UnrealEngine/pull/4491

                I was really hoping the QFE fixed the issue. Since it doesn't, what I'm going to do is create a custom Engine version of 4.18.3 that includes the bug fix in PR 4491. The bug fix is literally two lines of code that need to be added to one file. That's the only suggestion I can make at this point.

                Comment


                  #9
                  Originally posted by Amanda.Bott View Post
                  We've uploaded a Quick-Fix solution to resolve the issue here: https://forums.unrealengine.com/unre...-releases/3303

                  Hope it helps!
                  Thanks for the link! I've been using UE4 for years, and this is the first time I've ever heard of QFE's. Is there a reason they aren't widely publicized, or why staff don't post about them in AnswerHub posts? I posted about this issue on AnswerHub, but was told I'd have to make the change myself while awaiting availability of the fix: https://answers.unrealengine.com/que...-api-meta.html

                  Thanks!

                  Comment


                    #10
                    Originally posted by JonathanADaley View Post

                    Thanks for the link! I've been using UE4 for years, and this is the first time I've ever heard of QFE's. Is there a reason they aren't widely publicized, or why staff don't post about them in AnswerHub posts? I posted about this issue on AnswerHub, but was told I'd have to make the change myself while awaiting availability of the fix: https://answers.unrealengine.com/que...-api-meta.html

                    Thanks!
                    It might have been released because I made a bunch of noise in this thread about it. The effort was appreciated in any case even if it didn't work.

                    I'm going to try to do a source build as well and see how I go, although I feel like I'm going to have trouble getting the plugins I've been using to work.
                    Last edited by Antidamage; 03-13-2018, 07:03 PM.

                    Comment


                      #11
                      Originally posted by Antidamage View Post

                      It might have been released because I made a bunch of noise in this thread about it. The effort was appreciated in any case even if it didn't work.

                      I'm going to try to do a source build as well and see how I go, although I feel like I'm going to have trouble getting the plugins I've been using to work.
                      Antidamage, but he is telling to build the source from 4.18 and apply the changes from the PR for 4.19 into it (he said 2 lines), so I think all your plugins would be ok, no?
                      Nilson Lima
                      Technical Director @ Rigel Studios Ltda - twitter: @RigelStudios
                      Join us at Discord: https://discord.gg/uFFSEXY

                      UE4 Marketplace: Cloudscape Seasons
                      supporting: Community FREE Ocean plugin

                      Comment


                        #12
                        Originally posted by NilsonLima View Post

                        Antidamage, but he is telling to build the source from 4.18 and apply the changes from the PR for 4.19 into it (he said 2 lines), so I think all your plugins would be ok, no?
                        That's what I was hoping. I'm still stuck at getting it to generate the source project files on Mac.

                        Code:
                        Setting up Unreal Engine 4 project files...
                        
                        Setting up Mono
                        /Users/Shared/Epic Games/UE_4.18_Alt/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/Microsoft.CSharp.targets: error : Error executing tool '/Users/Shared/Epic Games/UE_4.18_Alt/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/mcs.exe': ApplicationName='/Users/Shared/Epic Games/UE_4.18_Alt/Engine/Binaries/ThirdParty/Mono/Mac/lib/mono/4.5/mcs.exe', CommandLine='/noconfig @/var/folders/_m/2y0661f10jn4hbzjp9bzfg_80000gn/T/tmp2e9c046e.tmp', CurrentDirectory='/Users/Shared/Epic Games/UE_4.18_Alt/Engine/Source/Programs/DotNETCommon/DotNETUtilities', Native error= Cannot find the specified file
                        Cannot open assembly '../../../Binaries/DotNET/UnrealBuildTool.exe': No such file or directory.
                        logout
                        Saving session...
                        ...copying shared history...
                        ...saving history...truncating history files...
                        ...completed.

                        Comment


                          #13
                          And there's 4.19. I'll report back once everyone has updated their plugins and I can test a build.

                          Comment

                          Working...
                          X