Is it possible to generate a binary via https://build.phonegap.com/ which will be ready for submission in the App Store?
I don't want to do it through Xcode but only via "PhoneGap Build". The FAQ and press release state that it is possible:
Quickly and easily get back app-store ready apps for multiple platforms,
including: *Apple iOS*, Google Android, ...
So, I have successfuly built and tested my app on both android and ios. In addition I have successfuly built a release ready version for android store (google play) and submitted.
My problem is that I cannot seem to be able to do the same for App Store. While trying to submit with the Application Loader I get:
Application failed codesign verification. The signature was invalid,
contains disallowed entitlements, or it was not signed with an iPhone
Distribution Certificate
Unable to extract entitlements from application:
/var/folders/vr/ghc8p.../T/APPNAME.ipa/Payload/APPNAME.app/APPNAME
Note that I did use the distribution certificates for building the .ipa from PhoneGap Build
Any idea where I should look next?
It turns out that it was a PhoneGap Build bug. The old certificates seem to have been cached. I deleted the application (in PhoneGap Build) and all my certificate configurations. I created a new application and a new certificate configuration with the last good distribution certificates that I had previously used when I posted the question.
The build was successfuly accepted from the Application Loader.
So this was a PhoneGap Build bug.
Related
We have a series of iOS Enterprise applications that were built with Telerik Cordova (discontinued in May 2018). Those apps are in the process of being converted to a new platform, but in the mean time they must continue to service client needs.
The distribution certificate the apps were built with is valid for another 14 months or so, but the provisioning profiles expire in a few days. Since these are Enterprise apps they will expire with the profiles.
Unfortunately, Telerik can no longer rebuild the apps using an updated profile for us. We have re-signed the apps using new provisioning profiles (using both iReSign and Terminal). When we try to side-load the resulting IPAs through the XCode Devices panel, we get an error stating that the entitlements do not match and the apps are not installed.
The question was raised as to whether or not we not need to re-sign the apps since the certificates are still valid. Perhaps it would be possible to just replace the .mobileprovision file on the device somehow? I gave it a try using iTunes Sync but I cannot confirm whether the file actually went to the device or not.
Question: Is it possible to just update the *.mobileprovision on the device without re-signing the app? If so, could someone please give me the steps or direct me to a link to perform the steps?
Alternate Question: Otherwise, any thoughts on how to resolve my Entitlements issue? The app only needs Push Notifications, but Game Center and In-App Purchases are also enabled. These are reflected in the App ID and provisioning profile, and the distribution certificate is of type Apple Push Services.
I should point out that I am not an admin on the Apple Developer portal for the project as I am an outside consultant, so my portal access is strictly read-only.
Thanks in advance for any direction provided!
If the applications were distributed to the devices by an MDM, then you can push a new provisioning profile to them using the MDM.
If the applications were installed over the air from a web server or directly using iTunes or Apple Configurator, then you need to replace the entire application package on the device. This requires the app to be re-signed, since the changed .mobileprovision file will change the package signature.
If you don't have the original, app ID with matching entitlements in the developer portal, then you will need to delete the existing application from the device before installing the new, re-signed application. You won't be able to do an in-place upgrade.
I'm building an HTML5 app with phonegap and adobe phonegap build. I've gone through all the steps I believe are necessary to test my app on my device, but I'm still getting an error upon install from phone gap website:
"Unable to download App {app_name} could not be installed at this time".
I've gone through the following list to upload this app to phonegap:
Created a CSR file as per directions here
Created an iOS developer certificate using the CSR file
Added a device to my developer profile by adding the UUID of my iPad on the apple developer website
Created a development mobile provisioning file again on the apple developer website
Signed my app with p12 file and provisioning file on the adobe phonegap build website.
Can anyone spot anything I've missed? My app works with no problems when run on iOS emulator.
Hopefully this question can serve as a guide for others, it seems to be a fairly lengthy process to get this sorted.
Check the UDID included in your provisioning Profile, if it is same as that of your device being displayed in iTunes, UDID is a very secure property of your iDevice, kindly do not trust any third party apps other then itunes for accessing the UDID of iDevices
When we try to upload a new version of our app to Apple's App Store we get the following error in Application Loader:
ERROR ITMS-9000: "This bundle is invalid. New apps and app updates submitted to the App Store
must be built with public (GM) versions of Xcode 5 and iOS 7 SDK. Do not submit apps built with
beta software." at SoftwareAssets/SoftwareAsset (MZItmspSoftwareAssetPackage)
We are already building with the latest available version of Xcode, 5.1.1 (downloaded from the Mac App Store) and v7.1 of the iOS SDK (which came with Xcode 5.1.1).
Our app is built with Marmalade 7.2.1. We've tried rebuilding all of the EDK extensions and static libraries that our app uses.
What could be going wrong? Is there anything more anyone else can tell us about the error to help us track it down?
Starting May 15, 2014, new apps and app updates submitted to the App Store must be built with Xcode 5.1.1
You have to update your xcode.
Just clean all the things.
Check the developer/distribution certificate and mobile provision profile properly created, if not then revoke them from developer account and create all new one.
Remove all profiles from /Users/yourSystemName/Library/MobileDevice/Provisioning Profiles
Now, Export all certificates and keys from your keychain and Save them as backup for using them again.
Now install your developer/Distribution certificate first and install provisioning profile. And upload your application. This is tested way and should resolve your issue. Thanks.
When Xcode creates an .ipa package, it adds a number of elements to your project's Info.plist.
As our package is created with Marmalade's deployment tool, these elements need to be manually included in an Info.plist that is copied directly (with a much smaller amount of pre-processing) into the final .ipa.
Marmalade includes a standard Info.plist file within its installation for this purpose. However, you can override this, and we had done so by making a copy of their file, and updating it with changes we needed to make.
A later version of Marmalade made some changes to this file, and we hadn't copied these over into our file, and the difference is apparently what was causing the App Store to think that the App was built with an earlier version of Xcode than the version actually used.
The values which differed were DTSDKName, DTSDKBuild, DTXCode, DTXcodeBuild, DTPlatformBuild, and DTCompiler.
We have an existing app in the Apple store. I'm using PhoneGap Build to completely rebuild and replace it, rather than providing this PhoneGap Build app as a new app.
The kicker is the certificate, provisioning profile, and private key that Apple requires. We have all of this for our current app, and I'd like to use it in the new app. I made sure to make the new app bundle id the same as the current one.
I created a new development provisioning profile for myself, using the old certificate. If I upload all this to the new app with PhoneGap Build, it builds fine with no errors. But if I download it to the iPad or attempt to use it with the iPhone simulator on our Mac, it either won't install (iPad) or crashes when opening (sim).
I expect it's a signing problem, but all my attempts have failed and I feel in over my head. So here's the question: how do I use our current certificates, etc., with the new app? Is it possible? Can I create new dev/dist certificates and still update the current app in the Apple store?
Finally figured this out. I used the console in the iPhone Configuration Utility (iPCU) to watch the iPad as the app installed.
Turns out the iPad wasn't added to the Provisioning Profile, as I had thought it was. I created a new provisioning profile, adding my new dev certificate (another issue happening at the same time), and ensuring the iPad's UDID was included.
The PhoneGap Build app installs now, and it's not a signing problem.
I'm getting ready to upload my Mac application to the Mac App Store, I've created the Application certificate and the installer certificate. When I go to validate my app, Xcode says the app has been validated and is ready to upload to the store. Every time I upload my app to iTunes Connect everything goes smoothly and the app uploads. Then the problem starts, in iTunes Connect my app state is listed as "Invalid Binary" and I receive an email from iTunes Connect saying my app was improperly signed. I really don't think I'm doing anything wrong. Right now, I have the project and the target in my app code signed, is this necessary or do I just need to sign one of them? Also, I've been having a strange issue that when I code sign the target my app builds but it doesn't run. It does not cause any error though. When only my project is signed, the app runs normally. I'm pretty confused on all of this so any help would be greatly appreciated. This is my first App Store submission so I'm excited to get an app up for sale.
Thanks for your time,
Sam
Edit: Just tried uploading the app with application loader. It uploaded to iTunes Connect but I still get the same invalid binary error. Also, I shared my archived application as a .pkg and tried to install it. I got an error saying that "This application cannot be installed on this computer". Any idea why this would happen?
You can do a:
codesign -dvvv *.app
on an app bundle directory from the Terminal command-line to see how the app you are trying to upload is signed.
Any Target setting overrides the identical Project setting for that target build. You should use a different build configuration for Distribution than for Release or Debug and running the app.