Push Notifications Certificates Question - iphone

Push notifications are not working for the App Store version of my app, while the development version does work. After spending an hour looking through my code, I realized that it's probably the certificate I am using to sign my app! Before, I was using a wildcard App ID to generate a certificate (com.Apple.*). If I use the correct App ID, do you think it would start working? Again, everything works with the development certificate. Thanks for your help!

You'll need a fully qualified provisioning profile to add push notifications to your App. If you switch to the correct App ID, your notifications should work fine. Remember though, to make sure the App IDs & bundle IDs match exactly.

Related

Publishing update of the app to App store

I have to push an update of app (I got the source code from the client and done some minor changes). I asked client for Apple dev login credentials but he is not willing to give me(it's obvious) however he asked me what info do I need from him. I know that I have to use the same distribution profile for creating the IPA. What else do I need from him in order to build the binary? e.g. Distribution Key in Keychain access etc.
Thanks
As your client don't want to provide Apple dev login credentials so it's not possible form your side. Because when you will going to submit your app you need to login to iTunes Connect.
So better I'll suggest you to submit you code to client and give him instructions (from installing xCode to uploading app) to upload your app as a new version.

Persistent device identifier even after app gets uninstalled

In my iPhone/iPad app's use case, there is a voting system and one device can send its vote once to the server. Therefore my server needs to identify user's device. I don't want the user to register an account because that makes the app complicate. However, I couldn't find a solution that works.
UDID is deprecated
I presume getting MAC address will get your app rejected by the app review process
I tried creating my own UUID using [[NSUUID UUID] UUIDString] and then storing it using NSUserDefaults, but the settings disappear if the user uninstalls the app
identifierForVendor is also reset when the user uninstalls the app
I considered advertisingIdentifier but because I'm not using it for advertisement, I presume it will also be rejected by the app review process
I'm not asking for a bulletproof solution in every situation. Just a solution that works even if the user uninstalls the app. Because I can generate my own UUID, I guess my question boils down to: How I can save data for the app that survives app uninstallation?
However if any of you have other approach, please feel free to inform me. Thanks.
Save the UUID into the keychain.

iOS XCode & Code Signing

I am currently about to start work on an iOS app for somebody but they have there own Apple Developer account which they would like to us. How do I go about setting my MAC up so that I can use their account to build, develop and test their app on my Devices?
I am assuming that I will need to create a separate user account on my MAC. I have done this but when I try to install the certificates that they have created I get errors such as "Valid signing identity not found".
Why could Apple not make this process simple, I am always having to refer back to the documentation and still get confused just to start creating a new app!
You do not have to create a new user account on your Mac for this, but I know some developers prefer to have separate accounts when they are working with more than one developer account, for ease of development & distribution provisioning profiles.
If your client adds you (by Apple ID --> email address) as a team member to their account (assuming their account belongs to a company and not an individual) then you can start the development process by requesting and later receiving a signed development certificate. You'll then also need the required provisioning profile(s) to develop/distribute builds of the app.
No, you won't need to create separate account. Xcode provide the facility to use several provisioning profile and certificate at the same time.
For more information check this thread - Multiple Certificates/Provisioning Profiles in one Xcode organizer?
First of all you don't need to create new account on your Mac to develop iOS application. In Xcode 4 it become very easy to start developing and signing application. All you need to do is go to Organizer (most right button on Xcode toolbar). In Provisioning Profiles section you can see Refresh button on the botoom of the screen. When you click it ask you about your developer account information such as account name and password. Then it tries to install all profiles and certificates to your Mac automatically. Then you could select your profile and sign your app. If automatically install fails, check yourself that you download all you need for this.
Create keys on your mac and submit to Apple.
Download your certificate and WWDR certificate. Two!!!!
Add your device to the devices section and create Development certificate (Distribution as well ). Download it manually or via refresh in Xcode Organizer.
Hope it helps. Sergey!
Once you have your Apple Developer Account Credentials, You can follow gist I have created:
Apple's Code Signing Process

Release ad-hoc ed expired provisioning

sorry for my bad english but i'm italian.
I have to release an app that will work on only a few devices. What should I do when the provisioning profile expires? Will the app continue to work or should I release it again with the updated profile?
thx all
No the app will not work after the mobileprovision expiration date. You need to renew your mobile provision, build again and sign the app with new certificate and resent to users the new mobile provision file and the new app.
Edit:
You can submit for an enterprise account an you will not have this issue again.
Not sure what you're really asking, but here is a quick answer with some points that might help you.
Ad hoc provisioning profiles last for 1 year. After a year the certificate is invalid and the application won't work any more. At this point you will have to create a new certificate (usually just renew the certificate will work) and re-release built against the new certificate. This will mean that anyone using the application this way will have to remove the app from their device and install the new package you send them.
When you release an application on the app store the certificate is permanent, you don't have to renew anything and apple will deal with it itself.
If you archived it, all you need to do is create a new .ipa (by selecting "Share" in the organizer) and sign it using the new profile.
If you didn't archive it you need to build it again and you'll need to reselect the code signing identities in the project settings.
Either way you need to send a new build or a re-signed archive to your testers, the new profile alone won't work.

Uploading an updated version of app to the store with new app id

Our app is already there in app store. We now have integrated push notification support to our app and this requires new app id to be created, because our existing app id has got asterisk symbol in it. To enable push notification, app id should not have asterisk at the end, instead it has to have an unique name. So we decided to create a new app id which has got push notification enabled.
But if we do so, will we be able to upload our app as an update to our existing app which is there in the app store?, or our new submission will be considered as a new app? or what other problems we will be facing?
Thanks in advance!
We've gone through similar issues, and I'd like to put a disclaimer here that we don't actually have anything released yet, but we were able to use the same bundle identifier with a new app-id and a new provisioning profile, and it did overwrite the old app on the phone that had the old version.
I don't think the changed app-id will make a difference After all, if you have 10 different apps using the asterisk ID, they are still considered 10 different apps, so the app-id is probably more specific to the signing end. The Bundle-id is what determines the app's identity on the device itself, and so I think it's the same in the app store.