If you have made changes to the source code by following our documentation here, you should now upload the app to the Apple Appstore as your own. Now, in order to be able to do this, you will need to enroll to the Apple developer program which you can do here. Once you sign up for the Apple developer program (which is not free and will require annual renewal), please allow for several days for a review before your developer account becomes active (you will be notified about this via email).
Once you have your Apple developer account all set up and active, first thing you will need to do is to register an iOS device to your account. To do this, while logged in to your Apple developer account, click Certificates, IDs & Profiles in the menu on the left and then on the next page, click Devices in the menu. On this page, click the plus icon which will bring the device registration form. In this form, from the Platform menu select iOS, tvOS, watchOS, in the Device Name enter whatever you want to call your device and in the Device ID (UDID) you should enter your device ID. To find your device ID (UDID), connect your iOS device to your computer and run iTunes, select your device within iTunes and then within the Summary click the serial number and it will display your device Device ID(UDID).
First, make sure that you're running Xcode on a Mac that is logged in to the iCloud with the credentials you have used when enrolling to Apple developer program. Now, within the Checkinera project in Xcode, navigate to Signing & Capabilities and from the Team dropdown menu, select your account. After that, in the field below, labeled as Bundle Identifier enter your desired bundle identifier. This identifier must be unique for every app on the Apple Appstore, so it is advisable to follow Apple's guideline and use reverse-DNS format. For example, if your website's URL is my-website.com then your bundle identifier should be com.my-website.checkinapp.
Next, make sure that below Bundle Identifier field there are no errors within Provisioning Profile and Signing Certificate. If there are some errors here, please refer to the solutions offered there.
Before we create an app, we should first make sure that the bundle identifier we have used for the app is listed in our Apple developer account. To do this, log in to your Apple developer account, click the Certificates, Identifiers & Profiles in the menu on the left and then, on the next page, click Identifiers in the menu on the left.
When the list of identifiers loads, you should be able to see the identifier you have selected for your app in this list. If it is not there, wait for a couple of minutes and then check again. If, however, it does not appear there automatically, you can manually create it by clicking the plus (+) symbol next to the Identifiers label and using the exact same identifier as you have used in your Xcode project. In any case, it is mandatory for this identifier to appear in this list as without it, we won't be able to upload the app to the app store.
Now, once you have checked and verified that the identifier is listed there, you should go back to your account main page and from there navigate to App Store Connect
Once the App Store Connect loads, click the My Apps icon which will then load all of the apps you have previously uploaded as a developer to the Apple App Store.
If, however, this is your first time doing this, this list will be empty.
Click now on the plus icon in the upper left corner and then click New App. In the popup that will appear, tick the iOS checkbox, then enter a name for your app in the field below, select the primary language of your app, in the dropdown menu, then select Bundle ID (this is the bundle identifier that we have used in our app and checked if it is populated in the previous step) and then enter a SKU which can be the same as your bundle identifier. Below that, as a last option, you can elect whether you want to allow the limited or full access to your app. If you're uploading the app that you will be later providing to your customers, you should select Full Access here. Once you have entered all these credentials, click Create button and you're done with this step and App Store Connect is now ready for your app.
Head back to the Xcode project of your Checkinera app on your computer and then navigate to the General tab of the project.
There are two things that are important to set up here. First, if you're building the app for the first time, make sure that the version number is set as 1.0 or 1.0.0 and that the build number is set as 1 (one). This is important as App Store Connect will recognize these values and if, later on, you decide to update your app, you will need to increase the version number and build number or App Store Connect won't accept it.
Next thing that is mandatory is to set up the app icons. These should be unique as App Store validates the icons and they do not allow two apps to have the same app icons on the Apple App Store. So, you will need to change these within the Assets.xcassets area of the project.
Building the app
When you're done with these two finishing touches, it's time to build the app. First, click the tab of the Xcode project in the upper left and make sure that Generic iOS Device is selected.
After that, in the menu, click Product and then Clean Build Folder. This step is not mandatory but is advisable.
When done, click again Product in the menu and then select Archive. This will start building your app and it will take a while (several minutes).
Validating the app
Once the archiving process has been finished, the Archive organizer window will appear. In this window, you will see a list of archives which should now contain your app with its title, creation date, version number and status. In the right side of this window, you will see two buttons: Distribute App and Validate App. You might get tempted to simply click the Distribute App button but instead, first click the Validate App in order to validate your app and make sure that everything is fine before you distribute it.
When you start validation process, a series of prompts will appear within which you won't need to change nor select anything but rather simply leave everything as-is and click the Next button and let it do it's thing. If something pops up here, requiring your additional actions, please refer to the suggested action that will be displayed. Once it's done with everything, you will get a Validate button that you should then click. Validation process will take similarly the same time as archiving so kick back and relax while it finishes. If everything went well, you should get a message that your app has been successfully validated and you will notice that your archive status now says Validated.
Uploading the app
You are now ready to distribute your app. In the archive organizer window, click the Distribute App button which will then bring up a popup. In this first popup, make sure iOS App Store is selected (it should be, by default) and click Next. In the next popup, make sure that Upload is selected (again, it should be selected by default) and click Next. This will initiate communication between the Xcode and App Store Connect. A few moments later, you will be prompted to for some other options which you should all leave as-is and then it will prompt you how do you want to manage signing where you should select Automatically Manage Signing and click Next. After that, App Store Connect will start gathering all the necessary information about your app in the background and when done, it will display you a summary window where you will have the Upload button in the bottom right. Once you click this button, your app will start uploading to the App Store Connect. The whole process will take a couple of minutes and it is important not to interrupt it in any way until it finishes. Once it is finished, it will display you a message that the app was successfully uploaded. If you click Done and head back to the archive organizer window, you will notice that the status of the archive is now changed to Uploaded.
With this done, you can head now to the App Store Connect and within the Activity tab, you should be able to see your newly uploaded app that is in the processing stage. The processing will take about fifteen or so minutes.
When this is done and the (processing) is no longer displayed next to the build number of your app, your app will be ready for submission to the app store.