Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

Non-public selectors

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

like image 577
ngzhongcai Avatar asked Sep 11 '13 07:09

ngzhongcai


3 Answers

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

like image 112
user1971035 Avatar answered Oct 13 '22 02:10

user1971035


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.

like image 23
Jin Avatar answered Oct 13 '22 01:10

Jin


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

like image 3
Calin Chitu Avatar answered Oct 13 '22 01:10

Calin Chitu