I'm looking to try to write an app to help my wife out with moving some data around into HealthKit.
Is there a way I can use Xcode and/or Xamarian to gain access to the HealthKit SDK without having the App ID or how can I create an App ID without spending the $99? I'd like to experiment first without paying up.
Go to Xcode Preferences, click on accounts, and add your apple ID. Do not sign into the developer website. If you have, save the XCode file somewhere and delete the XCode APPLICATION. Redownload from the Mac Store and as soon as it starts, open preferences and add your Apple ID.
Related
I'm developing an iOS app in Xcode 12.2 for a client.
The client does not have an Apple Developer account yet, so I'm using the Testflight of my own account to test the app with the designer.
The app uses AppGroups, let's say I have a group named "group.com.myorg.appname".
I'm also using CoreData, and will implement NSCloudKitContainer very soon.
My question is:
Once the client has purchased a developer account, can I easily delete my version from my Testflight, and then add it to the client's Testflight, without issues?
For example, do I have to change the AppGroup identifier? And is this a problem for iCloud?
I have read this answer which contains lots of good information, but didn't allow me to be sure about iCloud or the AppGroup identifier. This was also very useful but incomplete. I've also read information about app transfert, but in my case the app is not published, it's just in Testflight, there's no publishing before moving to the client's account.
If you do not want to lose the IDs, the safest option is the transfer the app to the new account rather than deleting it. If you have push notification certificates, these would need to be regenerated on the new account. However the same goes for the App Groups. You will need to delete it from your old account to release the ID and make it available for the new one. There shouldn’t be issues doing this since it is not launched yet. https://developer.apple.com/forums/thread/70297
I have a requirement wherein I should not allow the user to install my app in more than 1 device. This is an enterprise application and I distributed this using Enterprise developer account. Based on the Google search I use IdentifierForVendor to get unique device ID, but this doesn't seem to work now as when the user uninstalls and installs the new/same version of the app in the same device again, it returns new DeviceID. Now I am back to my old question - How to find a DeviceID for IOS?
What I think is a possible approach is to deactivate the DeviceID when the user uninstalls the application. But I am not sure how to achieve this as there are no cycle/function calls when the app is uninstalled.
Apple documentation says if all the apps from the same vendor is uninstalled from the device, then at the time of new installation of any app from that vendor will take new IdentifierForVendor.
So I would suggest store this unique id in Keychain and whenever you open the app check if there is any unique id stored in keychain if not then generate one and keep it there.
If app in uninstalled also , the key will be still there.
After you re-install the app , when you access the key in keychain it'll be still there.
This way you can achieve your objective of uniquely tracking a device.
Talking of keychain , it's worthwhile to take a look at Xamarin.Essentials Nuget.It provides many cross platform features including keychain.
Hope this helps.
I want to know what issues gives me Firebase if I transfer an app from one apple developer account to another developer account?
Do I need to modify something on firebase portal?
The bundle ID never will be modified.
Nothing, just make sure to transfer over the GoogleServiceInfo.plist it made you download in the first place if it's a new project, otherwise just leave it as is.
all you'd be doing is changing the developer account its working from
When going to transfer my iOS app to another developer, I got this message
You can't transfer this app because of the following reasons:
iCloud enabled
You can only transfer apps that aren’t iCloud enabled.
Deleting and Transferring Apps Documentation
The documentation states:
Make sure the app uses only technology and content that can be transferred.
No version of the app can use an iCloud entitlement.
Since a version of my app used iCloud, is there literally no way I can transfer it? If there is a way, how should I proceed?
The app must be deleted and re-created with a new SKU/Bundle ID.
Remove the app from sale by going to Pricing > Select Territories > Deselect All
Delete the app under More (to the right of Prerelease, Pricing etc) > Delete App
Create the app under the developer account as a new app with the same name with a new SKU/Bundle ID.
This will delete any reviews/ratings, gamecenter data, iCloud data, and any other data linked to that app. You'll have to recreate any in app purchases you had.
WARNING: Never use iCloud Entitlements in an app. It's not worth it because it makes your app untransferable and therefore unsaleable forever!
I had enabled iCloud entitlements in some previous build to play around with NSUbiquitousKeyValueStore, and now I can never transfer that app... This is so so so very bad. I have an Android version of the app, ran into no issues with Google Play.
Same here. I was just using NSUbiquitousKeyValueStore to allow the user to share some settings across devices. Now all my users who paid for the app will not receive any more updates, my 4.5 star ratings will be gone, etc. I am super frustrated and this will cost me a lot of money.
I have written an article about his on medium.com, so feel free to share it in your professional networks if you feel this could help fellow developers to not run into this trap.
For June 2022+: Apple has updated the rules in 2022. Now you can transfer your app the regular way even if it uses iCloud. They write about limitations in their documentation now in "Apps Using iCloud" paragraph.
I'm facing some problems with uploading an iOS application to the Apple store. For the very first time, I uploaded and submitted my iOS application and it was rejected by the Apple team. They mentioned that they want authentication for my application, so I put authentication and uploaded my binary again. It was rejected a second time. This time they mentioned that I need to put authentication in my application. That's when I realized that my application is not getting updated.
The first time I made changes, I used the Organizer in Xcode to upload my binary (navigate to Organizer -> Archives. Then validate first and distribute).
The second time I made changes, I used the Organizer to upload my updated binary again.
However in all cases my binary is not being updated. How cam I fix this problem, it is a real headache for me.
Thanks.
You need to supply that authentication data within the iTunesConnect review information. There are specific fields named
Demo Account Information
and
Review Notes
Fill in that account information within that first field.
Try to check the archive date in Organizer before you submit binary to App Store. When ever you make any changes to app Archive it again to reflect changes on your binary. Otherwise your binary won't reflect changes you made on code.
Apps that are “beta”, “demo”, “trial”, or “test” versions will be rejected. If you use any word related to these in the content , name etc. will be rejected.
Secondly Pay special attention when you are using any social networking site information in your app. e.g suppose if you got many permissions from Facebook but you are not using that information in your app your app will reject. So be precise while using permissions from social networking sites.
Apple once rejected my app because i violated the iCloud deal of unpacking 2MB data from app bundle into the file system. So for downloading data more than 2MB should not create any backup. For this you can use non-user data, cache storage or mark it with “Do Not Backup”.
Hope that helps!!