Skip to main content


Developer account:

Register device UDID:

App Store Connect:

How to check or set the minimum iOS supported version: With an ipa file, you can unarchive (it's a zip) you'll get an .app file. Right click to the .app file to show it's content. At the Info.plist, check the field MinimumOSVersion.

DevCleaner for Xcode:

Change bundle id:


simctl commands: xcrun simctl or xcrun simctl help

List simulators: xcrun simctl list devices

Start a simulator: open -a Simulator --args -CurrentDeviceUIDI <simulator UDID>

Delete unused simulators data in ~/Library/Developer/CoreSimulator/Devices to free up disk space: xcrun simctl delete unavailable. From


Images are located in ~/Library/Developer/CoreSimulator/Devices/81F9EF8A-486B-4F85-8BED-7131C2EF0500/data/Containers/Shared/AppGroup/D97F65BC-4921-486A-B89D-9A6ADA5DFC34.

Get a simulator ID: xcrun simctl list | egrep '(Booted)'

Move an icon from one screen to the other:

Add files or images:

Real iPhone

Enable developer mode (required to install an app):

You need to sign the app with an ad hoc provisioning profile that includes your device UDID, see Distribute to registered devices (iOS, tvOS, watchOS)




Public (visible on the store)versionName - A string ("1.0")CFBundleShortVersionString aka version or marketing version
PrivateversionCode - An int (1)CFBundleVersion aka build number - Can be a single digit (1, 2, 3...) or "1.2.3", or even ""

Similar to Android's versionCode, the build number also needs to increase, although you can have the same build number for two different versions.

If you upload a build to the App Store with a build number that already exists for that version, you get this error:

ERROR ITMS-90189: "Redundant Binary Upload. You've already uploaded a build with build number '1' for version number '1.0'. Make sure you increment the build string before you upload your app to App Store Connect. Learn more in Xcode Help ("

See what values to set here:

Xcode shortcuts

  • Build: ⌘ + B
  • Run: ⌘ + R
  • Clean Build Folder: ⌘ + ⇧ + K
  • Stop: ⌘ + .

App Store

Registered devices:




CredentialLimit Per AccountApp-specific?Can be revoked with no production side effects?Used at...
Distribution Certificate2Build time
Push Notification Key2Run time
Provisioning ProfileUnlimitedBuild time

Test push notifications on the simulator


Create a file pushtest.apns:

"Simulator Target Bundle": "<bundle identifier of the app>",
"aps": {
"alert": "Push Notifications Test",
"sound": "default",
"badge": 1
xcrun simctl push <simulator identifier> <bundle identifier of the app> pushtest.apns"


Supporting associated domains -

The apps in the apple-app-site-association file on your website must have a matching Associated Domains Entitlement.

Validate apple-app-site-association:

Example of AASA file:

Test deep links with xcrun (only works on the simulator): xcrun simctl openurl booted ""

Test deep links with uri-scheme: npx uri-scheme open "" --ios

apple-app-site-association examples

"applinks": {
"apps": [],
"details": [
"appID": "",
"paths": [