I got this response from Apple when i submitted my App with Three 20.I did my project in Xcode 4 and used the latest version of Three 20 i.e. facebook-three20-726841e.
I already did the changes in other posts.
It got rejected again.
Our system has determined your app is using private or undocumented APIs:
The app references private or undocumented symbols
OBJC_IVAR_$_UITouch._locationInWindow
OBJC_IVAR_$_UITouch._phase
OBJC_IVAR_$_UITouch._previousLocationInWindow
OBJC_IVAR_$_UITouch._tapCount
OBJC_IVAR_$_UITouch._timestamp
OBJC_IVAR_$_UITouch._touchFlags
OBJC_IVAR_$_UITouch._view
OBJC_IVAR_$_UITouch._window
Please help me with this.
Thanks.
The non-public API that is included in your application is UITouch._touchFlags.
See if this helps http://cocoatouchdown.blogspot.com/2009/12/uitouchtouchflags-are-private.html
Also something useful about this http://groups.google.com/group/three20/browse_thread/thread/c442af6e39a918b0?fwc=1
Related
I have an application that uses HealthKit and Swift in it, everything compiles and runs fine when I test it from Xcode on a simulator or a device. I tested, debugged it, and submitted it to the iTunes store. When the application was approved I downloaded the new version from the store and it crashed right away. This was extremely puzzling as I have never had this issue before. I look at the diagnostic and usage logs on my phone and the crash report for the application says this:
Dyld Error Message:
Library not loaded: #rpath/libswiftCore.dylib
Reference from: /path/to/my/app
Reason: no suitable image found.
Did find: /path/to/my/app/Frameworks/libswiftCore.dylib: mmap() error 1 at address=0x100174000, size=0x0194000 segment=__TEXT in Segment::map()
Has anyone seen anything like this or know how to deal with it?
Thank you
EDIT:
The crashing issue magically fixed itself on the morning of October 4th, which tells me that this was an Apple issue. I have been emailing iTunes Connect Support, but they have not said one way or another what happened. I also opened a technical ticket without even a response back from Apple. This is pretty disappointing, not just for the fact that Apple is not being transparent about the issue, but also it makes me feel like I have no course of action later on down the road if this ever were to happen again.
Simply do the following two steps:
1) Delete the App from the device (or simulator)
2) Clean your workspace (CMD+SHIFT+K or via menu Product->Clean)
3) Build and run your app again.
Magically helps every time with all that startup / deploy stuff...
I also often get something like "application not found on device" or signing problems etc. Minutes before everything worked well.
This appears to possibly be a code signing issue on Apple's part, and the issue seems affect apps with embedded frameworks (including non-Swift apps). There are multiple accounts of developers being affected (myself included) who had only submitted an update, without changing any build settings. Some high profile apps appear to have been affected and tickets have been filed with Apple, but there has been no official response from them at this time.
EDIT: This has been confirmed.
Edit:
The app was rejected, after making this change, for the same reason, however, I am confident that the problem has to do with a missing architecture version in the libswiftCore.
I am going to post this as the provisional answer.
Xcode 6 Standard architectures exclude armv7s
Notice how the error says: Did find: /path/to/my/app/Frameworks/libswiftCore.dylib
So it did find the lib but it also says: Reason: no suitable image found.
After running lipo against the archived build it didn't contain armv7s in the swift library, or in the app binary. I manually added it per the link above and the binary now contains support for armv7s though the swift library still did not. My app is in expedited review so I should get feedback farily quick. I will follow up when that does happen.
I had the exact same problem with one of my app version updates (FunKeyBoard 1.1).
After doing some research, looks like it was an Apple side issue for many apps updated on October 3rd. Apple fixed the issue on October 4th by releasing an update, same version number, without needing any fix/re-upload from the app developer.
Obviously an Apple side issue, but I'm surprised Apple is very quiet about it. Many developers, including myself, got angry emails from users, and poor app reviews, as a result.
This error typically occurs when signing Swift apps with certificates that lack "OU" (Organizational Unit). All certificates created after the release of iOS 8 should have this. The simple solution is to create a new certificate to sign with.
For more details, see the official Apple comment here: https://developer.apple.com/library/ios/qa/qa1886/_index.html
It seems that my on the iTunes store is now downloading and opening as expected. From what I have been reading in the Apple Developer Forums, other apps are also working now too. I have not received any word from Apple on why this happened or what caused this. I opened up a technical support ticket with them and I also contacted iTunes Connect support and there is no
explanation or any information on this issue being resolved. This is pretty poor customer service on their part.
I had the same problem. I removed support for arm64 and added armv7s and now apple review team approve the app.
Will you please help me to fix this below mentioned issue getting from Apps store
Apps are not permitted to access the UDID and must not use the
uniqueIdentifier method of UIDevice. Please update your apps and
servers to associate users with the Vendor or Advertising identifiers
introduced in iOS 6. If method names in your source code match the
private Apple APIs listed above, altering your method names will help
prevent this app from being flagged in future submissions. In
addition, note that one or more of the above APIs may be located in a
static library that was included with your app. If so, they must be
removed.
If you think this message was sent in error and that you have only
used Apple-published APIs in accordance with the guidelines, send the
app's nine-digit Apple ID, along with detailed information about why
you believe the above APIs were incorrectly flagged, to
appreview#apple.com. For further information, visit the Technical
Support Information page.
Once these issues have been corrected, go to the Version Details page
and click "Ready to Upload Binary." Continue through the submission
process until the app status is "Waiting for Upload." You can then
deliver the corrected binary.
Find the class that use the UDID by
(by terminal in the project directory)
find . | grep -v .svn | grep "\.a" | grep -v "\.app" | xargs grep uniqueIdentifier
you find the classes that use UDID then replace it and use UUID or replace it by new class if you are using external classes
Use of the device's uniqueidentifier property in apps was deprecated in iOS 5.0 and forbidden in iOS 6 apps as of 1 May 2013. Instead, you can use the identifierForVendor property available in iOS 6.0. Apple changed the API to address privacy concerns.
My problem with this was due to the adMob library. It was fixed in adMob SDK 6.4.2. From Google:
The AdMob SDK for iOS utilizes Apple's advertising identifier (IDFA).
The SDK uses IDFA under the guidelines laid out in the iOS developer
program license agreement. Developers must ensure they are in
compliance with the iOS developer program license agreement policies
governing the use of this identifier.
I'm having this issue too. My project was being built using Unity 3.5.4 and using 3 different plugins.
I created an empty iOS project using unity 3.5.4, built xCode project, attempt validation: fail. Then I built the xCode project using 3.5.7 and validation was successful.
That empty project had no plugins in it so it's not any plugins fault.
One of my plugins only worked with Uniyt 3.5.4 so now I'm trying to get an updated version of that plugin that works with 3.5.7 in order to submit the app.
Admob and ShareKit + Facebook were both the culprit for me.
I just got the same email after submitting our Tinyview app to the Apple App Store. We don't use UDID directly but it's possible that it's being accessed by a library we include, e.g. Google Analytics.
Admob 6.4.2 seems to work just had the same problem and now is solved... try to get it from here: http://dl.google.com/googleadmobadssdk/googleadmobadssdkios.zip
If you're using HockeyApp, remember to either remove the code that checks if the app needs to be updated, it uses the default UDID.
Even better wrap it in some preprocessor directives so that it is included in your ad hoc builds, but not your production builds.
I have recently tried to submit an iOS app to the Apple Store and it triggered the following warning:
"The app references non-public selectors in My_application.app/My_application: productName"
I have seen prior questions asked in stackoverflow in these links but there has not been any concrete answers to whether or not this causes the app to be rejected.
iTune, App upload warning. App references non-public selectors in : productName
The app references non-public selectors in Payload
In my app, I have built it using Cocos2D 2.0 and Chartboost 3.1.1, FacebookSDK 3.1.1.
There has not been any additional 3rd party APIs integrated into the app.
Has anyone encounter a similar problem using the above mentioned SDKs?
Has anyone had their app rejected because of the warning above?
Please share your experiences so I might be able to rectify this problem within my app.
Thanks so much.
Just submit it to app store, it working for me 3 times. The problem sometimes happens when Apple has changed for new iOS version.
I have just uploaded an app and Application Loader has given me this warning. I went on to see what does this mean and found that I am using some third party APIs due to which it might get rejected. Can I know due to which library or which code is it saying like this?
Also, is my app really gonna get rejected for sure? I don't wanna wait for 10-12 days and then know that my app got rejected. How do I confirm this thing that it won't or would get rejected in a shorter time?? Please help.
Okay got the answer myself. The Flurry SDK which I was using was an older Version V2. When I updated to V3 and the problem is resolved. Anyways thanks. :)
p.s You can check if your Flurry is outdated by checking your header file. If it says, FlurryAPI.h it is V2 and if it says FlurryAnalytics its V3.
You must be using some undocumented method in your app.
My iPhone app was rejected with the following note:
The following non-public APIs are included in your application:
Spi Symbols
__memset_chk
__memmove_chk"
These symbols appear in a small number of apparently cocos2d related object files:
Grid.o
Primitives.o
TextureAtlas.o
Curiously, this app had already been approved under the previous SDK, but under 3.2 it's being rejected, though that may have nothing to do with it.
I'm not at all sure how to resolve this and appreciate any help anyone can offer. Thanks.
If cocos2d is using non-public API, I would suggest you first check if there is a newer version available that fixes this issue.
If you are already using the latest version then you should file a bug report with the cocos2d project and hope for a quick fix.