5

Got the following warning when trying to validate my binary. "The app references non-public selectors in Payload/app.app/app: cache, decoder, hasPhotoType" Problem is I don't know how to get to "Payload/app.app". Pretty sure I am not using "hasPhotoType" anywhere in my codes, ie, I cannot locate "hasPhotoType" using Xcode search functionality.

Strangely, I am not getting the warning error when I am in normal window. Only when I tried to "validate" the binary, then I get the above warning

ngzhongcai
  • 1,243
  • 2
  • 20
  • 30
  • Does your app use any 3rd party source code/static libraries/frameworks which could be accessing these APIs? – Amar Sep 11 '13 at 08:04
  • Check third party libraries if you have used. – Iducool Sep 11 '13 at 08:04
  • I tried searching for "hasPhotoType" using the search functionality, but to no avail. My suspicion is that this is used in either Facebook SDK or Google SDK, where the textual codes are wrapped in bundles?? – ngzhongcai Sep 11 '13 at 08:27

4 Answers4

6

I am 95% certain that it is from the Google Maps for iOS SDK. I filed a bug report, please help star it: http://code.google.com/p/gmaps-api-issues/issues/detail?id=5817

user1971035
  • 323
  • 1
  • 4
  • 9
5

I had the same problem after building my app for iOS 7 by Xcode 5.

"The app references non-public selectors in Payload/app.app/app: cache, hasPhotoType"

There is no such thing as 'hasPhotoType' in my code anywhere, but I am using Google Map SDK for iOS which is the only non-Apple library that exists in my project. I removed the framework, rebuild the app and it passed validation without any warnings.

Hope this information could help you.

Jin
  • 146
  • 1
  • 3
  • I'm using Google Maps SDK too, and I got warning of "non-public selectors in Payload/App.app/App: cache" no "hasPhotoType" though. – Jing Sep 14 '13 at 05:16
  • 1
    Im getting the hasPhotoType warning in version 1.4.2. I downgraded to older versions and got other non-public selector warnings though. From what I can see versions of Google Maps SDK as far back as 1.1.2 are failing Apple validation on iOS 7. – Brian Boyle Sep 14 '13 at 08:45
  • 8
    Has anyone actually been rejected for these yet for an iOS 7 submission? Or are they just warnings and we're ok? – Parrots Sep 17 '13 at 02:51
3

go to your project folder in terminal and type:

$ find . | grep -v .svn  | grep "\.a" | grep -v "\.app" | xargs grep hasPhotoType

Source of inspiration from here:

App rejected, but I don't use UDID

Community
  • 1
  • 1
Calin Chitu
  • 1,099
  • 7
  • 13
  • I tried, but no results found. 1) Go to project folder, cd app, 2) then i punch in the followiing string, find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep hasPhotoType.... But no results whatsoever – ngzhongcai Sep 11 '13 at 08:59
  • try first with: find . | grep -v .svn | grep "\.a" | grep -v "\.app". It should return a list of .a files. If not, you are in the wrong subfolder. If yes, change the last part with "xargs grep -v ...." – Calin Chitu Sep 11 '13 at 09:05
  • I wait for Apple to reply. Tested following on, find . | grep -v .svn | grep "\.a" | grep -v "\.app", on 2 folders, 1.project folder, 2.libraries folder, both returned a list of .a files. Following which, I tried find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep hasPhotoType on both folders. Nothing returned. – ngzhongcai Sep 11 '13 at 09:30
  • Strangely, I am not getting the warning error when I am in normal window. Only when I tried to "validate" the binary, then I get the above warning – ngzhongcai Sep 11 '13 at 09:32
2

For people land this page by searching, this issue has been fixed in the Google Maps iOS SDK 1.5

Version 1.5 - September 2013 Features

This release officially supports iOS 7, and requires iOS 6.0 or later (iOS 5.1 is no longer supported).

V 1.5 download link: https://dl.google.com/geosdk/GoogleMaps-iOS-1.5.0.zip

V 1.5 Release note: https://developers.google.com/maps/documentation/ios/releases

Community
  • 1
  • 1
Jing
  • 1,905
  • 2
  • 17
  • 25