Phone Gap iPhone App itunes connect error “invalid binary” - iphone

I have created a phoneGap app for iphone and successfully deployed it device.
Now i am trying to upload the app to app store using xcode 4.5
Successfully validated.
Successfully Distributed.
itunes connect app status-- app received
after 3sec app status-- invalid binary
I am using phone gap 1.2.0, xcode 4.5, target ios version 6.0, Distribution provisional profile.
I have received email followup from apple
Non-public API usage:
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, toappreview#apple.com. For further information, visit the Technical Support Information page.
Somebody please help.

Apple Changed their policy on using the UDID. Which was included by default in earlier version of Phonegap API on IOS. If you upgrade to the newer versions you will find the code no longer uses the UDID and will pass App store.
Looks like from version 1.8 onwards is the change.
Latest version of phonegap is 2.7 so it would be good to update anyways,

Related

After application uses the same package name in AppGallery and GooglePlaystore, it is removed due to Google Play protection

Application is removed playstore by Google Protect.
Every release the version code from Huawei App Gallery is always higher than the version code in Play Store.
The new release version code in the Play Store will higher than the previous release version code in both Play Store and App Gallery.
But the rolling out percentage between the two stores is different. Not sure it would affect
Please help with another quick question. What will happen to App Gallery auto-update if we release the app in Huawei App Store with a different Keystore than the release in Google Play Store?
For the overwriting of each other from AppGallery and Google Play store problem, the root cause is the apps are using the same package name and the same signing key in conjunction with auto-update from both stores. When there is a higher version available from either store, the Android system would recognize it, download and update the app, which would cause overwrite.
The answer is actually in the second question. Using a new keystore for AppGallery would make the app different from the app from GPS from Android system point of view. Please use a new keystore for AG release, there will not be any overwritten problem once this update. Remember to update the SHA256 signature in AG for the new release.
This is a message displayed on Google Protect. We could not restrict the play protect. You can disable Google Protect on your phone manually.
In addition, Google Protect is a black-box detection, which is claimed to be an intelligent detection and may display a message for all apps that are not downloaded by Google Play.
Based on the warning message, this message comes in "Backdoor" category(refer below link).
https://developers.google.com/android/play-protect/warning-strings
Also you can refer the below link
https://developers.google.com/android/play-protect/client-protections#developer-appeal
So you can contact google support team regarding this.

How to Upgrade my flutter app without using Playstore or App store?

I have an app created for internal use. I have not published it on the play store, but I have to update it regularly.
Can anyone help...with which library should I use for implementing a self-upgrade system to my app. Any answer would be appreciated.
The answer is - yes,
You can upload your app to the Apple Store and Google Play but Not publish it to the public, instead, you can use internal testing
So only users that you define will be able to see or download your app in the Google Play and Apple Store
Google Play internal test https://support.google.com/googleplay/android-developer/answer/9303479?hl=en
Apple test flight https://developer.apple.com/testflight/
Yep it has some limitations, for example, Apple allows up to 10000 testers but I hope it's ok for your company, but its only way to share app internally without any issues on iOS (android allow you to download apps from anywhere, iOS don't)
The answer is - no, you can't do that - not at least the Flutter* apps. As #Abion47 said, you can publish the new APK and ask users to install it. If you app involves back-end then you can check the (client) mobile app version and display the alert if the version is below minimum version required.
On the iOS side, it is slightly more difficult. For internal use, the organisation needs to sign-up with Apple's enterprise program. You can then distribute the app internally.
*- I've seen certain apps downloads the zip (or whatever) file, and updates themselves without actually going through App update process via AppStore/Playstore. However, it is more of a web part within the particular app which gets updated. The app version as such remains same.

Apps are not permitted to access the UDID and must not use the uniqueIdentifier method of UIDevice

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.

App submission to App Store: Developer reject

I have submitted the binary file of my application to apple on appstore.
But I didn't configure the APP ID. Does it will affect my application for apple submission?
Should I do a developer reject and if I do that Can I upload the new binary ..?
Please reply me as soon as possible I don't want my application to get rejected by apple..
Rejecting your own app is a rite of passage, it won't hurt future submissions. Reject it, fix it, resubmit it.
Before your app can be reviewed, the following issues must be corrected:
Invalid Binary Architecture - iOS 3.0 introduced support for multiple binary architectures. If your binary is built for multiple architectures, your Info.plist must have a MinimumOSVersion key with a value of at least 3.0. Additionally, if your app is intended to support earlier iPhone and iPod touch models, your app must contain at least an armv6 binary; "thin" armv7-only binaries will not be accepted unless the armv7 required device capability is also present in the Info.plist UIRequiredDeviceCapabilities key or the MinimumOSVersion key has a value of 4.3 or higher.
For more information, see Technical Q&A QA1707 at: http://developer.apple.com/iphone/library/qa/qa2010/qa1707.html.
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 and then use Application Loader to upload the corrected binary.
This Solution will surely help you to upload your App on iTunes.
When you say you didn't configure the App ID, do you mean the Bundle Identifier? You can replace the binary once you reject it. Just note that a developer reject will move your app to the back of the queue

iPhone app rejected upon section 3.3.3 (but what does it mean?)

I made an iPhone application that displays a couple of pictures from the internet
where you can comment on (iPhone sms bubble style )
My app was rejected because of:
We cannot post this version of your iPhone application to the App Store
because it violates section 3.3.3 of
the iPhone SDK Agreement;
"Without Apple's prior written
approval, an Application may not
provide, unlock or enable additional
features or functionality through
distribution mechanisms other than the
iTunes Store."
If you would like to provide an
invitation-only pre-release version of
your application to a group of
friends, then we encourage you to use
the Ad Hoc application distribution
method. Please go to the Distribution
Tab in the iPhone Developer Portal for
complete information on Ad Hoc
distribution.
But what does it mean? I surfed a little on the internet and found out that this covers applications that have similarity to applications by Apple?
Does anyone have experience with that? And know how to solve this issue?
I got official response from apple
The website component of the
application is currently not available
to the general public. If you would
like to provide an invitation-only
pre-release version of your
application to a group of friends,
then we encourage you to use the Ad
Hoc application distribution method.
Please go to the Distribution Tab in
the iPhone Developer Portal for
complete information on Ad Hoc
distribution.
Section 3.3.3
Without Apple’s prior written
approval, an Application may not
provide, unlock or enable additional
features or functionality through
distribution mechanisms other than the
App Store.
That means, for example, that you are not allowed to enable your application to download music or podcast files. Apple wants the owner of iPhones to use iTunes for that purpose.
You seem to violate that section since you're providing content from your site, even if you're downloading only pictures.
See this blog entry about the PodCaster app:
Podcaster quite obviously serves to
unlock a feature using a distribution
mechanism outside the iTunes Store.
This limitation would also include
apps that are designed to install
other apps independent of iTunes (such
as the Cydia jailbreak app - it’s not
in the Apps Store either), or any
other app that distributes song, TV,
or movie downloads or podcasts.
See also this answer here on Stack Overflow: Reasons for rejecting iPhone application by Apple store
Or they believe you used the open SDK to reuse the bubble control from the SMS app.
Can you post a screenshot?