Search Unity

Apple Submission Warning: Missing Push Notification Entitlement

Discussion in 'iOS and tvOS' started by Ted-Brown, Dec 30, 2013.

  1. Ted-Brown

    Ted-Brown

    Joined:
    Oct 16, 2012
    Posts:
    33
    I submitted a simple, straightforward Unity app (with no plugins) to the App Store and got this warning. Apparently, other people have encountered it as well. It doesn't kill our chances at getting approved, but it does ding my credibility a little bit. :/

    My Xcode project was built from Unity, my brief reading of push notifications explained that it is configured as an Entitlement in Xcode, but there's nothing to be found there. In other words, I don't know how to disable something I didn't enable!

    A fix to the "build project" function in Unity would be the best fix, but instructions on how to patch it right now would be greatly appreciated!

    Thanks,

    -ted
     
    aimozs likes this.
  2. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    This piss me of, every time I submit Unity application I get this, every single time..
    And I just ignore it!! this is a Unity problem not xcode.
     
  3. Alexey

    Alexey

    Unity Technologies

    Joined:
    May 10, 2010
    Posts:
    1,624
    well, what can i say - apple process of checking executables is flawed (not that you can do much better but still).
    Obviously these api are "included", but they wont be called unless you do it yourself. So it is safe to ignore *though we might need to think of smth to avoid that completely)
     
  4. David-J-Foster

    David-J-Foster

    Joined:
    Jan 13, 2014
    Posts:
    18
    I too get this every single time, even on quite simple apps with no plugins, and being a developer working on relatively high-profile apps for clients, it does not reflect well on me. Please, does anybody have a workaround for this at all?
     
  5. MrEsquire

    MrEsquire

    Joined:
    Nov 5, 2013
    Posts:
    2,712
    Can you explain what the exact issue here is, because I dont really know what you have told us?
     
  6. Alexey

    Alexey

    Unity Technologies

    Joined:
    May 10, 2010
    Posts:
    1,624
    there is no issue. The api apple told you about are indeed included in unity lib (we do implement push notifications, so we kinda need to use it). But we DO NOT call them behind your back - so you should be good to go if you dont use them
     
  7. Ted-Brown

    Ted-Brown

    Joined:
    Oct 16, 2012
    Posts:
    33
    To David Foster and other app developers, since a fix to this (more-or-less) cosmetic issue isn't forthcoming, it might be best to warn clients ahead of time. It does not appear to stop apps from being approved.

    Alexey (and Unity at large): I hope you understand that this undercuts our customers' confidence. There may not be a technical issue, but it is certainly a business issue that reflects poorly on you.
     
  8. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    I did not appreciate getting this email when I submitted my app. I pay for a Unity Pro subscription and I'm happy with that but when you get this kind of email after you've submitted your app and have tried to dot your i's and cross your t's, it makes you wonder what's wrong.

    Isn't there some way you (Unity) can fix this? I have had a wonderful experience with developing with Unity but when submitting my app to Apple, I have had a few issues, including this one that have not been satisfactory.
     
    Last edited: Jul 8, 2014
  9. Graham-Dunnett

    Graham-Dunnett

    Administrator

    Joined:
    Jun 2, 2009
    Posts:
    4,287
    There's nothing wrong. Apple's review process (apparently) includes scanning your application to see what calls into iOS function it includes. Apple doesn't know that some calls are not made by your app. They have sent you an advisory email, which you are completely okay to ignore.

    Yes, we could build a gazillion versions of the Unity runtime library that excludes calls into iOS functions. We could then present you with a massive list of libraries and invite you to choose the one that has all the features you do need, and none of the features you don't use. We personally think that such a list would be massively confusing for the typical user. Since there is no harm from including calls that your app doesn't use we just have the one runtime which gets included into all apps.

    Maybe I am misunderstanding something, but I'm not sure how this advisory from Apple affects anyone's development credibility. Happy to be educated on this.
     
  10. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    I don't develop for anyone except our outfit. Because my app hadn't been approved yet when I got that email, it made me very nervous. But my app was approved. : ) I just put a little explanation in the App Summary explaining that I didn't use Push Notifications. Thank you for letting me know it would be inefficient for Unity to make a fix for this and explaining why. I'm OK with such emails now.

    Now I had a problem with Game Center when I tried to submit an update to our game to the App store. My build failed.

    I fixed the problem with Game Center by not switching Yes to No for Game Center in the Compatibility section of Xcode. Then made sure in the Build Phases that Gamekit was an optional linked library, not required. My build worked and my update is submitted. I got another one of those Push Notification emails on submitting my update but can live with it.

    I would rather not have a massive list of libraries to deal with and am very happy with Unity. : )
     
    Last edited: Jul 28, 2014
  11. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,363
    Hi Graham, I think we understand that Unity doesn't want to make a gazillion different versions of Unity.

    However, it would be nice somewhere to warn users that you will get these emails and what to do (or not do) about them. Information is key.

    Is there such a place which tells people about these emails? Perhaps a wiki would be a good idea where people can add their solutions to such problems.

    I also had the problem with what to do with Game Centre. Following advice from a different forum I switched game centre OFF but then manually added game kit to the list of libraries as REQUIRED. It's a black box situation in that I have absolutely no clue if my app will now get rejected.

    I suppose I'll find out in 7 days. (Only 7 days of revenue down the drain if it fails.) Please can you talk to Apple about these 2 issues: Game Center and Push Notifications. Other than that and the missing Default-568h@2x.png warning , the "validate project settings warning" and a few memory leak warnings which I ignored it seemed to go OK. Oh, except that I had to add missing icon-120.png, icon-76.png and icon-152.png for iPhone4. But apart from that....

    Mostly it was getting jumping though Apple's incredibly complicated provisioning/AppID/certification loops that was the hard bit.
     
    Last edited: Aug 13, 2014
  12. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    I left game center On in Compatibilities but made sure it was Optional in Build Phases subsection Link Binaries with Libraries and did not fix anything I was prompted to fix. That worked for me.
     
  13. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,363
    Ah but did you have Game Center capabilities ON or OFF in your AppID? i.e. Did you have a individual AppID or a wildcard AppID?
     
  14. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    I had an individual AppID and Game Center is grayed out. I can't turn it off it seems in the AppID area. So essentially it's on there.
     
  15. yoonitee

    yoonitee

    Joined:
    Jun 27, 2013
    Posts:
    2,363
    So, I turned game centre off and just added game kit to the library and it passed and is now on the App Store. So I guess either way works. Panic over! :D
     
  16. Catacomber

    Catacomber

    Joined:
    Sep 22, 2009
    Posts:
    682
    Congratulations! : )
     
  17. TokyoDan

    TokyoDan

    Joined:
    Jun 16, 2012
    Posts:
    1,080
    I'm not using Push Notifications either and I got that Missing Push Notification Entitlement email too. But before that, when I used the Application Loader, it game me this message:

    Maybe that has something to do with Apple thinking that Push Notification Entitlement should be enabled even when we are not using Push Notifications.
     

    Attached Files:

    • err.jpg
      err.jpg
      File size:
      18.5 KB
      Views:
      1,148
    ableRex_358 likes this.
  18. illustir

    illustir

    Joined:
    Dec 12, 2014
    Posts:
    24
    I don't understand how white-listing and black-listing this kind of stuff would be any more confusing to the user. It's not like Unity contains a lack of confusing options as it is. Adding something that you could Google and put somewhere shouldn't be that hard. I understand it complicates the build, but if an executable built from XCode can do it, building something from Unity to XCode should do it as well.

    Everybody on the team gets this e-mail which in larger and more heterogenous teams can be annoying and a bit silly to explain. It doesn't look particularly professional to say the least.
     
  19. jgnmoose

    jgnmoose

    Joined:
    Apr 1, 2014
    Posts:
    44
    I wouldn't call this a bug on Apple's end. They are scanning your API usage as you submit the build to the App Store. The approval process is famous for actually checking the what and how of what your app actually does, so this shouldn't be a surprise.

    There are a few improvements the default Xcode project that is generated could make. IAP is enabled, but Game Center isn't for example. That seems like a backwards default. Push notifications are a pretty deliberate feature when you use them; so could they not be enabled in the Unity build settings instead of being another default?

    On the same topic, please fix all the clang warnings, with pragma diagnostic push/pop if you need to. I understand they are harmless, but with hundreds of them it makes it a chore to find any actual things that need to be addressed.
     
    MrEsquire likes this.
  20. DarkSchneider

    DarkSchneider

    Joined:
    May 25, 2015
    Posts:
    12
    Hello, I think it could be fixed simply by some options in the player preferences for iOS, and mainly with "warnings" parts. It is not so much, start simply moving away this "push" problem, and in future the same with the problems it may appear.
     
  21. Piotrku

    Piotrku

    Joined:
    Nov 18, 2012
    Posts:
    14
  22. karmington2

    karmington2

    Joined:
    Jul 30, 2018
    Posts:
    8
    If you have Push Notifications nagging you, check your build folder : Builds/iOS/Classes/Preprocessor.h
    Will likely contain this line:

    UNITY_USES_REMOTE_NOTIFICATIONS 1

    either change that to 0 or go uncheck Unity->Edit->ProjectSettings->Player->iOS->OtherSettings->Automatically add capabilies.
     
  23. jordanmeir

    jordanmeir

    Joined:
    Jan 10, 2017
    Posts:
    2
    I found a solution,

    in Xcode edit file Entitlements.entitlements in root folder, if file not exist create a new one

    then add the aps-environment key and set value string "production" (it's good for production and development).

    example:



    <?xml version="1.0" encoding="utf-8"?>

    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">

    <plist version="1.0">

    <dict>

    <key>aps-environment</key>

    <string>production</string>

    </dict>

    </plist>