Non-public selectors
Asked Answered
T

4

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

Tana answered 11/9, 2013 at 7:58 Comment(3)
Does your app use any 3rd party source code/static libraries/frameworks which could be accessing these APIs?Creaturely
Check third party libraries if you have used.Voiceful
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??Tana
L
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.

Lafrance answered 13/9, 2013 at 8:18 Comment(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.Homosexuality
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.Thanasi
Has anyone actually been rejected for these yet for an iOS 7 submission? Or are they just warnings and we're ok?Nedrud
E
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

Edrisedrock answered 13/9, 2013 at 14:5 Comment(0)
L
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.

Lafrance answered 13/9, 2013 at 8:18 Comment(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.Homosexuality
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.Thanasi
Has anyone actually been rejected for these yet for an iOS 7 submission? Or are they just warnings and we're ok?Nedrud
R
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

Rockabilly answered 11/9, 2013 at 8:47 Comment(4)
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 whatsoeverTana
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 ...."Rockabilly
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.Tana
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 warningTana
H
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

Homosexuality answered 21/9, 2013 at 4:18 Comment(1)
Can confirm this issue is fixed in 1.5, I no longer get the warning.Oculomotor

© 2022 - 2024 — McMap. All rights reserved.