# AppMachine

AppMachine is  no code platform which allows you to build web apps without any coding skills. You can even publish a webapplication ( PWA) or a native app for iPhone and Android. &#x20;

In the past few months, we have rebuild the AppMachine platform and have extended AppMachine to make it easier for non-coders to build rich interactive apps.&#x20;

## Build your app&#x20;

Building an app with AppMachine takes a few simple steps:&#x20;

1. Start with a template
2. [Add your blocks ](/blocks)to quickly extend your app
3. [Add your own data](/data)
4. [Change the styling ](/style-your-app)to give it your own look and feel
5. [Share your app with the world](/share-your-app/publishing-your-app)!

You can even extend your app with webservices or Javascript if you are little bit more technical&#x20;

## Latest news

The AppMachine team is continuously working on the AppMachine product, the design environment and extending the functionality which is available in our apps. \
Stay up to date with the latest releases, the newest features which we made available for you and the  issues which we fixed for you.&#x20;

{% content-ref url="/pages/BDdETZv60tEioblcdhe1" %}
[Product Updates](/product-updates)
{% endcontent-ref %}

## Problems?&#x20;

* We want you to know that our whole team is available for you to fix any problems which might arise as soon as possible.
* For us to be able to help you as quickly as possible we ask you to&#x20;
  1. Search this Support center for possible answers&#x20;
  2. Whenever you don’t understand something, **email** <support@appmachine.com>
  3. Please always include your **appnumber** and **screenshots** to explain the issue to us. \
     You can find you Appnumber in the left top corner below your appname:<br>

     <figure><img src="/files/t7lX8LeR4GijWaiN1YGG" alt="In the left top corner you can find your app name and app number"><figcaption><p>Appname and app number in the left top corner</p></figcaption></figure>


# Product Updates

Find out more about our latest releases

AppMachine receives regular updates pertaining to the app builder and your published app(s). We strive to release updates every 1-2 weeks.&#x20;

### April 7, 2023

We released our new whitelabel editing feature: the [Admin CMS](/app-details/admin-cms). Add the Admin CMS block to your app, to provide your users/customers with editing permissions based on the limitations that you set. This will allow them to directly add, modify, or remove content from Data Lists and Information Blocks within the app without the need to open the designer.

The Admin CMS block is available to Agency plans and higher.

<figure><img src="/files/EkWI3dahnFwLOVmPH4mT" alt=""><figcaption><p>AppMachine Admin CMS</p></figcaption></figure>

We have written a [support article](/app-details/admin-cms) with all the information you need about settings up and using the Admin CMS. You can find [it here.](/app-details/admin-cms)

<br>

### April 2, 2023

#### iPad Support

You can now publish your AppMachine app with iPad support. To enable iPad support, this is not enabled by default, navigate to the Publish page of your app (in AppMachine), and open the store information page of your iOS app via the Edit Store Info button.

<figure><img src="/files/qk1mt1yv2jr3UNUQuGmu" alt=""><figcaption><p>Publish screen in AppMachine</p></figcaption></figure>

On the Store Info page, you'll find a section named 'iPad'. Expanding this section will reveal a button through which iPad support can be enabled.

<figure><img src="/files/QojN7bdPfrs11ObF7OXK" alt=""><figcaption><p>Enable iPad Support</p></figcaption></figure>

For a complete overview of all the steps necessary to enable iPad support for your app, please read our [Support Article.](https://docs.appmachine.com/share-your-app/apple-app-store/ipad)

### March 31, 2023

#### Improved block tree

We’ve improved the movement of the blocks so it’s even easier to create structure within your app. Blocks are easier to move into position, whether it's changing the order of the blocks or making them nested. We have also added a blue line that guides you when positioning your blocks.

<figure><img src="https://lh6.googleusercontent.com/kEygTxpz9wBqfYXGDgnAW_bvoR_6X9wdqH4Jyh2YW-WtBW7fqWns4tyMIHDHoNnwm08IHqL6GWXPuhMOycq7sGoV591dGL_5u8YkLdgcBTHu1uH_a-cP4R6AiLwecrYkfDgMiL7j-KOR7hsQsbY_-Mk" alt=""><figcaption><p>Improved Block Tree with guiding line</p></figcaption></figure>

### March 30, 2023

#### New text editor&#x20;

We’ve introduced a better rich text editor for all the rich text elements within your app. We will ask you if you want to convert to the new text editor because there is a store update needed to see the changes within your **published app**.

<figure><img src="https://lh6.googleusercontent.com/HuTNkPEjXPnz7_x_nWiS4kvdBEAN2fja6fakuksRqwkkmU_xRtD0vDjPXrK5MKKwyFqgT_2q8TswbjMClsHcdThIQDE1gopMPrBd5UBKzQIE0RvGwaRa7JZUaYBZiVo1_szvpmjH_KV3NnsaqYUjI2c" alt=""><figcaption><p>Convert to new text editor  </p></figcaption></figure>

<figure><img src="https://lh6.googleusercontent.com/O8UK64MgzX_0Gf51YQ1CFsIGCtY1BuqJ3l0rz2hoOmlltCh8ToUDRoVcnvKFyym6t18pVCVwcu6PLTECuy__9xDrm06_jSCYKdLmt1OgKnteeS8eAp_EJF_2rhPwMHMKXOls89d1vDN61_AiU18gJVo" alt=""><figcaption><p>New Text Editor</p></figcaption></figure>

<figure><img src="https://lh5.googleusercontent.com/lwuM0JKuOOExw_YHx8ucp9LxE_9-_3jbwI8wsn5rOBzBMAuDj6kybJ9fnmOIfWdCmwkYQmnyJFa3ZKrKYDcTE5pkM-85wn3SqS3Z9Zbln3sS9M4HW1w2rWmCHSkgKzzVlq-fGHbW2ohadUTinKfQFXM" alt=""><figcaption></figcaption></figure>

#### QR Code Scanner block

It’s now possible to add a QR scanner block within your app. It’s designed to let users scan a QR code and open blocks or websites within your app.

Within the QR code that you create, you have to include the internal block name { "block": "{blockId}" } to ensure it opens when the user uses the QR code. Hover your mouse over a block in the AppMachine CMS to see the internal block name.&#x20;

To open a website use the following format: { "url": "<https://www.example.com>" }

<figure><img src="https://lh4.googleusercontent.com/o8Ps-Bhahfn_dTkj2e0QlYBJgdlcyAZd2Xp6VdWHk-o0Fx_LRtY4H-fpD4yJG8tyn4co2izVbQB4LUB1mGSOFCJPBZoHirTweL2kdryNT-hadYqoxExJJjzWQkGj_lzqnZSdPReqJMJlb1COpERUoCc" alt=""><figcaption><p>Add QR Code Scanner Block</p></figcaption></figure>

#### Bug fixes

**CMS lists**\
We’ve made a fix for the blocks POI, FAQ, Events manual, and News manual to show the right order of the list items.&#x20;

**Element editor**

* &#x20;The switches for the elements now correspond better with the preview within the app on the screen.
* Uploading full-screen background images is working again.&#x20;
* We’ve made an improvement in saving the changes while navigating away when you had unsaved changes on the screen.

**Data Form**

We’ve fixed a few bugs within the Data Form - Update From. If you want to enable users to be able to update the data, make sure the Permissions on the correct data table are set to custom and select the update setting.

<figure><img src="https://lh6.googleusercontent.com/Rfzn0NC8J7ehtvzLmvalMohepNVV2xjdJ9Yil9Gnr_pl1bJ4hb_RKURiU1a9e8IbG_aTLhZ_SpgTxNMqRMLVyrC846D52EWzV5CGkdsP00-dtkkgYH0a6hJd8dv4xwvAvzSMnNimhXqickZrKcTJVpo" alt=""><figcaption><p>Add Data Form</p></figcaption></figure>

<figure><img src="https://lh6.googleusercontent.com/m_jEiF2y8wYxsZ4PzqjVhvIrq1-8Vm2eX-qWG9GDOUiI_tg3XxGQ8Y-86fTgVL8CmyZ3c_F50ZseJ2IgL4JOezlqp_WOj3ueLHHxon8DnbnYUA31rn6H5XXI1HQcziy35zYyi7p1yWrwLSBL--ffPfA" alt=""><figcaption><p>Data Form in Editor</p></figcaption></figure>

<figure><img src="https://lh3.googleusercontent.com/LTYm-wi4cOVyg6voZTkb9O89PLwDorS6yhMB3AFvvo-0Xx020HgWfyZcQFe1vMWau6MxVfah32wRtCloJqxaqPNNGmA-Qr5TtFPchtAj0dCcAYc4HlYUB78jj1rdFKNwCGSfegd69WDHQJLsx4B2gtg" alt=""><figcaption><p>Form Permissions</p></figcaption></figure>

**Single select component in Form bugfix**

It’s now possible again to add a single select field within your data. You can add your own options and select a default value.&#x20;

<figure><img src="https://lh4.googleusercontent.com/CPgFoUw90s-EHINVCaazV-XBHhCaIaq6j1r52QjbUl8NjIR5XSAbPpR4TU4HgmemoH9FMdU4f6lhxEcJA3m-WFIPFHPbWAuRjCVb1eQWpkLTk6z9KMSXpvQNEsszv5YNkHKlRyGYi2fopPchGkFm2_A" alt=""><figcaption><p>Single Select Field</p></figcaption></figure>

### March 23, 203

#### Multiple image upload

The Photo block now supports multiple image upload if you choose 'manual upload'. In the add block wizard or when you click on the Add Photos button in the settings panel of your photo block, you'll see the screen below, where you can drag or select images you want to display in your app.

<figure><img src="/files/9KcWSQ04O3xgwCCq39dL" alt=""><figcaption></figcaption></figure>

#### Changes in User Roles

The data permission roles now match the roles you can assign users within the Users screen and the authentication levels of the lock block. This means we have **removed** some **obsolete** roles for **new apps**. The roles/levels that are still available are:

* Unauthorized
* Registered
* Admin

If you want more specific roles, you can always assign users to a User Group. Want to know more about User Groups and what you can do with them?[ Read this article.](#user-groups)&#x20;

#### Images in Data Lists

We added the option to change the size of an image in a List or Detail block. Especially for logo's or wider images, this will help you choose the best way to show your image.&#x20;

![](/files/UxNInxHK2iBneuPQKExR)

#### Small improvements

1. Image preview in CMS lists.
2. Show privacy policy field in Google store info, available under 'Edit Store Info'.
3. Option to link to a block for the Link element in the Element Editor

### March 7, 2023

#### New Dashboard

Introducing our new Dashboard. From now on, you do not only see the awesome apps you created, but also our latest news, inspiration and tutorials on how to maximize your app building capabilities.

<figure><img src="/files/M8giA6O4FB8tzlQu7dqS" alt=""><figcaption></figcaption></figure>

### March 6, 2023

#### Send Push to User Groups

With our latest feature, you can send **Push Messages to User Groups.** To do this, first, you have to create a User Group and add users to it. Go to the **User tab** in the left-side settings panel. On the top right, you will see the option to **Add a group**.&#x20;

<figure><img src="/files/AfQiHyhzVnMGyys5kVVw" alt=""><figcaption><p>Add a User Group</p></figcaption></figure>

When you click this button, you can set the name for your new user group. Click save to keep this group.

<figure><img src="/files/01IuojeoxNPuJiGMGmxP" alt=""><figcaption><p>Enter a name for your new user group</p></figcaption></figure>

After this, you have to add users to this group. Click on the user you want to add and click **Assign group** to open the dropdown where you can pick your user group.

<figure><img src="/files/YKUkQKMws6wfOGQCC47G" alt=""><figcaption><p>Add a user to a user group</p></figcaption></figure>

![](/files/1oe7VHIqEYCHi0o7WIUx)

Once you've set this up, you can create a new push message to send to the members of your group. The User Group Targets dropdown will be in the create push message modal.

<figure><img src="/files/Rz9RlzHPrvWyDDWRzOwU" alt=""><figcaption><p>Choose a user group for your push message</p></figcaption></figure>

The push message will now only be sent to users you have assigned to this user group.

Note: Sending a message to a User Group is only available from the Push Message dashboard. We will add the option to do this from your app in the coming week.

### March 1, 2023

#### Azure Active Directory

We have added Azure Active Directory (Azure AD) as a new login option for your app.\
Azure AD is a cloud-based identity and access management service.&#x20;

If you go have enabled the login feature for customers, you will now see the Azure AD option below the already existing login options.&#x20;

<figure><img src="/files/r7ILUFfTZi8mAEd7JPez" alt=""><figcaption><p>Azure AD login option</p></figcaption></figure>

Once you have enabled Azure AD you need to set it up. We have written an article explaining all the steps to setup user authentication via Azure Active Directory for your AppMachine app, [you can read it here.](https://docs.appmachine.com/app-details/user-management/setup-azure-active-directory)

### February 23, 2023

We're preparing our platform for a lot of new features that will be released in the coming weeks/months. For this release, we worked on improving the stability of our platform, with extra focus on the Element Editor and WebServices.

#### New Screens

We have added new empty state screens; this means when you have not used this functionality yet and the screen has no data, we show the screens below. The goal is to give you more guidance into the possibilities of the features of our platform, making it easier for you to get started on your app.

**Data**

<figure><img src="/files/YuQ2SSL6dSv4LieQwTv2" alt="New Data Screen when you have no tables"><figcaption><p>New Data Screen</p></figcaption></figure>

**WebServices**

<figure><img src="/files/hCPeoFGAV05Iu3WnPYNP" alt="New WebServices Screen when you have no services"><figcaption><p>New WebServices Screen</p></figcaption></figure>

**To Come: Dashboard**

This new screen will be released somewhere next week!

#### Image selector cropper for CMS lists

Before this release, when you added an image to a CMS list, we would always show the full image. With the image cropper, it's now possible to only show a part of the image.

Note: the image cropper is not yet available for Pexels/Stock images - this will be added next week.

<figure><img src="/files/iUnn8a8ri69PL09maD1X" alt="Image cropper with an image of a chicken"><figcaption><p>Image Cropper</p></figcaption></figure>

#### Bugs fixed

* Manage data from Editor showed empty fields
* Fixed alignment of layout editor properties and element editor properties
* PWA publish status not updating
* Invalid Push Message Certificate message flashing for valid certificates
* In some cases, Content Update dates would be shown as Store Updates

### February 9, 2023

This release contained two exciting features: AI-generated text and images, and improved navigation styles/menu editing.

#### AI-generated text and images

AI in Apps is the next natural step for AppMachine for creating content, like descriptions and articles, and great imagery. ChatGPT can help you write headlines, texts and app store descriptions. DALLE 2 can create images for your app. ⁠ ⁠Want to know more about using AI for your app content, [check out our blog!](https://www.appmachine.com/blog/chatpgt-and-dalle-2-app-builder-revolution-appmachine)

**AI-generated text**

In several different places in AppMachine, you can now use our AI implementation to help you out with catchy names, descriptions, and summaries for your app content.

In the editor, you can use the **AI text generator** in all names fields of **CMS lists**, think of Event names or a catchy name for your products for example.

Add a new list item - in this case, an event, click on the robot icon to open up the AI generator and fill in your prompt and click try.

<figure><img src="/files/now6hcwFQtNW0pXZW8QU" alt="AI generated text"><figcaption><p>Generate an Event title with AI</p></figcaption></figure>

The result is an **AI-generated text** that you can instantly add to your app. And if you don't like this one, just click **try again** for a new result.

<figure><img src="/files/s9Vb6MwB4t0EHMLIyMwh" alt="AI generated text result"><figcaption><p>AI Generated text in the Editor</p></figcaption></figure>

The **AI text generator** is also implemented in our **Edit Store Info** screen for **Apple**. You can use it to generate your review notes, store description, keywords, and release notes!

#### AI-Generated Images

When you don't have the right image to match your content and our stock images are also not what you're looking for, you can use an **AI-generated image**. Just open the **image library** anywhere in the editor, click the **AI Images tab**, fill in your prompt, and go! Don't like the images you see? Click 'Generate' again and we will add three more images. Be sure to [read our article on AI ](https://www.appmachine.com/blog/chatpgt-and-dalle-2-app-builder-revolution-appmachine)to see all the possibilities of AI-generated images.

<figure><img src="/files/Uen5A9jBLFkUVYdsyZ1k" alt="AI generated images"><figcaption><p>AI-Generated images</p></figcaption></figure>

#### Improved navigation styles/menu editing

In December we released our new navigation styles and at the beginning of February, we added extra editing options, so you could customize your menus to your liking. On review, we noticed that the number of options could be overwhelming and some were even a little confusing. That's why we improved the options in a way that still gives you full control, but also more guidance and clarity.

Most important notes :

1. Rearranged editing options
2. You can still set the full **background** in the **Design tab**.
3. The header background has been removed. You can use the new **Top Image** as a **header** **background** or as your **logo**/smaller image.&#x20;
4. **Items** (formerly Advanced options) are collapsed by default

<figure><img src="/files/uKUQnI84fUcjjof3U77T" alt="New menu changes"><figcaption><p>Style your menu</p></figcaption></figure>

### February 7, 2023

Today we did a small release, but for a very important feature: **Delete Push Messages**. \
If you go to your **push message screen** and click a sent message, you will see the option to delete it. This will also remove the message from the **Push Message Block** in the app (if you have one), and it will not be visible to customers anymore.

<figure><img src="/files/sasGPsLVbtvGJhS1o72c" alt="Delete push message feature"><figcaption><p>Push Message summary</p></figcaption></figure>

### February 1, 2023

#### New editing features for menus

In December we released our updated navigation styles/menus, featuring pre-set layouts. We have expanded the editing options for all menus, giving you more control over the look and feel.

<figure><img src="/files/C089C0VkYbrotIO4NH8e" alt="Navigation options"><figcaption><p>New editing features for menus</p></figcaption></figure>

All menus have an extra Design tab, where you can set your colors and the background.![](/files/F7SIhVSWCVCpl7isZc7y)

For the Tab bar and Tabs navigation styles, we added options to influence the menu icons and the label style.

![](/files/ajsAjZmypQk9AHDoGPIl)

The List, Sliding and Icon navigation styles have an 'add image' option for the header. With this option, you can add an image in the header or replace your logo in the header

![](/files/fk1T36skTr0II6f4g7ww)

For these styles, you can also edit your header background.

![](/files/qtVzP5hVGYFNA7HTXIKX)

The Icon navigation style has an added option to influence menu items if they are 'boxed'

<figure><img src="/files/pybXFBx8QYb2PZGtr9Lp" alt=""><figcaption><p>Boxed icons</p></figcaption></figure>

#### Duplicate app

In your App Dashboard, you now have the ability to duplicate (copy) an app you have already created. Click on the 3 dots in the top right corner of your app, click 'duplicate' and we will automatically make an exact copy of your app.

<figure><img src="/files/3UhOFgftpBVhUnPdYms5" alt=""><figcaption><p>Duplicate your app</p></figcaption></figure>

#### Improvements

* The back button of the preview screen navigates back to the editor. Before it would navigate to the App Dashboard.

<figure><img src="/files/hp3ufRDZrmllYl9Rokg3" alt="App Preview Screen"><figcaption><p>Navigate to the editor</p></figcaption></figure>

* Improved readability of the Pricing Page
* Opened editing fields in the Element Editor will stay open when moving to the next element

#### Bugs fixed

* In Data adding a field by using the keyboard and then pressing enter, would select and instantly save the field. It will now only select the field on the first enter. To save, press enter again.
* Could not remove the filter from lists in the editor
* Discard changes in the Element Editor
* The save button always active in the Element Editor
* Adding multiple elements by holding the shift key, would result in an error
* Copy element would result in an error

### January 24, 2023

#### Improvement

* The layout editor responds by clicking anywhere in the field, instead of only when the edit icon is clicked.

<figure><img src="/files/aL8nRcEX4RTNphA85GzU" alt="AppMachine layout editor"><figcaption><p>Layout editor</p></figcaption></figure>

#### Bugs fixed:

* PWA upgrade modal infinite spinning.
* PWA publish status not updating.
* Tourism App template, on creation, would not show all the fields in layout 3.
* On the Login settings page “Please upload your Apple Sign In certificate" text would be visible even if a valid certificate had been uploaded.

### January 18, 2023

You can now add a Whatsapp block to your app. We have released a new feature today; the Whatsapp block! When you add this block to your app, just enter your phone number in the right-side settings and the block is configured. When an app user opens this block in the live app, a WhatsApp chat with the phone number you set will automatically be opened. Allowing the user to chat with you directly via WhatsApp.

<figure><img src="https://files.gitbook.com/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F2wzy1sO41plYrfJfaAhN%2Fuploads%2Fm9HjQVJOaEDEbxekMNF2%2Fimage.png?alt=media&#x26;token=c6e17e12-0775-4aff-803c-3925405cafe8" alt=""><figcaption></figcaption></figure>

### January 17, 2023

We did a small release focused on fixing some customer issues.

#### Fixes <a href="#fixes" id="fixes"></a>

* We had some reports that images were blurry after the last release. This has been fixed.
* In some instances, a list could display a duplicate item if there were double spaces in the item. We changed it so that the list input can contain double spaces without any issues.
* We improved caching so more content will be displayed if an app is opened without an internet connection.
* With some color choices, the account button in the top right corner of the screen would not be visible.
* When using the editor and clicking on a block in the previewer, the block tree would not always update, making it out of sync and not always showing the right editing options. This was only the case with a sliding menu and has been fixed.

### January 5-9, 2023

Hurray, the first fixes, and changes of the year. Check out what we did below.

#### Important change <a href="#important-change" id="important-change"></a>

Google Translate is no longer active on design3 to make sure all the functionality works the way it should.

#### New features <a href="#new-features" id="new-features"></a>

**Send push from device**\
It’s now possible to send a push notification from your device. This newly added feature enables you to send a message wherever you are, as long as you have your phone with you. This will make it much easier to share instant news right away. Want to know more about the importance of Push Messages? Check out our [latest blog here!](https://www.appmachine.com/blog/how-push-notifications-can-be-an-effective-marketing-tool-for-your-business/)​

#### Bug fixes <a href="#bug-fixes" id="bug-fixes"></a>

* **New menu fixes:** Within the new menu styles we’ve made some tweaks to make them look even better. We’ve also made sure that the Title and App Logo
* **PDF share, location, and POI fixes:** There were some issues with opening and with turning the share option on and off. This is now solved. Besides that, we’ve fixed showing the Points of Interest on the maps within apps.
* **Webservices:** We’ve made a fix for the Webservice block so that you can add your Webservice to your app.

### December 22-27, 2022

#### Christmas release AppMachine designer and Mobile app

As a Christmas gift, we released a few new navigation styles for your home screen menu and added sorting and filtering in your list blocks. Read all about [the December 22-27 release here.](broken://pages/Es56ARKmap55ihIyLWCO)\
![](/files/p9IYW5bv5JP9bzRC04EE)

#### The release notes of the last release of the year, are full of Christmas gifts!

This week we released a new version of the AppMachine designer and the Mobile app

1. Various updates in the App user screen, like ​
2. Send a push message to an individual user
3. New improved navigation styles
4. Data lists: added options for you to sort, filter and limit the items shown in the mobile app

#### Verified email addresses

Within the settings from the app, you can now add a verified sender email address. This is to prevent spam.​​​​

<figure><img src="/files/OjZG2HqWR0HJgROTU8es" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/xVbk7EdHmT36d974Rfbk" alt=""><figcaption></figcaption></figure>

#### Search within the App Users

If you’ve enabled User registration within your app, you’ll have an overview of users. The new functionality makes it possible for you to look for specific uses within this list.​​

<figure><img src="/files/1YPXOUVJwruyv5qme0U5" alt=""><figcaption></figcaption></figure>

#### Permissions per User Group and per User Role

Within the Data screen, you can set your permissions per table. With this last release, it is possible to set the permissions by User Role or by User Group. With these permissions, you can decide which roles or groups have certain access to tables and data.​​

<figure><img src="/files/Lr9HcrQfnuABQ7gfxTpt" alt=""><figcaption></figcaption></figure>

#### Push messages per user

If you navigate to a user within your App you have the ability to send a Push Message to a registered user.

We have added the ability to send a Push Message to a single registered user. Go to your User overview and select the user you want and you will see the Push Message button in the top right corner of the screen. Clicking on this button will open a modal that allows you to send your push message to this user.​​

<figure><img src="/files/HVMBuCBRv41iu1aaJRzm" alt=""><figcaption></figcaption></figure>

#### Push messages count shown

When you go to the Push Messages screen and hover over an already sent message, you will now see how many messages have been sent to Apple and Android devices.​​

<figure><img src="/files/BUq4MlFqHtkLzMubq1dk" alt=""><figcaption></figcaption></figure>

#### Navigation styles

We have added new navigation styles for NEW apps. With existing apps, you will only see the new navigation styles for the Submenu block.

There are five menu types, each with different layouts, and the option to choose no menu layout.

1. Tab bar
2. Tabs
3. Sliding
4. List
5. Icons

You can switch between layouts and choose from different options, like show icons or show block labels. The tab bar layouts also have the option to be detached from the bottom of the screen.​​​​

<figure><img src="/files/WYFXmPKWGPB3GVeQADe7" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/Cc1iVMG1P2kVy6R0u9QJ" alt=""><figcaption></figcaption></figure>

#### Filter/Sort/Limit

We have added a new sorting and filtering feature for list blocks. When you add a list block you can filter the items in your list in the settings panel on the right. This way you can choose which items you want to display in your app.

![](/files/VY8PYWs0FI44fairfN8A)

The filter option is also available for the data view. Click the filter icon in the top right of your data table to open the option. The filtering you add here is only visible in the data view, so it will not be applied to your app view.​​

<figure><img src="/files/wLZoGsE6BTssZAeFEc1v" alt=""><figcaption></figcaption></figure>

You also have the option to sort your data, for example alphabetically or low to high price.

![](/files/YG2wwawgB33cVLPbnyIF)

The last option is limit, which allows you to set the number of items you want to display.​

#### Disable upload of Sandbox Push Certificates <a href="#disable-upload-of-sandbox-push-certificates" id="disable-upload-of-sandbox-push-certificates"></a>

We now prevent customers to upload a sandbox push notification certificate and only allow sandbox & production certificates. This solves the confusion when some customers uploaded the wrong certificate and push notifications didn't work.

#### Small improvements <a href="#small-improvements" id="small-improvements"></a>

* Added publish date to publish information in the Publish Screen.

<figure><img src="/files/2CzUna9KcNv3Ai642bCB" alt=""><figcaption></figcaption></figure>

* Added ‘open in new tab’ button in WebPage and WebShop blocks, for when the URL cannot be opened in the app

​![](https://lh5.googleusercontent.com/ggex-9jksObMItdXYUc22k1juF_qwaB6390mc_FhCpCn4I4R3usOJjgRyhrhOuReqlD7m3GKWEyjaBSsWDsFyuGBXV9enqkFx1XHbDTuvGUDx1PAu3u3qwZOIICLx5hNSSiTqAQ0NzabDhb5CR1Jphdl3feU7LlyFWCDYWz25NbpTeXgge38RuZsM7X-bQ)<br>

### December 8, 2022

#### AppMachine Designer

We added some larger new features and we fixed a lot of small issues. \
\
Add blocks automatically after adding a data table or [connecting Google Sheet](broken://pages/g03Ex6RPNZHZt7hEMW6i#add-blocks-after-adding-table-or-google-sheet), Add [Apple Sign-in](broken://pages/g03Ex6RPNZHZt7hEMW6i#apple-sign-in-mobile-apps) to your mobile app, Publish a B2B and Enterprise app to the Apple App Store, and improvements to the mobile app.<br>

### December 1, 2022

This week we released a new version of the AppMachine designer, the place where you build your own app. We added some larger new features and we fixed a lot of small issues.&#x20;

#### **User groups**

If you have User registration enabled in your app, it’s now possible to create groups and add users to one or more groups. \
First, create your own groups within the App Users screen. After that, select a user and add them to one or more groups.&#x20;

<figure><img src="/files/b9i2bKSN4uxlYB79xjTu" alt=""><figcaption></figcaption></figure>

#### Lock content based on User groups

You are now ready to lock certain content in your app by only making it available for specific user groups. Add a Lock block in your app, specify which user groups will have access, and drag the content under the lock block. <br>

**Improved Google Sheets import**

We have added all kinds of improvements to the Google Sheet import, so it's much easier to connect your sheet. For example, sheets can now be imported&#x20;

* when your sheet doesn't have any header rows
* When your sheet has columns with a missing description
* or when your sheet starts with an empty row.

<figure><img src="/files/KFtpSQk2PH8d6pUFQl8O" alt=""><figcaption></figcaption></figure>

We have also improved the wizard to better explain to you when there are other issues that you need to fix yourself in the sheet before the sheet can be imported.

#### Smaller features

* Data: Added the option to delete a table or remove the connection to a Google sheet
* Added more checks to make sure you don't lose unsaved changes on your screen when moving to other parts of the application.

#### The most important bugs solved

When you were using Chrome to translate your browser, you could sometimes see application errors on the screen. This should now have been resolved.

### November 24, 202

This week we made a lot of smaller improvements to the designer.

* Improvements in Date/Time notation
* Home Block would not show the background image when a sliding menu was picked.
* Added Confirmation Modal when deleting a record in Data.
* Small improvements to Forms
* When a WebService was not configured correctly and you added a list based on this, nothing would happen. We now made it so a wrong or not set up WebService will not show up as an option when creating a List Block.

<figure><img src="/files/3b85uSaEJHCpIw2mrA6H" alt=""><figcaption></figcaption></figure>

* Improved Confirmation Message when deleting Fields in Data<img src="/files/UUVSY7bMN7Mt9fxzfAHe" alt="" data-size="original">
* Show the name of the Table you are seeing on top of the screen.

  <figure><img src="/files/6PTAi3oOxmXfLjDeVRVa" alt=""><figcaption></figcaption></figure>

#### Rich Text Editor

You can now expand the Rich Text Editor and type your text in a bigger modal by clicking the Expand option in the Text Editor.

![](/files/cQvBmi8CcA5a46bF6wXE)

<figure><img src="/files/to1wO5UHr7PKgX95uHD5" alt=""><figcaption></figcaption></figure>

### November 17, 2022

This week we mainly focussed on fixing and improving the **Custom Form Block**.

We made a lot of improvements to the new Form Block

* Fixed alignment issues when dragging from items
* Added new fields to Custom Form
* Date/Time field would only show Date in the Data Table
* Percentage field shows %&#x20;
* Adjusted order of fields in Simple Layout Editor
* Time Field showed a Date Field&#x20;
* Color settings improved to match Theme
* When you create a Custom Form, the table we connect to this form now has a unique name. Making it easier to differentiate when you have more than one custom form.

<figure><img src="/files/IY8mpBMw8UnlzbH4R3q9" alt=""><figcaption></figcaption></figure>

#### Other Changes

* We fine-tuned the Unsaved Changes Modal, so it will not show up when there are no unsaved changes.
* New Blocks would not be visible after deleting a Sub Menu
* Changed 'Authentication' to 'Login settings' in the Left Side Menu

<figure><img src="/files/GeaDZbfuLnuOOGxQ3Oic" alt=""><figcaption></figcaption></figure>

### November 10, 2022  - Big Update

This week we released a new version of the AppMachine designer, the place where you build your own app. We added some larger new features and we fixed a lot of small issues.&#x20;

a. [User Management](#user-management)\
b. [Free stock images Pexels integration](#integration-with-pexels-free-stock-image-library)\
c. [Form block](#form)\
d. [Sending Push messages to categories](#push-message-categories)\
e. [Protected Tables](#protected-tables)\
f. Various improvements: [General](#generic-improvements), [Blocks](#small-improvements-blocks-tab), [Data](#small-improvements-data), [Elements](#changes-elements-editor)

#### **User management**

It is now possible to let users log in to your mobile application. You can choose to let users log in to their app before they can see anything or you can put certain parts of your application behind a login. You can limit logins to a limited set of users or let anyone log in via email, Facebook, or Google login. \
We will add Apple Sign-in soon. For now, if you want your app to be approved in the Apple App Store, you will always need to enable Mail, because otherwise, Apple will not approve your app. \
Read all the [details about User management in this article](/app-details/user-management)

<figure><img src="/files/rh4evQIycM838r728Kv0" alt=""><figcaption></figcaption></figure>

#### **Integration with Pexels free stock image library**

We have added an integration with the free stock image library Pexels, to add great-looking images to your app with a few clicks. Add an image, add your search term on the Pexels tab, click the Search button and select the best image.

<figure><img src="/files/w1cwg30tT7N0XiCZCjyv" alt=""><figcaption><p>Add great images from Pexels</p></figcaption></figure>

#### **Form**

You can now add a Form block to your where you can add new fields easily. Automatically a table is created in your AppMachine Data area.  When your customers will fill in the form in your app, the data is stored in your AppMachine Data Table.\
Read all about [this new block on this page. ](/blocks/custom-form)

#### **Push message categories**

You can read all about sending push messages in [this article](/app-details/push-notifications).\
You can now also send push messages to specific customer categories. Customers can sign up for a specific category in their native app.&#x20;

When you navigate to the **Push Messages** screen in the left side navigation you can add your categories on the right side. \
Your customers can sign up for one of your categories in your native app.

<br>

<figure><img src="/files/uz4Fs65yS0ZFvqoZIo0a" alt=""><figcaption><p>Configure your Push message categories which customers can sign up for in your native app</p></figcaption></figure>

When you create a new Push Message the modal will give you the added option to select a category.

<figure><img src="/files/a174T2GzXC6CXIFeuk2i" alt=""><figcaption><p>Select the category of customers you want to send your push message.</p></figcaption></figure>

#### **Protected tables**

Within the Data tab, you are now able to set custom permissions for your tables. These roles are based on the User roles in your app. You can click on the Add custom permissions button to adjust the permissions per role. You can adjust these per table.

<figure><img src="/files/bdjbhbFw018TYIDxRySN" alt=""><figcaption><p>Permissions per Data table</p></figcaption></figure>

<figure><img src="/files/bl4zdNfrVjxs52IV5vAP" alt=""><figcaption><p>Manually changed Permissions per Data Table</p></figcaption></figure>

#### Generic improvements

1. Improved Google sheets import

We have made multiple improvements to the Google sheets import. You can now successfully connect the same Google sheet to multiple apps, import sheets with empty fields, import sheets where the column names are not unique, etc.

2. More prominent Feedback option

Because we value our customer’s opinions and feedback, we have added a feedback button to the top navigation bar. This allows you to send in your feedback, issues, and feature requests and see the progress.

![](/files/vcRE2iov9EgqftOkepvr)

<figure><img src="/files/Tb8VT9pAHe3jcp1OM0jH" alt=""><figcaption></figcaption></figure>

3. Delete an app in your App Dashboard

#### **Small improvements Blocks tab**

1. Date picker \
   We have improved the data selection field so the whole area, including the icon, is clickable and will open the date picker

![](/files/WW3F5clqVbzYCAqZm3SP)

2. Simple layout editor: Alignment options of the label editor were not visible, therefore making it impossible to change the alignment.\
   ![](/files/8IBlQ7ceYD5uc4Lm6lPk)
3. Resolved: Changing the order of URLS would not reflect in the app
4. Resolved: The app theme would sometimes not be applied to all blocks
5. Resolved: adding Coupon block gave issues.

#### **Small improvements Data**

Added Bulk delete so you can delete more than one item at a time.

<figure><img src="/files/1jkUbdBD09KqG4KgumVy" alt=""><figcaption></figcaption></figure>

#### **Changes Elements editor**

1. Added data binding for videos.

![](/files/JwRznOYGp4WudlU8rn4C)

2. Resolved:  Background overlay over background image wasn’t always positioned right.
3. Resolved: Custom styles would be reset after changing the order of fields in a repeater.
4. Resolved: Sometimes changes in the element editor seemed to be lagging 1 step behind.
5. Resolved: Sometimes the color of a label field could not be changed back to the main color after an initial change.
6. Resolved: Card layout 2/3 had double margins.
7. Resolved: Video data source in a list block would not be automatically recognized and mapped to a video element. It would be injected into a label element.
8. Resolved: Adding elements to a blank page on safari did not work.
9. Resolved: Duplicate button for elements was broken
10. &#x20;Deleting an element in the element editor will automatically select the element above
11. Added icon element

### October 27, 2022

This week we released new versions of the Flutter mobile apps for iPhone and Android. If you want to have these fixes in your published Flutter app, we advise you to Republish your app to the app stores.

#### **Changes for Android previewer**

* The previewer now also shows you the most recent apps you worked on. You can download the AppMachine previewer on your Android device [in the Google play Store with this link.](https://play.google.com/store/apps/details?id=com.appmachine.preview\&hl=en\&gl=US)

#### **Changes for iOS and Android apps**

#### **Improved:**&#x20;

* Translations: added and improved Greek and Swedish as native app languages.\
  *Tip: if you want to help getting your language added or improved as well, please contact support at <support@appmachine.com> !*

* Maps: In-app location picker now allows to drop pin in all areas (including water) - use long press.

* Design: removed extra white space between tab bar and content.

* Rich text:  added a color picker for text:

* ![](/files/iuhID7YAxABflgsbKzkE)

* Viewing web pages in the previewer is now possible for websites that support i-frames, this will solve this message that used to appear in the previewer in the Design environment:

* RSS block: added sharing options to RSS/news items.\
  ![](/files/e2aSni11hDORE5M0Ze1R)\
  You will not see this message anymore, instead the webpage itself will be shown directly.\
  Note: This problem only happened in the previewer in the browser. In the native apps this already worked.&#x20;

* #### Resolved:&#x20;
  * Event block: upcoming events block would show in 'Past Events' tab.
  * Information block: would crash when rendering content on Android.
  * Information block: auto detect for links was set too strict, in some instances creating links where it wasn't needed.
  * FAQ block: 'show title' switch in Custom Design was not working correctly.\
    ![](/files/KQ05ClpUC5cbiTj51Uoj)
  * RSS block: the block would not play audio anymore.
  * Link block: in specific situations, the link block would not open when called in combination with a web service.
  * User login: canceling a register/login request required the user to click 2 times to return to the home menu.
  * POI block: the 'map view' did not work correctly.
  * Push block: the order of push categories didn't match the order in the CMS.
  * Link block: in specific situations, the link block would not open when called in combination with a web service.
  * Lock block: in specific use cases the block didn't open.
  * Screen block: was not showing the maps component.
  * Navigation: swiping images in landscape mode would revert back to portrait mode.
  * Navigation: Sliding menu would disappear after viewing a login block in some cases.
  * Navigation: Opening links to a PDF file (on Android devices) was not working in specific situations.

### October 26, 2022

We released a new version of the Appmachine Designer.\
\
One feature we would like to highlight:  we have added a Feedback button in our Designer so you can report Bugs to our development team in a quick and easy way.

#### Building your app

#### **Blocks tab:**&#x20;

* Contact: entering Twitter account while adding the block never returned the correct result.
* Contact: Changing map address wasn't saved correctly.
* Events: When adding an events block, you couldn't select the data sourceimages Appmachine CMS or Google Calendar and saw an error.
* Events: Block showed red warning without reason \
  ![](/files/DbQDuiWvdRVtAc2wARzg)
* Preview page showed arrow over tablet view.
* Rich text fields : Added clear formatting option
* Change block icon was blocked because tooltip was shown on top of replace option.
* Twitter: Username didn't save in Twitter block&#x20;
* News: adding news articles didn't work.

#### Elements tab

* Uploading image was blocked because transparency was required.&#x20;

* Dropdown field: values entered weren't shown in the app.

* Dragging elements would sometimes end up in the wrong position in the element tree

* Video field: added data binding for videos&#x20;

* the app would show an error when you used negative margins.

* Background: best contrast text now works with opacity.\
  ![](/files/vcH7y3L4xSRliAgw1m1u)

* #### Publishing

  * PWA Publish: fixed error when pasting and undoing paste in PWA 'link custom domain' screen
  * PWA publish: added support for PWA on the publish dashboard
  * Added better explanation to explain Forced store update better

  #### **Improving your design experience**&#x20;

  * Added option to change the appname in the top left corner.
  * When the left side navigation panel is closed, hoovers with explanation of items are shown &#x20;
  * Various improvements for adding date and time, for example in the Events block, but also in the Data tables.
  * After uploading a topimage is now shown in a larger preview.
  * Added hoovers to make builder more clear.&#x20;
  * Data: added option to delete a data row in the data screen
  * You can now read news from AppMachine Dashboard

### August 24, 2022

Today we released new versions of the Flutter mobile apps for iPhone and Android. If you want to have these fixes in your published Flutter app, we advise you to Republish your app to the app stores.

#### **Apple + Google App**

* **Resolved:** App information showed an empty screen.
* **Resolved**: App information showed the the word "Informatie" in the header. The header text is now completely removed.
* **Improved:** Zooming on images in Photo galleries or Pro screen blocks was kind of limited. When you now click on a photo, you have much nicer experience in zooming and scrolling in a photo.
* **Improved:** Zooming in on images in rich texts, like the Information block or the description fields in for example the events or people works much better.
* **Resolved:** On tablet devices Topimage and Featured items above list where not shown.
* **Resolved:** Location picker in form didn't save location lat/long information.
* **Resolved:** Captions on buttons where missing if caption came from external source
* **Resolved**: Sometimes Webpages showed "Viewing Webpages is not supported in this previewer"&#x20;
* **Implemented:** Pushmessages block now show exact  date and time when push message was sent
* **Resolved:** We have resolved a lot of small issues which improve the performance of your app. This also involves cases where your users would see a small message at the top of the screen telling them that "*Something went wrong*". We have fixed a lot of those cases.&#x20;
* **Resolved:** If you had a link in a text, the link wasn't formatted in the Supporting text color and the link sometimes didn't work.&#x20;
* **Resolved**: When there was only 1 featured item, the item wasn't shown at the top of the list.
* **Resolved:** German translation of the text "No data available" was missing.
* **Resolved:** When viewing a photo the pinch and zoom sometimes resulted in swiping to the next photo.
* **Resolved:** custom Numbered list items weren't shown in the correct way.
* **Improved:** We have improved the offline caching of information in your app, so that when a users has opened your app when connected to the internet, that same information will be visible for the user if he later opens the app offline.&#x20;
* **Removed:** A splash screen  is shown during the 0.5 second that your app starts. Because the scaling of the splash screens didn't work as good on all types of devices, we decided to remove this functionality for now. During that 0-0.5 seconds period when the app is loaded, a loading cursor will be shown instead. We do plan to bring back this functionality in a more advanced way, so that the splash screen will look great on all types of devices.&#x20;

#### Apple App Store - App

* **Resolved:** Sometimes we weren't correctly storing if a user wanted to receive push messages. We have fixed that issue. You need to do a new store update. When these users will upgrade to that new version, their apps will be correctly registered when they open the app.&#x20;
* **Resolved:** The permission texts which were entered in AppMachine at '*Apple App Store > Edit store info > App Permissions'* weren't used in the app itself.

<figure><img src="/files/QNMF2AMmbeZJ5SvWGrkX" alt=""><figcaption></figcaption></figure>

#### **Google Play Store - App**&#x20;

* **Resolved:** Our own proprietary *'Update available'* message will not be shown anymore, because Google doesn't allow that. Customers will see that your app has a new update via the regular way apps get updated via the Google Play Store.&#x20;
* **Resolved:** When the first screen was an *'Information'* block with a lot of content, the app wouldn't start.

#### **Previewer in the AppMachine Designer**

* **Resolved:** Login to Flutter previewer didn't always work

### July 21, 2022

Today we released an update of the new Flutter app.&#x20;

* If you are using the New publish flow, and you are experiencing one of the issues mentioned below in your app in the app store, you can trigger a new store update to benefit from these changes.&#x20;
* If you are still using the Classic publish flow, you will see these improvements in the Previewer in the AppMachine Designer.&#x20;

For now, below you can find the details of the most important fixes of this release.

<figure><img src="/files/v8v4t2lOkBdK9r7UKaZC" alt=""><figcaption></figcaption></figure>

#### New Flutter app ( Version 1.2)

#### Default language other than English

With this new release we have added support to our new Flutter apps where default texts are translated to the language of your app.\
So if you have an app set to 1 specific language the following fixed texts will be shown in that specific language:

* Contact block : Phone number, website, emailadres
* Products block: Price
* App information screen: I need support, Licenses, Privacy policy
* Events: Tab Past/ Upcomming

If you don't see these texts in your own language yet, we probably need your help!\
For those languages we don't have the expertise to translate those texts in the correct way. Do you want to help us to translate this limited set of texts to your language?\
Please send an email to <Support@appmachine.com> where you mention the language you can help translate. We will send you a file where you fill in the translations.

#### Various

* **Resolved:** Improved the visibility of the search field above a list. The search field will become visible if you scroll up in the list \
  ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80124659710/original/Gv5guFe7s7txGrwf82im4GybIZmh8D6QOw.png?1658516697)
* **Resolved:** Delete account screen > German text didn't fit on button&#x20;
* **Resolved:** Delete account in the previewer in the design environment gave an error.&#x20;
* **Resolved:** The link to the privacy policy url wasn't visible in the App information screen.
* **Resolved:** The App info screen didn't show the information which was entered&#x20;
* Resolved: Text on App info screen wasn't always visible.

#### Styling improvements

Improved various small styling issues, for example with alignment of icons,

* **Resolved:** Text was more heavy/Bold in the new apps than in Classic published apps.
* **Resolved**: Text was sometimes shown smaller in the new apps than in Classic published apps.
* **Resolved:** Image menu bottom alignment didn't work correctly.&#x20;
* **Resolved**: In the POI block the order of the Categories wasn't correct and the styling of the group headers was weird.
* **Resolved**: Sliding icon menu wasn't always visible.
* **Resolved**: Back button wasn't always visible.
* **Resolved**: Custom design wasn't applied to a Blog block.&#x20;
* **Resolved**: Top image was sometimes not shown.&#x20;
* **Resolved**: Links were not shown using the Supporting text color.

#### Events block&#x20;

* **Resolved**: Events block in Submenu: tabnames Upcoming and Past are now fully visible
* **Resolved**: Background overlay was not applied in the Events block.
* **Resolved**: Google Calendar events only showed past events&#x20;
* **Resolved:** Google Calendar screen didn't show date + start time&#x20;
* **Resolved:** Google Calendar: Order of events is wrong&#x20;
* **Resolved:** Google Calendar : No upcoming events shown when a lot of events in list&#x20;

#### Android

* **Resolved:** Uploading your app to the Google Play Store might have shown one of these two warnings.\
  While fixing this we were also able to make the AAB file smaller.

<figure><img src="/files/Gr73EY9VtvkvldSoWqvV" alt=""><figcaption></figcaption></figure>

### July 12, 2022

Today we have released a new version of the wizard to buy a new app.\
\
This new interface allows you to buy your app&#x20;

1. via a monthly subscription
2. an annual subscription
3. via a reseller bundle
4. or buy a new reseller bundle

We have also built a new "Invoice" overview where you can view and manage your subscriptions.

<figure><img src="/files/zqvqatpvA6ni14eBirT1" alt=""><figcaption><p>  <em>new checkout page</em></p></figcaption></figure>

<figure><img src="/files/OUJeCvq8ol1rVpZUs5ZM" alt=""><figcaption><p><em>manage your subscriptions</em></p></figcaption></figure>

<figure><img src="/files/8GYJWadJNzvUfDCXHeof" alt=""><figcaption><p>  <em>Checkout for our Reseller Program</em></p></figcaption></figure>

### June 30, 2022

The AppMachine has been rebuilding the Publish functionality in the past three months and from Mid June - Mid July we will be slowly releasing this new flow to all of our AppMachine customers.&#x20;

Using the new publishing flow  also means that the new Flutter version of your app will be published to the app stores.

The flow will first become available for new apps which haven't been uploaded to the stores yet.\
At the end of July the new publishing will also become available for existing AppMachine apps.<br>

> **Note: some features have not been implemented in the new application yet, which can mean that for your app you need to wait till you get access to the new functionality**\
> **Click the Update button in the Designer, to see if the new app is available for you**

#### Benefits new functionality

The new updated Publishing flow is important because&#x20;

1. the **Apple App Store publishing** flow now uses Apple App Store Connect APIs which means that\
   \- if Apple changes it's interface, the publishing will still work.\
   \- the status of your app is updated automatically in our system\
   \- if there are issues uploading your app, the screens in AppMachine will show you much more specific what the problem is, so you should be able to fix the issues yourself , instead of needing to contact the Support team.
2. a **Google Play Store flow** which uses AAB files
3. the new flows upload the new Flutter application which matches the version of your app which you see in the right side of the AppMachine Designer.

<figure><img src="/files/RgbQgCJEDQDhMZQpbwOo" alt=""><figcaption></figcaption></figure>

#### Is new publishing available for your app?

As of Monday June 20th: AppMachine will automatically check if it is possible to publish your app via the new flow based on the following criteria.

1. Is your app Multilingual or has a Default language which is not English?\
   \=> in that case you cannot publish your app with the new flow yet
2. Does your app contain blocks which are not supported yet in the new publish flow like Javascript, Loyaltycard or Coupons?\
   \=> in that case you cannot publish your app with the new flow yet.
3. Is this the first time the app is being published to the app stores?
4. Is your app paid for?&#x20;

#### To get started

1. In your app in the current Designer and click the Publish Now button in the top right corner![](/files/kmGeW9t72m25sHNrY8pU)
2. If your app is according to the new guidelines, you will see this screen, where you will need to choose Publish Flutter app\
   ![](/files/iey6aIJs7jSIHeY7W53i)\
   *If you don't see this screen and you do want to participate in the new publishing program, you can send an email to <support@appmachine.com> so we can check why your app cannot use the new flow yet.*
3. That will open our New publishing dashboard, which will look like this:\
   ![](/files/ErWPbzEE1Hxfg0OHm8w5)
4. Please follow these two articles to help you to get your app published to both app stores:&#x20;
   * Setup your app for the Apple App Store
   * How to setup your app for the Google play Store

#### Problems?&#x20;

* We want you to know that our whole team is available for you to fix any problems which might arise as soon as possible.
* For us to be able to help you as quickly as possible we ask you to&#x20;
  1. Use the **articles** in this section of our Help center:\
     ![](/files/kCNX6NvL5IZvYJkyYTR7)
  2. Whenever you don’t understand something, **email** <support@appmachine.com> immediately with the words “**Publish beta**” in the title and a specification of the issue.
  3. Please always include your **appnumber** and **screenshots** to explain the issue to us.&#x20;

We are very excited to have this new functionality available for you!


# Build your app

The most important steps to build your app

### Creating an app

After creating an account at AppMachine you can get started right away. Please have fun! Experiment! Discover everything that AppMachine has to offer! Building an app with AppMachine is free, easy, fun and your app will look **gorgeous**.

AppMachine's software is constantly evolving, so there may be a small chance you will encounter the odd imperfection. It would be great if you could report these to us at <support@appmachine.com>.

### App Dashboard

The URL to login and start working on your app is [design.appmachine.com](https://design.appmachine.com). Please bookmark this URL so you won't need to remember it.\
When you log in to your AppMachine account we take you to your App Dashboard.

<figure><img src="/files/YxxnBsitlzZfqVVHNGhl" alt="AppMachine App Dashboard"><figcaption></figcaption></figure>

You App Dashboard shows you an overview of your apps as well as some demo apps which we've placed there for inspiration. Follow these steps to create a new app!

1. To create a new app click on the **+ New App** in the top left corner of your App Dashboard.&#x20;
2. Pick a one of our awesome template or start building from scratch.
3. Your app will now be created. You can start adding content!
4. Preview your app in the browser or on your Android device with our [AppMachine previewer](/build-your-app/preview-your-app).

### Adding content to your app

Use all of our [**30+ blocks** ](/blocks)to make your app as interesting as possible. Add content. **Sell products, show data and inform clients.** And view all your changes live in your browser while you're building. Yellow blocks are quick and easy to use. Green blocks, where you can add your own, more complex data.

[**Turn your data into an app**](/data/appmachine-data)\
You can use our table templates to quickly start adding your own data or start with a clean slate and create your own database.

Add fields, add data, add images and automatically your pages in your app will appear.

[**Google Sheets**](/data/google-sheets)\
Connect with an existing Google Sheet to import data in your ap. The data is kept in sync between your sheet and your app.

Build an internal facing business app and let your employees manage the data on the road using your app.

[**Web Services**](/developers/web-services)\
Show information from external web services using REST API. Add your GET, PUT, POST and DELETE calls to make an interactive application.

### **What kind of apps can be built with AppMachine?**

AppMachine apps can not only be published as both native iOS and Android apps but also as a Progressive Web App (PWA). Native iOS apps can be published for Apple devices running iOS 13 and newer. Android apps can be run on devices running OS 8 or newer. PWAs can be launched in your device's browser and have the look and feel of a native app.


# Preview your app

Learn how to test your app and preview how it will look on your device.

### Preview on your Android device

Our special AppMachine Previewer app for Android allows you to view your app while you are building it. You can download the App Previewer by scanning the QR-code below or opening this [link ](http://email.appmachine.com/t/j-l-msklu-l-gy/)on your Android smartphone.&#x20;

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082189229/original/LdCKVI_Swhy_CB8GL7uYd5oTCjpSoku9fQ.png?1646141927)

Unfortunately there is no App previewer available in the Apple App Store at this time.

### Preview in the browser

You can also preview your app in the browser by clicking **preview** in the top right corner. Here you can see what your app will look like on mobile and tablet device. You can click through all the screens just as you would on a mobile device.

<figure><img src="/files/X0FvG8wTegbXHJBbfaYy" alt="Preview of an app"><figcaption><p>Preview your app</p></figcaption></figure>

The Previewer in the browser may, depending on the block you've selected to preview, show an error message indicating that the web view for that content is not available. The AppMachine Previewer in the browser may not load some web pages or web based content. (See screenshot below.)

You can open the link in a new tab to test the URL or preview the app in the AppMachine Previewer available in the Google Play Store.&#x20;

Rest assured, the content will display correctly in the published version of your app.

<figure><img src="/files/2zTkXz1694GJzmPkzZXg" alt=""><figcaption></figcaption></figure>


# App templates

Templates offer a head start for design and content for your app type or provides initial inspiration that you can build upon!

When creating a new app, you can choose from several templates to jump-start your app building journey.&#x20;

<figure><img src="/files/LL64pf25GnvHNFVEkNes" alt=""><figcaption><p>Select your template</p></figcaption></figure>

If you're just starting out, you can **Start from scratch** or choose the **Business** template so that you can ease into the platform.&#x20;

Some templates may contain more advanced design elements than others, like the **Religious Community** or **Tourist Information** templates. \
\
If you want to dive head first into designing an awesome app, choose whichever template you find more appealing! \
If you're ready to take on more advanced editing options with our Elements editor, you can read more about it [here](/style-your-screens/elements).&#x20;


# App Settings

To manage your app's **language**, **information screen** and **support** settings, navigate to the **Settings tab** in the left vertical menu. You can find this under the **Manage** tab once it has been expanded.

<figure><img src="/files/xm94zIHH3mRoyu51JYPV" alt="Settings tab AppMachine"><figcaption></figcaption></figure>

You can choose your language and your currency from the dropdown in the **App Details** box. The last option in this box is to open all external URLs in your app automatically in an external browser or not. Don't forget to click **save** after you've selected your choices.<br>

<figure><img src="/files/3i1kokgZXsXbh7lhheIH" alt="Choose currency"><figcaption></figcaption></figure>

The next box contains the settings for your **app's information screen**. This is the screen that opens when you click the icon in the top right corner of your app's home screen.<br>

<figure><img src="/files/IYJ6iV7td8xUQVIJ0AfC" alt=""><figcaption><p>App information screen</p></figcaption></figure>

In the app information screen box you can set your **logo**, your **customer URL** that is connected to your logo and you can give **information** about your app or company.

<figure><img src="/files/ZYi68bKHrO52FCpbp3fo" alt=""><figcaption><p>App information screen</p></figcaption></figure>

The last box contains the settings for your **support email**. Set the **email address** to which support requests will be sent to. Define a standard **email subject** for these support requests and set a **standard text** which will be included in the email.

<figure><img src="/files/qiofsnC6EzMjzQz4tBYB" alt=""><figcaption><p>Support email settings</p></figcaption></figure>


# Update payment method

Need to update your credit card info for your subscription? Find out how to do so in this article.

To update your payment method, please follow these steps:\
\
Go to **Plan and Usage** in the left vertical menu

<figure><img src="/files/yHeul9DFpwVC1lXXkwOZ" alt=""><figcaption><p>Dashboard</p></figcaption></figure>

In the **Plan and Usage** tab you can see your current plan displayed at the top (**Business / Annual** in this example) and in the middle of the screen is an overview of limits and usage for the current month and total overall.

<figure><img src="/files/yHj9WvtwR1uaHo2q9Ssu" alt=""><figcaption><p><strong>Plan &#x26; Usage</strong> overview</p></figcaption></figure>

To change your payment method click the **Manage Plan** button in the top right corner. This will take you to the plan details page. Next to your current payment method, is a pen icon. Click this icon to change your payment method


# Cancel subscription

If, heaven forbid, you need to cancel your subscription, you can find out how to do so here.

To cancel your app subscription, please follow these steps:

Got to **Plans & Usage** in the left vertical menu.

<figure><img src="/files/ejhDhLOaPw70osc8rnBa" alt="AppMachine Plans and Usage Dashboard"><figcaption><p><strong>Plan &#x26; Usage</strong> overview page.</p></figcaption></figure>

Click on the **Manage Plan** button to open the billing page. Here you see a **Cancel Plan** button.

<figure><img src="/files/hMto2PrfYw0x1rqHo4Zt" alt="Manage Plan AppMachine"><figcaption><p>Billing overview page for your plan.</p></figcaption></figure>

The last step is to confirm your choice, after this your plan will be cancelled.

<figure><img src="/files/kcTLatvaldga2J4phd5Q" alt="Cancel Plan AppMachine"><figcaption><p>Confirmation screen for cancellation.</p></figcaption></figure>

AppMachine apps require an active subscription to be kept live and working in the stores. Once the subscription has been cancelled and the active subscription period has expired, the content will be deactivated.

Your app will still be present in your AppMachine account and can be republished at a later date, if desired.


# General App Building FAQ

In this article we go over some of the frequently asked questions regarding what is possible in an AppMachine app.

### Can I add a third-party's SDK to my AppMachine app?

AppMachine does not allow third-party SDKs to be included in our apps. No exceptions.

### Do AppMachine apps support VoiceOver accessibility?

We currently do not support VoiceOver accessibility.

### Do I get limited push messages once the app is published?

The amount of push messages you can send depends on the plan you have. For more information about our plans go to <https://www.appmachine.com/pricing/>

### Can I use third party API’s to send push messages?

Push messages can be sent from our design platform [CMS or through the published app](/app-details/push-notifications). There is currently no option to send it from a third party API to the app.

### Where do I edit the content in the app's information screen?

When you click on the information button on the homescreen of your app, the app will take you to an information screen. The content of this screen can be edited by you in the Information Screen section of the Settings in the left side menu. For more detailed information, you can read our article about [App Settings.](/build-your-app/app-settings)

<figure><img src="/files/83DLyAk8ub1NBYRWJaG2" alt=""><figcaption></figcaption></figure>

### How can I let users log into my app before they can view the contents?

You can configure this in the left side navigation  **App users > Login settings.**\
On this page you can manage your settings at **Enable** **User Authentication** in the top right corner. More detailed information can be found in our [User Management ](/app-details/user-management)article.

### Why can't I add more blocks to my app?

Having too many blocks in your app rarely offers your users the best user experience. It makes your app larger to download, it can make your app slower and, in some cases, it could even make your app crash.

When you have a lot of blocks, chances are that you are adding the same blocks over and over again but with slightly different content. In this case, we recommend using our [data features ](/data)and placing all this data in an Excel file.

### When must an existing app be re-approved by the app stores?

If there are changes in the store’s information, you must publish a new version of the app.\
These include:

* new app icon.
* new springboard title.
* a different splash screen.
* activation of a Building Block that did not exist when your app was first published in the app stores.

### Can I download the .apk or .ipa file to test my app?

It is possible to download the .apk file of your app for test purposes.

You can test your app by downloading the AppMachine Previewer app from the Google Play Store using this link <http://apps.appmachine.com/previewer>.\
\
Or view the app in the simulator in the browser.\
\
The code we use to build your app is the same code we use for the app previewer. So your app will look the same as the one shown in the app previewer, just without the login of the previewer.

### Can I copy or duplicate a block and its content?

At the moment, it is not possible copy the blocks within the app. We will be considering this option for future releases of the AppMachine platform. It is possible to copy/duplicate Elements in the element editor.

### Can I remove the information button ("i") from my home screen?

It is not possible to remove the information button from the home screen of an AppMachine app. Important support functions have been built into this screen that help AppMachine troubleshoot any issues with the app you build.

### Do apps work without a data (internet) connection?

Native apps you make with AppMachine keep functioning without data connection. Without a connection the app will show you all the data that is cached on the device.

After starting the app, it will try to make a connection to our servers to check for updates.

Small updates are downloaded in the background and do not require user interaction. With a store update, the user sees a popup with the question if they want to download the new version of the app now or later.

### Why is the quality of my PDF file different on Android?

To view PDF files in an app a license is needed. This license is not included on all Android devices by default and it would require all of our users to purchase their own individual license to be able to view/open the PDF format. Since implementing support for individual licenses in our platform is not possible, we integrated a custom solution that reads the PDF file and renders an image of the contents in the app.

### How do I use the Image Selector in the AppMachine platform?

The Image Selector appears when you want to place an image as a background for your **Theme** or as a **Top Image** for one of your blocks.&#x20;

![](/files/8hkR7Bsbz2i4PRte6QMW)<img src="/files/Ia0XS0Odl4Bi8srkQyRe" alt="" data-size="original">

AppMachine provides different image sources like **Pexels**, **Dalle 2**, **Upload** (from your own libray), **Stock** images, and **App Images** (images previously uploaded and/or used elsewhere in the app).

Pexels: A source of royalty free images.&#x20;

![](/files/GLA0j8v6WiUbXz0iqKeF)

Dalle 2: AI generated source of images. Enter a prompt and Dalle 2 will provide you with an image based on the prompt.

![](/files/C4dpyT8ZYA9eBYuwEmnT)

Upload: Select images from your own personal image library on your device. Make sure these images are royalty free to avoid any issues.

![](/files/Qz77qWr5w1oIP8YXgJkX)

Stock: A selection of basic stock images made available to you by AppMachine.

![](/files/p7PVMER09XcBHH9XgLuw)

App Images: A quick selection tool to find images you've used elsewhere in the app.


# How to

This article lists practical how-to knowledge that is useful when building an AppMachine app.

### Table of Contents

[Set a block to inactive](#set-a-block-to-inactive)

[Access the Update History for your app](#access-the-update-history-for-your-app)

[Use a Google Calendar ID for the "Events" block](#use-google-calendar-id-for-the-events-block)

[Add a block](#add-a-block)

[Replace or delete a block icon](#replace-or-delete-a-block-icon)

[Delete an app](#delete-an-app)

[Delete/Remove a block](#delete-remove-a-block)

[Delete your account](#delete-your-account)

[Edit your app's name](#edit-your-apps-name)

[Add images to your information block](#add-images-to-your-information-block)

### Set a block to inactive

If you want to keep the users of your published app from using a portion of your app, make use of the "ON/OFF" switch.<br>

<figure><img src="/files/jMejQjQTouk93bDvmMFr" alt="Switch block on/off"><figcaption><p>The ON OFF switch as shown in a block's <strong>Settings</strong> tab.</p></figcaption></figure>

1. Select the block you want to hide.
2. Change the selector to **OFF**.&#x20;
3. When you publish (or update) your app, this block will not be visible for your users.
4. If you want to see the block in the app previewer while you are working on it, change the selector to **ON**.\
   If you need to do an app update, but you do not want to make the block available, set the slider to **OFF** again before you publish

Once you are satisfied with the block, change the selector back to **ON** and publish the changes to your users.

### Access the Update History for your App

The update history for an app is located in the "**Publish**" screen. To find the update history for an app, go to the Publish screen, click on the dropdown icon in the **Publish button** and then click **View Publication History**

<figure><img src="/files/1rbx9xTdm9g20W340SzW" alt="View publication history"><figcaption><p>Where to find the <strong>Publication History</strong> for your app.</p></figcaption></figure>

This will open a modal that shows publication history and details of each publish.

<figure><img src="/files/oDQ37e707ssb5UIVZdoW" alt=""><figcaption><p>This shows an overview of the store and content updates triggered for your app.</p></figcaption></figure>

Double click on a publish to show more details, for example why a publish may have failed.

<figure><img src="/files/utpCaF6jN3m73ZU0H32r" alt=""><figcaption><p>Version information screen that is show when you double click on a submitted version row.</p></figcaption></figure>

### Use Google Calendar ID for the "Events" block

This is how to retrieve your Google Calendar ID for use in the "Events" block.

1. Go to <http://calendar.google.com/> and login to your **Google Calendar account**.
2. Click the dropdown next to the calendar name.\
   **Please note that we only support Google Calendars which are publicly accessible.**
3. Copy the “**Calendar ID**” and paste it into the Calendar ID field of the **Google Calendar sections** of the **"Events" block**.

### Add a Block

You have just created an app and can’t wait to add features. What next? Adding content to your app of  course. \
How to add a block:

1. Go to the **Content** tab in the left side menu\
   ![](/files/34u9AqVSWkNzMKHqBp6u)
2. Click on the red **+ Block** button.\
   ![](/files/uPXZvC6TlFEv6NBQkGFu)
3. Click on a **block** to see a description of what it does<br>

   <figure><img src="/files/oquwK8sG2PpSqp28FXvQ" alt=""><figcaption><p><strong>Add block</strong> pop-up.</p></figcaption></figure>
4. Click **Next** to add the block and follow the instructions. You can check the instructions on how to add each block [here](/blocks).

### Replace or delete a block icon

Click on a building block's icon to reveal the **Edit** and **Delete** options for that icon.

<figure><img src="/files/jobR320LzyucuBZYzATu" alt=""><figcaption><p>Click on the icon to see the <strong>Edit</strong> and Delete options.</p></figcaption></figure>

Clicking on "**Replace**" allows you to select a new icon from a number of different sources.

<figure><img src="/files/VAaU8JcUAxjXoFjm0s1J" alt=""><figcaption><p>Icon Image Selector.</p></figcaption></figure>

* **Pexels** - Allows you to browse and pick from free stock photos you can use everywhere.
* **Upload** - "Upload" gives you the option of uploading a new image to the AppMachine CMS to be used as an icon. You can upload this image from your local system or import one from a URL.
* **Stock** - Here you can browse our preselected icons
* **App Images** - This option displays all the images that are being used in your app so far.

### Delete an app

Do you want to organise your apps by deleting the ones you're not using? This can be done very easily by going to your **App Dashboard**, clicking on the menu icon of the app you want to delete and clicking **delete**. Confirm your choice to finalize deletion. Note that this process can not be undone. Published apps can't be deleted.

<figure><img src="/files/N14Yu6AVQiQzFAaTaTJD" alt=""><figcaption><p>App list screen.</p></figcaption></figure>

### Delete/Remove a block

If you want to delete a block, all you have to do is click the delete icon for the block you want to remove. A modal will open and you can confirm your choice.&#x20;

<figure><img src="/files/zYlwOiAdWmgY7nzcqjJj" alt=""><figcaption><p>Delete block button.</p></figcaption></figure>

**What to do when you've accidentally deleted a block from your app**

When you've accidentally removed a block from your app and you want to get it back, contact <support@appmachine.com> to request the block to be restored. In most cases our support agents will be able to restore the deleted block. Please be aware though that this might not always be the case.&#x20;

### Delete your account

If you want to delete your account, then please contact <support@appmachine.com>.\
Your request will be processed by our privacy team.

### Edit your app's name

Giving your app a proper name is extremely important, especially when you're working with several copies of the same app. Try to keep your app names up to date so that you know which versions are the most recently updated. Once you've finished editing and designing your app you can change its name to the definitive app name. But how is this done?

You can rename your app in two places; in the **Editor** and in the **Publish Screen**. \
If you're in the **Editor** your app and want to change the name, click the edit icon next to your current app name.

<figure><img src="/files/RNjzsw3OTpvIBKIFr9bX" alt=""><figcaption><p>Edit app name icon next to app name.</p></figcaption></figure>

This will allow you to edit your app name inline. Don't forget to click the save button!<br>

<figure><img src="/files/9NQcqcvXBjxlqQdgNVim" alt=""><figcaption><p>Enter the new app name. </p></figcaption></figure>

If you're in the Publish Screen and want to change your app name, go to the bottom right section, App Vitals and click on the App Name field. Now you can edit your App Name. Don't forget to click save after the change.

<figure><img src="/files/l0g7NUOGHwTWcbZ1Exsc" alt=""><figcaption><p>Change the app name in the App Vitals section.</p></figcaption></figure>

### Add images  to your information block

In an [Information](/blocks/information) block you can text, videos, but also images. You can even use it to only add a single image or a list of image beneath each other.

When editing your Information block, click the **expand** **icon** to show a bigger text editor with more options or click the **arrow icon** to show more editing options in the small editor.

<figure><img src="/files/VGUpI4oi0wnR3gc5Pl1w" alt=""><figcaption><p>Expand text editor options.</p></figcaption></figure>

In both scenario's you will see more editing options, including an **image selector icon**.&#x20;

<figure><img src="/files/aPHMwKcrkJGEjtL5ZMqr" alt=""><figcaption><p>Image selector option in the text editor.</p></figcaption></figure>

Click the **image selector icon** to open the i**mage selector**.\
Within the image selector your can choose from **three different ways to add an image** to your information block:

1. Pexels: stock images
2. Upload: to upload your own images
3. App images: choose from images that are already used in your app

   <figure><img src="/files/bpch7vQ3KA9OoiiNZHcN" alt=""><figcaption><p>Image selector screen.</p></figcaption></figure>

   Chose the option that is best for you, pick an image and **click** **select** in the **image modal** to add the image to your block.&#x20;

<figure><img src="/files/GI4KssZ7m3hvRQB8gAwV" alt=""><figcaption><p>Image selector editing screen.</p></figcaption></figure>

Don't forget to **save** your block or you will lose your changes!

<figure><img src="/files/1HkjqAnrsEgv8uO1rIBQ" alt=""><figcaption><p>Save button</p></figcaption></figure>


# Blocks

In this article we provide a brief overview of the blocks that are available in the AppMachine designer.

### **Add Blocks to your app**

{% embed url="<https://youtu.be/M1C4oa8jeSA>" %}

You can add blocks to your app via the red **+ Block** button on your Content tab. \
With the wizard you can select one of the 30+ preconfigured blocks which help you show your content in a very easy and quick way.

<figure><img src="/files/wco87A11ySooMCpapEdn" alt=""><figcaption><p>Content tab - Add block</p></figcaption></figure>

### **List of blocks**

#### **Call**

Let your users directly call the specified phone number. You can, for example, use this building block if you own a restaurant and title it 'Reserve a table'. Customers won't have to memorize your number, but can call you straight from this block instead.\
\ <img src="/files/CpCEqgCkFFgsLWFbJTMw" alt="" data-size="original">

#### **Contact**

With the Contact building block, users can reach you in a variety of ways. Enter your address, phone number, email, website and location. Read the full guide for this block [here](/blocks/contact).

<figure><img src="/files/Vrx1IyIp7DxwpgRnChmN" alt=""><figcaption><p>Editing a Contact block.</p></figcaption></figure>

![](/files/pkvgm3wnwYVbq1QjKBx8)

#### **Coupons**

Increase sales and attract new customers by offering coupons to use in your store. Read the full guide for this block [here](/blocks/coupons).

<figure><img src="/files/jPlPUXWhVtLJ7O96AA3b" alt=""><figcaption></figcaption></figure>

#### **Email**

This building block allows users to send an email to a specified email address. Potential customers can mail you or your sales department a question directly.

#### **Events**

Are you organizing an event and do you want to show workshops or lectures, or are you the owner of a restaurant that organizes theme nights? Add them to the Events building block and your users will always be informed when fun events are organized. Read the full guide for this block [here](/blocks/events).

<figure><img src="/files/5J4IGEk2eHB0APwgI7ah" alt=""><figcaption></figcaption></figure>

\
![](/files/vp9sw8qjVCXWJBs9M6TK)                          ![](/files/Uf4Ff1aIFYIMM1AOZfe7)

#### **FAQ**

Include a list of questions and answers. Add your frequently asked questions to the CMS. The block will display a list of questions and matching answers.&#x20;

<figure><img src="/files/fQohiATHJwTC5X3yDIcs" alt=""><figcaption></figcaption></figure>

\
\
![](/files/ayLEgHjJmx4Qcok7mobU)<br>

#### **Facebook**

Add a Facebook timeline, including pictures, status updates and links. Facebook albums can be included using the Photos building block.\
\
![](/files/kMJquncf74wJA1OfCyYR)

#### **Information**

In an information building block you can enter a description of your company, activity or event using a rich text field. Read the full guide for this block [here](/blocks/information).

<figure><img src="/files/mBh6jRCg3hLva6iQXSMb" alt=""><figcaption></figcaption></figure>

#### **PDF**

Upload one or multiple PDF files.\
\
![](/files/esMS6UzjvjkP1o9euIJK)

#### **POI**

Display multiple Points of Interest (POI) on a map, for instance to indicate the various branches of your company. For hotels, you could display the nearby recreational facilities on the map, or for a sports association you could show the locations of other players in your league. This will allow users to call up information on a POI and calculate the route from their current location to the POI of their choice.

#### **People**

Present your co-workers, team members, colleagues or band members by including their name, picture and a detailed description.

<figure><img src="/files/YAZeoev1FN1oSCrh6dgX" alt=""><figcaption></figcaption></figure>

![](/files/aHwl0XJnI4dlrICiOfsV)                          ![](/files/yw2Up8GXpBu9NCx4yqaR)

#### **Photos**

Show customers, fans, co-workers and other users what you are working on. Retrieve photos from external sources such as Facebook, Instagram or Flickr, or upload your photos to our app CMS.

#### **Products**

Even if you do not own a web shop, you can easily show products. You can add a photograph and a detailed description to give users a taste of the products you are selling. You can specify a URL for each product that users can tap to view more information.

#### **Radio**

Listen to your favorite radio station live! The music player accepts streams that are either AAC-LC audio (up to 48 kHz) or mp3 (MPEG-1 Audio Layer 3 up to 48 kHz). This includes the following extensions: mp3, m4a, m4b, m4p, m4v, m4r, 3gp, mp4 and aac.

<figure><img src="/files/uBUho1qzM428quwJRciu" alt=""><figcaption></figcaption></figure>

![](/files/ywRweQuo4KS7zT1RzFlg)                          ![](/files/veFCdxFGccLZghpjzsRQ)<br>

#### **Submenu**

Use a submenu to group functional blocks on your homescreen. You can display submenus in various different ways, e.g. as a list or in the shape of big icons.

#### **Twitter**

Show tweets for Twitter accounts or for buzzword. Users will be able to retweet, reply, favorite and share tweets via email.

![](/files/Plt0n8LFQLmnwQh3GDDW)

#### **URLs**

Use this block to display a list of URLs. Users will be redirected to these websites if they tap on a link. You can use this block to direct users to your website, an online booking system, etc.

<figure><img src="/files/gTAWBcQWabvXVaHYNuYy" alt=""><figcaption></figcaption></figure>

![](/files/kdlROaTQNnGEPEO4F6qI)

#### **Video**

Show customers, fans, co-workers or other interested parties videos of what you are working on. Retrieve video playlists from external sources such as YouTube or Vimeo, or place individual video links directly to our app CMS.

#### **Web Page**

Show a web page by entering the URL. If you want to show links to multiple websites, use the URLs block.

![](/files/x0VWLqzucSorVzWF6boP)


# Admin

AppMachine's white-label editing feature.

For more information about this block, please read: [Admin CMS](/app-details/admin-cms)


# Blank Page

You can now add a Blank Page block to your app with which you can create and entirely customize your own screen and add new elements easily.

### **Adding the Blank Page building block** <a href="#add" id="add"></a>

1. Click the red **+ Block** button.
2. Select the **Advanced** tab.<br>

   <figure><img src="/files/t0nSVFD6nuCc8tV59GRp" alt=""><figcaption></figcaption></figure>
3. Select the  **Blank Page** block and click **Add this block.**
4. Fill in the **name** of the block and click on **Add this Block**. <br>

   <figure><img src="/files/nVCMNsC1kb14cJEUvk5l" alt=""><figcaption></figcaption></figure>
5. Click on the **icon** if you want to change the image used in the menu.\
   \* **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.\
   \* **Delete** removes the icon so that only text is used (in this case "Gigs") is presented in your app's menu.

### Using Elements Mode to build your Blank Page

Elements mode can be accessed by clicking on the "**Edit in Elements mode**" button under the **General** settings or, while the Blank Page block is selected, clicking on the Elements section above the block tree.

![](/files/xYEZrWa7vmFZgT3n1zc8)

#### Adding Elements to your app

To add a new element to your app, click on the blue + Add Element button.&#x20;

![](/files/Lxrb5TztpPCQjppLq7mr)

You will see a window appear with three sections; **Your Components**, **Components**, and **Display.**

* **Your Components**: In this section, custom components (or a collection of Elements) that you have created and saved will appear in this section.&#x20;
* **Components**: These are collections of Elements with a specific design or purpose/functionality that have already been created for you by AppMachine.<br>

  <figure><img src="/files/n1ycavJk9mrggKmrjp38" alt=""><figcaption></figcaption></figure>
* **Display**: These are the individual Elements with which you can edit your Blank Page block with design elements or information that you want to display.

A great way to get started with building components in your Blank Page block is reviewing or understanding how the Components were built that we have already made available by AppMachine in the **Components** section.

Below, the Component "What's New" has been added to a Blank Page block.&#x20;

<figure><img src="/files/UM2KRhnO6TNscoj9J2Ct" alt=""><figcaption></figcaption></figure>

The "**What's New**" component is comprised of a title and a list with three items. Each item has it's own icon to illustrate the item.&#x20;

The entire component is contained in a Container element. This allows you to organize your designed components on the screen and to easily move entire components with the Element tree.&#x20;

You can see below how the "Item 2" **Container** element has been moved to the end of the list now.

<figure><img src="/files/9GP8OJ6MoBOmnTeAKSVR" alt=""><figcaption></figcaption></figure>

### Element Properties

As you can also see, each Element has its own set of Properties that can influenced. These Properties appear when you select an Element in the Element tree. <br>

<figure><img src="/files/CB24x49hlfBbh4mdSCH6" alt=""><figcaption></figcaption></figure>

These Properties can include:

* **Layout:** Allows you to change the **Width**, **Height**, **Margin**, **Padding** and **Gap** as relative to other Elements.&#x20;
* **Background:** Allows you to change the background of the selected Element.&#x20;
* **Border:** Give the selected Element a border and define the radius of the border, the width, and the color.
* **Other:** Give the Element a name for easy identification, a visible label, and turn the element's visibility on or off with the toggle.

Now that you've analyzed how one of AppMachine's Components has been built, try building your own screen(s)! If you run into any issues, don't hesitate to contact [AppMachine support](mailto:support@appmachine.com).&#x20;

### **The Blank Page building block settings**

The **Blank Page** building block editor is composed of two editing screens: **General** and **Design**.&#x20;

<figure><img src="/files/Fc19qWBHufvZcNLUmqm3" alt=""><figcaption></figcaption></figure>

The settings in the **Settings** editing screen are empty here as the entirety of this block is edited in  Elements mode. Click on "Edit in Elements mode" to edit the content of this block. **T**he settings in the **Design** screen influence those settings that you want to be different than those selected in the  **Theme** block.&#x20;

### **Settings**

There are several aspects of your **Blank Page** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF**  selector.

Change the selector to **OFF** to keep users from seeing the Blank Page block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.<br>


# Call

Call a designated number with a single click. Allows your users to quickly get in touch with you or a contact that you've set in the app.

The phone will begin ringing immediately. There will be no extra screens.

<div align="left"><figure><img src="/files/thnUcGsF8gNORMyT9rCo" alt=""><figcaption><p>An activated Call block on an iOS device.</p></figcaption></figure></div>

Users can thus easily make reservations or reach a (help desk) representative for your service. You give users the ease of mind that they don't need to store or remember your number.&#x20;

### **Adding the Call Block** <a href="#add" id="add"></a>

1. Click on **+ block**.
2. Select the **Call** block and click **Add this block**.
3. Fill in the **phone number** using the country code (ex. +1 for the US) and click **Continue**.

   <figure><img src="/files/3YjPwFnHCJQV96ERoHOu" alt="Add block wizard for the Call block."><figcaption><p>The phone number prompt while adding a call block.</p></figcaption></figure>
4. Fill in the **name** of the block.
5. Click on the **icon** if you want to change the image used in the menu of your app.

   <figure><img src="/files/WdzZcYstshYC8XRdlkZ8" alt="Changing the name and icon of the Call block. "><figcaption><p>Changing the name and icon of a Call block. </p></figcaption></figure>
6. When you’re done, click **Add this Block**.&#x20;

### **Configuring the Call block** <a href="#configure" id="configure"></a>

Now that you've added the Call building block, it's time to configure it. The Settings tab is the only tab in which changes can be made. \
\
Settings allows you to influence how the block will function.

### **Settings**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will shop up in the app menu
* The **telephone number**

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF" selector.

Change the selector to "OFF" to keep users from seeing the Call block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

### **Design**

This block uses the default call module from iOS or Android. There are no Design settings that can be changed for this block.&#x20;

### **Frequently Asked Questions** <a href="#faq" id="faq"></a>

#### **- How should the phone numbers be submitted to the building block?**

For best practices, please use the international format for phone numbers and country codes. This allows users to call you from wherever they are located themselves. (ex. +1 for the US, +31 for the Netherlands)


# Contact

Stores your company's contact information. This includes information like your address, phone number, e-mail address, and website, as well as your Twitter, and LinkedIn accounts.

Users can now call or email you at the click of a button. Users will be shown the route to your address in their smartphone's map application if they click on your address.

### **Adding your contact details**  <a href="#add" id="add"></a>

1. Click on + **Block**.
2. Select the **Contact** block and click **Add this block**.
3. Fill in your contact details.
   * **Name** - Enter the name of your company.&#x20;
   * **Address** - List the address that you'd like to make public to your users. AppMachine will show suggestions from Google Maps as you enter your address. The address will be designated on your map with a pin.&#x20;
   * **Phone Number** - Enter your phone number here. Users will be able to use this to contact you straight from the app. This works similarly to the "Call" building block. For more information, check the "Call" article.
   * **Email** - Enter you email address here. The app will open an email client with the correct contact info when users click on the address.
   * **Website** - Enter your website's URL here. Clicking on the URL will take the user to your website in a mobile browser.&#x20;
   * **Twitter** - Enter your Twitter name here (without the "@" symbol). AppMachine will check if you've entered a valid Twitter name and confirm its validity with a green checkmark. Clicking on the Twitter name will take users to your Twitter profile in a mobile browser.&#x20;
   * **LinkedIn** - Enter your LinkedIn account here. AppMachine will check if you've entered a valid LinkedIn name and confirm its validity with a green checkmark. Clicking on the LinkedIn account will take users to your LinkedIn page in a mobile browser.&#x20;
   * **Description** - You are free to use this space to enter any extra information you feel is relevant. You edit this block using the text editor. The text editor allows you to style your text and even add images and/or videos.\
     &#x20;

     <figure><img src="/files/D23UnwborFJ4Tkwz7sbB" alt="Adding the Contact block"><figcaption><p>Adding the basic information to your Contact block.</p></figcaption></figure>
4. Click **Continue** when you have filled in your details.
5. Fill in the **name** of the block.

   &#x20;

   <figure><img src="/files/PizVhEa19WCZbdelTMwY" alt="Changing the name of the Contact block."><figcaption><p>Change the name and icon for your Contact block here.</p></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
   * **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
   * **Delete** removes the icon so that only text is used (in this case "Contact") is presented in your app's menu.
7. When you’re done, click **Add this Block**.

### **Configuring the Contact building block** <a href="#configure" id="configure"></a>

Now that you've added the **Contact** building block, it's time to configure it. There are only two settings screens available here: **Settings** and **Design**.

<figure><img src="/files/5pDtdTSNIyzZkS6L3thd" alt="The Settings and Design tab of the Contact block. "><figcaption></figcaption></figure>

**Settings** allows you to influence how the block will function and the **Design** settings will determine the aesthetics of the block.&#x20;

### **Settings**

There are several aspects of your Contact block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image**
* The **Layout** for the Contact block

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF"  selector.

Change the selector to "OFF" to keep users from seeing the Contact block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

### **Design**

These settings allow you to make aesthetic changes to your app in magnificent detail.

### Frequently Asked Questions <a href="#faq" id="faq"></a>

#### - This building block features the ability create links to my  Twitter account while you already offer a building block to integrate these services into my app. Isn't that a bit redundant?

Yes. Don't feel obligated to enter this information in the **Contact** building block if you've already created building blocks for Twitter. On the other hand, it might not be a bad idea to bundle your contact information in one place for easy reference.<br>


# Contact Us

Allows users to contact you using a contact form.

You can ask for feedback on your products, or have your customers requesting an appointment from within the app. You can even let clients send you a photo. You can customize the "Thank You" message your clients see after submitting the form.

### **Adding the Contact form block**

1. Click on **+ Block**.
2. Select the **Contact Us** block and click **Add this block**.
3. Fill in the **recipient e-mail address**. This is the e-mail address that the contact forms will be sent to.

   <figure><img src="/files/pt40hktemaT3AWwcEauB" alt=""><figcaption><p>Enter the recipient email address in this screen. </p></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.<br>

   <figure><img src="/files/Wxz4GlJl5RBAj3MmmprZ" alt=""><figcaption><p>Change the icon or block title in this screen.</p></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.

* **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
* **Delete** removes the icon so that only text is used.

&#x20;     When you’re done, click **Add this Block**.

### **Customising the Field Descriptions**

1. Select the **Contact Form** block in your app.
2. Make sure the **Settings** tab is selected.
3. Customise the following fields

* **Recipient:** The email address that should receive the form.
* **Description**:  The text to be shown above the contact form fields. 
* **Field 1 - 3**:  A small text box that can be used for information like a name, username, email address, etc. 
* **Field 4**:  A bigger text box that can be used for descriptions or long text messages. 
* **Photo Field**: Allows the app user to send an image along with the submitted contact form.
* **Text on send button**:  The text that will be shown on the send-button in the top left corner of the screen. (max. 10 characters) 
* **Thank you title**:  The title that will be shown in the navigation bar after a user submits a contact form. 
* **Thank you message**:  The message that will be shown in the screen after a user submits a contact form.<br>

  <figure><img src="/files/Pwn3Hx8to7aEMzhDfrgE" alt=""><figcaption><p>The settings/editing screen of a Contact Us block.</p></figcaption></figure>

To save the changes, click **Save**.

### **Configuring the Contact Form block**

Now that you've added the **Contact Us** building block, it's time to configure it. There are only two settings screens available here: Settings and Design.

**Settings** allows you to influence how the block will function and the **Design** settings will determine the aesthetics of the block.&#x20;

#### **Settings**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will show up in the app menu
* The **top image**
* The **values** of the different contact form fields.&#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF"  selector.

Change the selector to "OFF" to keep users from seeing the **Contact Us** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to your app in magnificent detail.


# Coupons

The Coupons block allows large retailers to small shop owners to discount specials with a coupon in the app. App users can open coupons in the app and redeem them at shops.

The coupons can also be set to be available via email. This means users need to enter their email address in order to receive a redeemable coupon.

### **Adding the Coupons building block**

1. Click on **+ block**.
2. Select the **Coupons** block from the **Basic** tab and click **Add this block**.
3. Change the name and the icon of the block, if desired, and click **Add this block**.
4. When you’re done, click **Finish**.

### **The Coupons Block Settings** <a href="#settings" id="settings"></a>

The Coupons building block editor is composed of three editing screens; **Data**, **Settings**, and **Design**.

<figure><img src="/files/1noTwbTgDqlNUbNWI2ur" alt=""><figcaption></figcaption></figure>

The **Data** screens allows you maintain the content of the block, the **Settings** screen gives you control of the **Top Image** settings, and the **Design** settings will determine the aesthetics of the block.&#x20;

### **"Data" Tab**

This is where you add reward items that can be redeemed using the coupon. This section works like a List in the app.

To add an item to the list, click on the **Add new item** button.

<figure><img src="/files/MPDuTXOKhDo8KgkrSQLG" alt=""><figcaption><p>You can add new coupons in this screen.</p></figcaption></figure>

You can then enter the coupon's title, description, image, you can specify if the coupon is a "on-time offer," the date range for when the coupon is valid, and the details asked of customers registering to use a one-time offer coupon. Merchants can add a bar code as an image if they have discounts that can be scanned. Please note, though, that this doesn't always work depending on the brightness of the device's screen.

<figure><img src="/files/8OreZyjkVVSPrPzpxsMl" alt=""><figcaption><p>You can add the data for your new coupons in this pop-up.</p></figcaption></figure>

To edit a coupon, click on the pencil icon that appears when you hover over the coupon in the **Data** list.

<figure><img src="/files/7mAX5KcCe6WdyuUbdGSl" alt=""><figcaption><p>The icons to edit or delete a coupon are on the right of each coupon in the list.</p></figcaption></figure>

The trash can icon next to the pencil icon can be used to delete the coupon.&#x20;

#### **General Settings**

The **Data** tab allows you maintain the content of the block, the "Settings" screen gives you control of the "Top Image" settings, the "Confirmation Message" for when a coupon is redeemed and the email settings. You can also change the text on the "Redeem" button.

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "Activated"  selector.

&#x20;![](/files/yjnQ6ggav2JBCHZpKjaC)

Change the selector to "OFF" to keep users from seeing the Coupons block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

### **Using the Coupons Feature** <a href="#using" id="using"></a>

**Merchants:**

Create your coupon. The most important setting that can influence how the coupon operates is the "One-time offer" option. Selecting this option will limit the number of times a user on a specific device can use this coupon. Users will need to submit certain information in order to redeem the Coupon. Even if they delete the app and reinstall it, redeemed coupons will stay redeemed.&#x20;

**Customers**:

Customers can redeem regular coupons at any time by showing the merchant the coupon in the app. For one-time offer coupons, the customer should fill in the required information and submit it in the presence of a merchant. <br>


# Custom Form

You can now add a Form block to your app to which you can add new fields easily. A data table is created in the AppMachine Data section automatically. When your app users fill in the form in the app, the data is stored in your AppMachine Data Table.

1. Click the red **+ Block** button.
2. Select the **Advanced** tab.\
   ![](https://lh4.googleusercontent.com/9rO_nFb6CnYtBreQyVwPWiBmeRBPqjB-ab7xlsMt4Y5RT32GazT4VgKEHfVPy_Lkxz34l_z6yTlq2ufTovq2Q-TG7d07vj_3tmgfFTv7VAoPWT7nK370duwKJ32Ld579V1HlVhD4sjy9t7IuaLJNVXC-1tgtSF9TBLLljSgN_rNMBTiEKwksuvreOGxBqg)
3. Click **Form** > **Add this block.**
4. Select **Form.**
5. The block will be added to your app.<br>

   <figure><img src="https://lh4.googleusercontent.com/jrgU3oISZSU-8WBatOBOb8uCTWye1aNX7lYkDvmPYh-qIkugoMfRoXXNeTKLjPqEwDUdvs4qYgl0WB76YXbFrq8NY7uNSe9JBQ-QFLDiya9J86zsVSganRFCv49PAPomuPTQkF257omSg7epTMYGNpi8qKUXmyG19UcP_teUSgVUKKSlI8xr6A-YKnfWaA" alt=""><figcaption></figcaption></figure>
6. Click **Add new field** to start adding fields to your form. Always **Save** your changes. \
   The form currently supports the following types of information: Boolean, Currency, Date, Date\&Time, Decimal, Email, link, Multiline text, number, Percentage, Phone number, Rating, Text and Time.\
   **Note**: In the following weeks support will be added for image upload and dropdowns.
7. Click on a **field**, to make additional settings like required, placeholder or to change the text label\
   ![](https://lh6.googleusercontent.com/bMV_Z_00yXlG8WVVqfHAXyKLicQhDN7SI417oDN5LK5vW_rEp_s00T_kuC6Y1FPP2yRRvwH472xPxtbdKrCh0bXNM6cXTZXUc8cghk2EB-Xb5lihxDAKEymlRnkQV4_5oe3zLwAjYP3Pk_o3Ofz_SXrpGN3BH_NArzxu3pdpdDSRSoowPsUrYqXXtIpwkw)
8. **Fill** the information in your form and click **Submit** to test where your data is stored.<br>

   <figure><img src="https://lh6.googleusercontent.com/I6zMREJaPAw6kpuqgswxMzrLrQdEPrw2x15kgcIEK8AV2sRsRJXdq_6-AyJGpqqMM-k1VEcQ4i9cN66MkyNrYjzmJC8XhSFjxHvsZxd208Ht6dMnKIfwAa11Kusg5sIGXCYuCZRUkOtVtTfivj6gkDmkb9gEeYg81ASHHrHC0WyOYwqUVaMrlZVlMNAf1Q" alt=""><figcaption></figcaption></figure>
9. With the **View data** button in the top right corner you can see the responses filled in by your app users.\
   You can also click **Data** in the left side navigation. You see the automatically created table with the entered information

   <figure><img src="https://lh5.googleusercontent.com/JlEyc8cJYUk9Sx1gZsnLp9fkGBWS02pwtVBBu3frhBYkdvuMpINrL9BJjOTMMKth7LzVurTjtRyjOnC2L0vSKA6t43UBDZD_vRp6LA7n9GukytivIsBOQK1iKFMJ2DRrkI5aqXZuKvT0wfNER7y6yYoIJRsMP084X8vkDzyjWV7y2Ls5iYJZetkblGGFVQ" alt=""><figcaption></figcaption></figure>


# Email

Allows app users to send an e-mail with the click of a button.

The building block also allows you to enter a predetermined subject. Clicking on the menu item created by the **Email** block opens an email client on the user's smartphone without going to a different screen first.&#x20;

This allows users to quickly send you an email without needing to remember or type out your e-mail address.

### **Adding the Email building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Email** block and click **Add this block**.
3. Fill in the **recipient email address**.\*
4. Fill in the **subject** line that will be displayed as a default.

   <figure><img src="/files/2JfTUSaf0FQYuvy8gSeI" alt=""><figcaption><p>Enter the recipient email address and subject line for the Email block here.</p></figcaption></figure>
5. Click **Continue**.
6. Fill in the **name** of the block.&#x20;

   <figure><img src="/files/EcV43bF3WCi0AEqAfVXB" alt=""><figcaption><p>Change the block's icon and title here. </p></figcaption></figure>
7. Click on the **icon** if you want to change the image used in the menu.
   * **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
   * **Delete** removes the icon so that only text is used.
8. When you’re done, click **Add this Block**.\
   \
   \* AppMachine will check if you've entered a valid email address format and confirm its validity with a green checkmark. AppMachine doesn't check whether the email address you've submitted is active so please check for spelling errors.<br>

### **Configuring the Email building block** <a href="#undefined" id="undefined"></a>

Now that you've added the **Email** building block, it's time to configure it. There are only two settings screens available here: Settings and Design.

<figure><img src="/files/oAskApni5gtW0EXfIXZQ" alt=""><figcaption></figcaption></figure>

**Settings** allows you to influence how the block will function and the **Design** settings will determine the aesthetics of the block, though these are limited for the Email block.&#x20;

#### **Settings**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will show up in the app menu
* The **email** address
* The **subject** line

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF**  selector.

Slide the selector to **OFF** to keep users from seeing the Email block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design Settings**

These settings allow you to make aesthetic changes to your app in magnificent detail. The email block's design settings are limited as the screen is linked to the mail client used on the device.&#x20;


# Events

Displays a list of events. You see the name of the event, a description and the date that the event takes place.

On iOS devices, the list is automatically divided into two groups; one that displays upcoming events and one that displays past events. Android devices show the a list containing both Upcoming and Past events in the same screen.

**NOTE**: AppMachine will load events in the span of one year. This means that events scheduled six months before the current date and six months after the current date will be shown in this block.&#x20;

You can use sources from the internet, like Google Calendar, to pull the data to create your events list. External data sources like these generally provide the user with the place name, event name, date, and location of the event. If applicable, users can even buy their tickets directly from the event item when you provide a valid URL. The event information is always up to date as the app pulls the data from the server every time users open the events block in the app.&#x20;

Whether you're organising a workshop, a book-reading, theme nights at your restaurant, you can place these directly in the Events building block.&#x20;

## **Adding the Events building block** <a href="#add" id="add"></a>

1. Click on **+ Block** (the red add block button).<br>
2. Select the **Events** block and click **Add this block**.
3. Choose the data source for your events:

   * **AppMachine CMS**: maintain your own list of events. After building the block, add the events in the List Settings of the block. See below for more information on the List Settings.
   * **Google Calendar**: enter the Calendar ID for the calendar you wish to connect (see how below).<br>

   <figure><img src="/files/l3yVjBWqa5qGNDqJMQYt" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block and click on **Add this Block**.&#x20;

   <figure><img src="/files/RueZ56aAq3phtPWWZSq9" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
   * **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
   * **Delete** removes the icon so that only text is used (in this case "Gigs") is presented in your app's menu.\
     ![](/files/DjdjKWwq8enTf8cjyb01)
7. When you’re done, click **Add this block**.

**NOTE:** When linking a Google Calendar make sure all events must have a time and description included in order for them to be displayed in the correct chronological order in the app.

### **The Events building block settings** <a href="#configure" id="configure"></a>

The Events building block editor is composed of three editing screens: Data, Settings and Design. Please note that the Data editing screen is only available if you chose the AppMachine CMS as your data source.

<figure><img src="/files/PUenwaXOapVQNFnBFYyd" alt=""><figcaption></figcaption></figure>

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

### **Settings**

There are several aspects of your Events block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image** for the Events screen
* Allow **sharing** events via twitter, Facebook, or email
* In the case of using Google Calendar as a data source, you can edit the calendar ID here<br>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF"  selector.

Change the selector to "OFF" to keep users from seeing the Events block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

### **Data Settings**

This is where the link between the external data source is maintained. If you've chosen to create your own events list using the AppMachine CMS, then this is where you add the events to your list.&#x20;

### **Design Settings**

The Design screen allows your to make highly detailed changes to your building block. Design gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.&#x20;

### **Frequently Asked Questions** <a href="#faq" id="faq"></a>

#### - How do I edit the external data source?

External data sources can only be entered once per "Events" block. This prevents you from losing  all your events if you accidentally edit the data source linked to the building block. New data sources must be created in new building blocks. You can then delete the redundant building block in its "General" settings.&#x20;

#### - How do I find my Google Calendar ID?

1. Go to <http://calendar.google.com/> and login to your **Google Calendar account**.
2. Click the dropdown next to the calendar name, please note that we only support Google Calendars which are publicly accessible.
3. Copy the “**Calendar ID**” and paste it into the Calendar ID field of the **Google Calendar block**.

**- Why aren't my Google Calendar events showing in chronological order?**\
\
All events must have a time and description included in order for them to be displayed in the correct order.


# FAQ

Displays a list of questions and answers.

The questions are presented in the first screen. Clicking on a question brings you to the next screen with the answer to that question.

This building block is a way of giving users more information in a question and answer format.&#x20;

### **Adding the FAQ building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **FAQ** block and click **Add this Block**.
3. Fill in the **name** of the block.

   <figure><img src="/files/RPhseuA2fYIGzjDhDBVN" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the icon image used in the menu.
5. When you’re done, click **Add this Block**.

### **Editing the questions and answers** <a href="#content" id="content"></a>

Edit your questions and answers in the **Data** section of your **FAQ** block.

#### **Adding an entry**

1. Select the **FAQ** block in your app.
2. Go to the content section by selecting the **Data** tab.
3. Click on the **+ Add new item** button.
4. Fill in the question in the **Question** field.
5. Click in the **Answer** field.
6. Fill in the answer in the **Text Editor** and when you're done click **Save**.<br>

   <figure><img src="/files/G4URdfGa7Ovq9zIzFV6F" alt=""><figcaption></figcaption></figure>

#### **Editing an entry**

Hover the cursor over an existing entry in the list to edit, rearrange or delete it.

<figure><img src="/files/lboU6nvxJGsD2FVHmSe7" alt=""><figcaption></figcaption></figure>

* **Edit**: select the pen icon and edit the content. When you're done click on **Save**.
* **Rearrange**: grab the handle on the left side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can to delete the entry from your block.

### **Configuring the FAQ building block** <a href="#configure" id="configure"></a>

The **FAQ** building block editor is composed of three editing screens: **Data**, **Settings,** and **Design**.<br>

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your **FAQ** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image** for the **FAQ** screen
* Allow users to be able to **share** the events via twitter, Facebook, or email

![](/files/qTDj4nW80icReSB3RC5t)

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF**  selector.

Slide the selector to **OFF** to keep users from seeing the **FAQ** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add the the questions and answers to your list.&#x20;

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.


# Facebook

Show a public Facebook Page in your app.

Facebook Pages are still important facets for marketing a business and encouraging engagement. You can show the Facebook Page for your business or organization in the app by following these steps.

### **Adding the Facebook Block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Facebook** block and click **Add this block**.
3. Enter the Facebook URL of your Facebook Page.<br>

   <figure><img src="/files/TilC7A7cMRYltc1yHesj" alt=""><figcaption></figcaption></figure>
4. Fill in the **name** of the block.<br>

   <figure><img src="/files/NfVSsciE3NWkgSsZmVMj" alt=""><figcaption></figcaption></figure>
5. Click on the **icon** if you want to change the image used in the menu.
6. When you’re done, click **Add this Block**.

### **The Facebook building block Settings** <a href="#configure" id="configure"></a>

The Facebook block editor is composed of two editing screens: **Settings** and **Design**.

The settings in the **Settings** editing screen determine how your block will function and the **Design** screen will determine its aesthetics.

#### **Settings**

There are several aspects of your **Hours** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **Facebook** **Page** the block is linked to.&#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF"  selector.

Change the selector to "OFF" to keep users from seeing the **Facebook** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to your app in magnificent detail.


# Hours

Show the opening hours or business hours of your shop, event or company from your Google Places page.

Show the opening hours or business hours of your shop, event, or company. This block requires that your business hours are listed on **Google Places**.&#x20;

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80083756406/original/SXjfk6rWrWNJe8ctHKx0WNDBLFxC75wxIw.png?1646642112)

### **Adding the Hours Block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the Hours block and click **Add this block**.
3. Enter the name of your business or event.<br>

   <figure><img src="/files/LWhoyHq40n0g6CbEMJZf" alt=""><figcaption></figcaption></figure>
4. Fill in the **name** of the block.<br>

   <figure><img src="/files/N3e8njGvYQtEAp2SzbD2" alt=""><figcaption></figcaption></figure>
5. Click on the **icon** if you want to change the image used in the menu.
6. When you’re done, click **Add this Block**.

### **The Hours building block Settings** <a href="#configure" id="configure"></a>

The Hours block editor is composed of two editing screens: **Settings** and **Design**.

The settings in the **Settings** editing screen determine how your block will function and the **Design** screen will determine its aesthetics.

#### **Settings**

There are several aspects of your **Hours** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **Google Places** page the block is linked to.&#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the "ON/OFF"  selector.

Change the selector to "OFF" to keep users from seeing the **Hours** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to your app in magnificent detail.


# Information

Opens a new screen in your app that you can fill with any kind of information you'd like.

### **Adding the Information building block** <a href="#add" id="add"></a>

1. Click on **+ block**.
2. Select the **Information** block and click **Add this block**.
3. Click in the **Text** field and enter the information in the text editor.

   <figure><img src="/files/5iUwfNzAoCisvXDJaJSC" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.

   <figure><img src="/files/fzJuCpGtClXzkjq0Kl1U" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
7. When you’re done, click **Add this Block**.

### **Configuring the Information building block** <a href="#configure" id="configure"></a>

The **Information** building block editor is composed of two editing screens: **Settings**, and **Design**.

<figure><img src="/files/XuHqAlvDE2vCsOtrFr5M" alt=""><figcaption></figcaption></figure>

The settings in the **Settings** editing screen determine how your block will function and allow you to alter the text in the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

### **Settings**

There are several aspects of your **Information** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image** for the Information screen
* The **content** of your information block

<figure><img src="/files/1BnDCSlXnJFXZ1q1CEQ7" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** sliding selector.

Change the selector to **OFF** to keep users from seeing the **Information** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.&#x20;


# Intro

Intro pop-up will be shown once at the first launch of an app.

The Intro block will not show up in your app's menu. It is a block that will allow you to welcome new app users to the app with a pop-up that can provide relevant information to first time users.&#x20;

### **Adding the Intro block**

1. Click on **+ Block**.
2. Select the **Intro** block and click **Add this block**.
3. Fill in the **name** of the block.<br>

   <figure><img src="/files/tozQ5k6a8mEsxQWhWLOV" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.

* **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
* **Delete** removes the icon so that only text is used.

&#x20;     When you’re done, click **Add this Block**.

### Adding content to the Intro block

1. Under the **Data** tab on the right side of the screen, click on **Create New.**<br>

   <figure><img src="/files/sVtk2zZd9JMrPwU0xY57" alt=""><figcaption><p>Click on "Create new" to open the Intro creation wizard.</p></figcaption></figure>
2. Add the **Name**, **Image**, and **Text** to the wizard. <br>

   <figure><img src="/files/ChKbYgMybnVY6APkypft" alt=""><figcaption><p>The wizard for adding a new Intro screen to your app.</p></figcaption></figure>
3. Click **Save**&#x20;

### **Configuring the Intro block**

Now that you've added the **Intro** building block, it's time to configure it. There are only two settings screens available here: **Data** and **Design**.

**Data** allows you to influence how the block will function and the **Design** settings will determine the aesthetics of the block.&#x20;

#### **Data**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will show up in the app menu
* The **top image**
* The content of an **Intro** block. &#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF**  selector.

Change the selector to **OFF** to keep users from seeing the **Intro** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to the block.


# JavaScript

Use JavaScript to add custom functionality to your app.

For more information about implementing JavaScript in your app, please [visit the JavaScript section of the Help Center. ](/developers/javascript)


# Lock

Have users fill in a Password, Authorization level or User Group to unlock content in your app.

Allows you to lock certain content unless the app user meets certain requirements. The block can be unlocked using a password, authorization level or User Group members.&#x20;

### **Adding the Lock block** <a href="#add" id="add"></a>

1. Click on **+ block**.
2. Select the **Lock** block on the Plus Tab and click **Add this block**.
3. Select if you want to unlock the content below with an **Authorization Level**, **User Group**, and **Password.**

   <figure><img src="/files/NjLQBjHjkgPgYUWZXYRW" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.
6. Click on the **icon** if you want to change the image used in the menu.
   * **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
   * **Remove** removes the icon so that only text is used.
7. When you’re done, click **Add this Block**.
8. Make sure to fill in the desired value or password in the Settings screen:
   * **Password**: Fill in the password and click the Save button;
   * **Authorization Level**: Users need to have the required authorization level in order to access this content.
   * **User Groups**: Users need to be members of a specific user group or groups to access this content.
9. Drag the blocks you want locked beneath the Lock block.
   * All blocks located under one Lock block can be unlocked with the same Password, User Group, or Authorization level.&#x20;
   * Once the block has been unlocked, all other blocks under the same lock block are unlocked.\
     ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80083771534/original/ELho1DFZAaLXNwg9QewXO66Y9XxJfgWYbg.png?1646643604)\
     The image above shows how you should place the block(s) you wish to lock. The Information block is nested below the Lock block.
10. Change the text that is shown when a user selects a locked block.

***Please Note***:

* Once the content is unlocked and you change the password afterwards, the content will **not** be automatically locked again. If you want to lock new content, you need to add a new lock block and place the content under the new block.
* The Lock block doesn't appear as an actual button or tab in your app but applies a lock screen to the blocks found within it. For this reason, the Lock block's name and icon will not be seen in the app. <br>

### **Customising the Field Descriptions** <a href="#custom" id="custom"></a>

1. Select the **Lock** block in your app.
2. Make sure the **Settings** tab is selected.
3. Customise the following fields

* **Lock image**:  The message that will be shown in the screen before the user unlocked the block;
* **Description**: The text that is shown to the user, before the screen is unlocked. Tell them where they can find the unlock code or password and what they will find after they have unlocked the block;
* **Lock type:** if the block is protected using a password, authorization level, or user group;
* **Value**: the value which needs to be filled in to unlock the content behind.\
  &#x20;

  <figure><img src="/files/ve86HwJomSw3qWQDBX92" alt=""><figcaption></figcaption></figure>
* To save the changes, click **Save**.

### **Configuring the Lock block** <a href="#configure" id="configure"></a>

Now that you've added the Lock block, it's time to configure it. There are only two settings screens available here: Settings and Design.

Settings allows you to influence how the block will function and the Design settings will determine the aesthetics of the block.&#x20;

### **Settings**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will show up in the app menu
* The **values** of the different **Lock** block fields.&#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Change the selector to **OFF** to keep users from seeing the Lock block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to your app in magnificent detail.&#x20;


# Music

Play music or podcasts (Media RSS feed) directly in the app.

***Available late-May 2023***\
\
The music or other audio content you feature in this block can be pulled from a Media-RSS feed.

The user can listen to the audio even after exiting the app.&#x20;

**Please Note**:  Not all media codecs are guaranteed to be available on all **Android** platform versions. For best results on Android, we recommend using AAC-LC audio. Please check the [Android Developer website](http://developer.android.com/guide/appendix/media-formats.html#network) for more information.

### **Adding the Music building block** <a href="#add" id="add"></a>

1. Click on + **Block**.
2. Select the **Music** block and click **Next**.
3. Choose the data source for your music
4. Click **Next**
5. Fill in the **name** of the block.<br>
6. Click on the **icon** if you want to change the image used in the menu.<br>
7. When you’re done, click **Finish**.<br>

### **Configuring the Music building block** <a href="#configure" id="configure"></a>

#### **Settings**

There are several aspects of your Music block that can be changed in this screen; the name of the block, the icon (or image) that will be used in the app menu, and the top image for the "Music" screen. You can also choose whether you'd like the users to be able to share the events via twitter, Facebook, or email.

Click on the **icon** if you want to change the image used in the app's menu.

* **Edit** provides a wide range of image editing options for you to manipulate your icon image.
* **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
* **Remove** removes the icon so that only text is used (in this case **Music**) is presented in your app's menu.<br>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** toggle in the top right of the settings section.

Toggle selector to **OFF** to keep users from seeing the **Music** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, toggle the selector back to **ON** to publish this portion of your app.

#### **List**

This is where you add the the questions and answers to your list. [Click here](https://appmachine.freshdesk.com/support/solutions/articles/80000978289) to read more about working with "List" settings.&#x20;

#### **Design**

The **Design** section allows your to make highly detailed changes to your building block. Design gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.

### Frequently Asked Questions

#### - How can I have music playing in the background when someone opens the app?

It is not possible to have music playing in the background of the app when the app is opened.

#### - Is it possible for a user to listen to audio tracks while the device is offline/ in flight mode?

Listening to music requires an internet connection. Tracks are not kept on the device's storage.


# News

Allows users to add news or view an RSS feed in your app.

Users of your app will be presented with a list of articles from the chosen RSS feed or from a list of articles that have been manually added. Clicking on an article opens a new screen that shows the content of the article. The "More" button takes the user to the article itself via a mobile browser.

### **Adding the RSS building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **News** block and click **Add this block**.
3. Select the **Manual** option if you'd like to add the articles directly to the app or select **RSS** option if you'd like to load an article feed into your app.<br>

   <figure><img src="/files/ZbDcFhWVbAcXWYlKqvKE" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.<br>

   <figure><img src="/files/TA2lk4LycGA6W6VUlRCr" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
7. When you’re done, click **Finish**.

### **How to add content to the Manual News block** <a href="#configure" id="configure"></a>

1. Under the **Data** tab on the right side of the screen, click on **Create New.**
2. Enter the **Date**, **Time**, **Title**, **Image**, **Description**, and **Website** to the wizard.&#x20;

   <figure><img src="/files/ZA2lQtCXAkmgq1ylTiwU" alt=""><figcaption></figcaption></figure>
3. Click **Save**&#x20;

### **How to add an RSS feed to your News block** <a href="#configure" id="configure"></a>

1. Once you've added your block, go to the **Settings** tab.&#x20;
2. Enter the URL of your RSS feed in the **URL** field. <br>

   <figure><img src="/files/WFtKpsheOuVW0Ee0tZPu" alt=""><figcaption></figcaption></figure>
3. Select the desired **Order** from the dropdown menu
4. Select or deselect the desired settings for the way RSS articles are presented in the app.

### **How to configure your News block** <a href="#configure" id="configure"></a>

After you've added your News block you need to configure it. The News  block editor is composed of two or three editing screens; **Data**, **Settings**, and **Design**.

The **Data** tab allows you to edit articles (if you've chosen the **Manual News** block option), the settings in the **Settings** editing screen determines how your block will function while those in the **Design** screen determine the aesthetics of the News block.

#### **Data**

The **Data** tab allows you to add new articles to the **Manual News** block. It also allows you to edit, delete, or reorder the articles in the block.&#x20;

#### **Settings**

There are several aspects of your News block that can be changed in this screen; the name of the feed, the icon (or image) that will be used in the app menu, the top image for the RSS screen and the RSS source URL.\
You can choose which aspects of the chosen RSS feed you would like to display by means of the sliding YES-NO selectors. You can also choose the order in which the feed is displayed (Ascending or Descending by date) and under **View** you can choose the layout in which your feed is presented.

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Slide the selector to **OFF** to keep users from using the RSS feed. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, slide the selector back to **ON** to publish this portion of your app.

#### **Design**

The "Design" screen allows your to make highly detailed changes to your building block. "Design" gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it. If you'd like to know more about how "Design" works, click [here](https://appmachine.freshdesk.com/support/solutions/articles/80000978414).&#x20;

### **Frequently Asked Questions** <a href="#faq" id="faq"></a>

#### **What is RSS?**

RSS is a simple mechanism that allows people to be kept up to date as to what changes are being made to a website. Users of an RSS feed need to be subscribed to that webpage to receive these updates. RSS is used primarily to track pages that are updated frequently, like news websites, though RSS can be adapted to any website. RSS organises a page in a standardised format which includes a title, an image, an introduction and a date, so that it can be read by an RSS-Reader. By subscribing to RSS feeds, a user can follow changes made to a large number of websites within a single RSS-Reader.

#### **How does RSS work?**

The website needs to publish an RSS-feed for a specific page. Not every webpage on the internet automatically has an RSS feed linked to it. You can usually tell if a page does have an RSS feed linked to it by looking for the square, orange RSS logo with the stripes in it:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80083802057/original/I-REgImOwGsJdOERGUDJuhOIwkMiJ0laQA.png?1646646317)

An RSS-feed is always composed of an XML webpage. Clicking on the orange RSS logo will bring you to this page. These usually look like this:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80083802149/original/hCHDndYEpGrZcrja4YdtPCKu8EtO2_RWaw.png?1646646326)

As you can tell, the XML output is not very user friendly. This is where the RSS-Reader comes in handy. One of the most popular RSS-Readers is [Google Reader](http://www.google.com/reader/). With an RSS-Reader a user can track the changes made to a webpage simply by submitting the RSS page's URL to the reader. That's called subscribing to a RSS Feed. The RSS building block in AppMachine functions as an RSS-Reader.

#### **Does my website/web page have an RSS feed?**

This depends on the website. Many websites and content management systems do offer the option of making an RSS feed available for certain pages. Most WordPress based website have an RSS feed at /?feed=rss, /?feed=rss2, /?feed=rdf or /?feed=atom.\
• <http://www.mywebsite.com/?feed=rss>\
• <http://www.mywebsite.com/?feed=rss2>\
• <http://www.mywebsite.com/?feed=rdf>\
• <http://www.mywebsite.com/?feed=atom>\
The RSS feed within a WordPress website can be managed in Settings-> Reading once you've logged in to your admin page (wp-admin). This allows you to designate which posts to include in your RSS Feed as well as the format of the descriptions and full text.

#### **Is there a way to remove the 'Share' or 'More' button at the bottom of an RSS article?**

Under the **Settings** tab you can deselect **Enable sharing** and/or the **Hide 'Read more' button**.

#### **If I share an article from a RSS feed in my app it does only contain a title. Where is the url?**

If your feed does not contain a URL to share, we are unable to add this to the sharing data.&#x20;


# PDF

Show one or more PDF documents in your app

This building block is a way of giving users more information using PDF documents.

**Please note**: PDF support on **Android** is available by default on devices with the **Lollipop** operating system. Android devices with older operating systems require some kind of PDF reader app to open these PDFs.&#x20;

Max file size for each PDF is 15MB.&#x20;

### **Adding the PDF building block** <a href="#add" id="add"></a>

1. Click on the **+** **Block** button.
2. Select the **PDF** block and click **Add this Block.**
3. Fill in the desired **name** of the block.<br>

   <figure><img src="/files/eQ3OvrpC0EM2KzapyhKk" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the icon image used in the menu.
5. When you’re done, click **Add this Block**.

### **Adding a PDF** <a href="#content" id="content"></a>

1. Select the **PDF** block in your app.
2. Go to the **Data** tab.
3. Click on the **Create New** button.<br>

   <figure><img src="/files/kKXU9seo9FD8cTmKj5Y1" alt=""><figcaption></figcaption></figure>
4. Fill in the **name** you would like to give the document in the pop up

   <figure><img src="/files/VWaDhdjOgEjg2REwzz2u" alt=""><figcaption></figcaption></figure>
5. Add an image you'd like to display next to the PDF document.&#x20;
6. Upload the PDF file in the **Upload file** section.
7. Click **Save**&#x20;

#### **Editing an entry**

Hover the cursor over an existing entry to edit, rearrange or delete it.

* **Edit**: select the pen icon to change the item's name or replace the PDF file. When you're done click on Save to save.
* **Rearrange**: grab the handle on the right side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can to delete the entry from your block.

### **Configuring the PDF building block** <a href="#configure" id="configure"></a>

The **PDF** building block editor is composed of three editing screens: **Data**, **Settings**, and **Design**.

**Data** allows you maintain the content of the block, **Settings** allows you to choose whether a search bar is shown in this block, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your **PDF** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* Gives you the option of enabling the search bar<br>

  <figure><img src="/files/lQIBz3ejAe4STNuCIw6Z" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Slide the selector to **OFF** to keep users from seeing the **PDF** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add the documents to your app.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it. The options in this particular block are slightly more limited than in other blocks as the screen will be dominated by the PDF document.&#x20;

### FAQ

**Why can't I upload my PDF file to my app in AppMachine?**

Please remember that the max file size for each PDF is **15MB**. Please check whether the PDF is too large to be uploaded or whether the PDF file might be corrupt. PDF files that are too large can usually be optimized in order to be saved as a smaller file size.


# POI

Opens a new screen featuring a map with point of interest markers designated by you.

You can use this block to, say, show the different locations of your company's offices, or recreational facilities close to your hotel. Users can select these markers to read more information about these locations or to calculate the directions to the location.

### **Adding the POI building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **POI** block and click **Add this block**.
3. Fill in the **name** of the block.\
   &#x20;

   <figure><img src="/files/tXTfNzPEX6SmIDrfOycC" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Add this Block**.<br>

### **Editing the content of the POI block** <a href="#edit" id="edit"></a>

Edit the content in the List Settings of your POI block.

#### **Adding new content**

1. Select the **POI** block in your app.
2. Select the **Data** tab.
3. Click on the **+ Add new item** button to add new content.
4. Enter the **location** **details**.\
   &#x20;

   <figure><img src="/files/snkw6H3M0XXI0GYOY48F" alt=""><figcaption></figcaption></figure>
5. **Save** your entry by clicking **Save**

### **Editing your content**

Hover the cursor over an existing entry to edit, rearrange or delete it.

* **Edit**: select the pen icon and edit the content. When you're done click on Save to save.
* **Rearrange**: grab the handle on the left side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can to delete the entry from your block.

**The POI block settings**

The POI building block editor is composed of three editing screens; **Data**, **Settings**, and **Design**.

The options in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

### **Settings**

There are several aspects of your **POI** block that can be changed in this screen; the name of the block, the icon (or image) that will be used in the app menu, and the top image for the **POI** screen. You can also set the zoom level of map that is displayed in the block. The zoom level can be set to include all markers or be based on the geolocation of the app user.&#x20;

<figure><img src="/files/Rm0TuELGwkh48Yh5vv2H" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** sliding selector.

Change the selector to **OFF** to keep users from seeing the **POI** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to "ON" to publish this portion of your app.

### **Data**

Add each marker to the list with its name and location. You can add further details like an image, location type, description and website.&#x20;

### Design

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.


# People

Show a list of people.

You can also add contact information, descriptions and photos of people in the list. Clicking on one of the people in the list opens a new screen with more information about that person.

This is an excellent way of introducing colleagues, committee members, or, perhaps, the speakers at an event that you're organising. You could even list the employees of the month or award winners in this building block.&#x20;

### **Adding the People building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **People** block and click **Add this block**.
3. Fill in the **name** of the block.<br>

   <figure><img src="/files/Nh0Yv59mXDySr4oaipUu" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Add this Block**.

### **Editing the content of the People block** <a href="#content" id="content"></a>

Edit the content in the **Data** section of your People block.

#### **Adding new content**

1. Select the **People** block in your app.
2. Select the **Data** tab.
3. Click on the **+ Add new item** icon to add new content.<br>

   <figure><img src="/files/wmBXqJ12Wdb6Qd46xxfT" alt=""><figcaption></figcaption></figure>
4. Enter the details for the person profile you'd like to ad&#x64;**.**<br>

   <figure><img src="/files/VfycZtWFqCncuvxrNYEs" alt=""><figcaption></figcaption></figure>
5. Save your entry by clicking **Save**.

#### **Editing your content**

Hover the cursor over an existing entry to edit, rearrange or delete it.

* **Edit**: select the pen icon and edit the content. When you're done click on **Save**.
* **Rearrange**: grab the handle on the left side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can to delete the entry from your block.

### **Configuring the People block** <a href="#configure" id="configure"></a>

The **People** building block editor is composed of three editing screens; Settings, Data, and Design.

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.

#### **Settings**

There are several aspects of your **People** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image** for the People screen
* Whether you'd like the descriptions shown in the list.
* Enable featured items.
* Allow users to be able to **share** the events via twitter, Facebook, or email

<figure><img src="/files/XG1120hI5C0L90bbIZm0" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF**  selector.

Slide the selector to **OFF** to keep users from seeing the **People** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add the products to your list.

#### **Design**

The Design screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.


# Photos

Upload photos to the AppMachine CMS or link to popular online photo sharing services to create a photo list or album in your app.

Photos pulled from online services refresh each time you open the photo list or album so that your app is always up to date.

### Adding the Photos building block <a href="#add" id="add"></a>

1. Click on **+ block**.
2. Select the **Photos** block and click **Add this block**.
3. Choose the data source for your photos:
   * **Manual**: upload photos directly to the AppMachine CMS.
   * **Tumblr**: shows photos from your Tumblr blog.
   * **Flickr**: enter the account username. (1500 photo maximum)
   * **Instagram**: enter the account URL that you want to display in the app.
4. Click **Continue**.
5. Fill in the **name** of the block.<br>

   <figure><img src="/files/7gRDS6zRYalA083GIjUH" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
7. When you’re done, click **Add this Block**.

### **Adding Photos to your block** <a href="#configure" id="configure"></a>

1. Under the **Data** tab, click on **+ Add New Item**
2. Add your **Photo**, **Name**, and **Description** (and optionally an **External Image URL**) and click **Save**.

   <figure><img src="/files/0BXVWRpt8hjVJybkn7PG" alt=""><figcaption></figcaption></figure>

   When adding a photo in this screen, you can choose photos from Pexels, Upload your own image, or use an image you've previously used in the app. <br>

   <figure><img src="/files/fhkUOzwdKHdShdbJpnfS" alt=""><figcaption></figcaption></figure>
3. Repeat this process until you've added all of your photos.&#x20;

### **Configuring the Photos building block** <a href="#configure" id="configure"></a>

The **Photos** building block editor is composed of three editing screens; **Data**, **Settings**, and **Design**.

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your "Photos" block that can be changed in this screen; the name of the block, and the icon (or image) that will be used in the app menu. You can also choose whether you'd like the users to be able to share the events via Twitter, Facebook, or email.<br>

<figure><img src="/files/nNNDnFm89k0AuEibq3tq" alt=""><figcaption></figcaption></figure>

**Photo View** allows you to change the way the photos are displayed in the block.&#x20;

By toggling the **Show Albums** option the block will show a menu with the albums as they are grouped in flickr. If you don't select this option, all photos will appear in a single screen without album distinction.

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the Activated sliding selector.

Slide the selector to **OFF** to keep users from seeing the **Photos** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, slide the selector back to **ON** to publish this portion of your app.

#### **List**

This is where you add the the questions and answers to your list.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.

### FAQ

#### How many photos can be uploaded to the Photos block?

You can upload as many photos as you want, but you could also consider to link to an online photo album. The app will become larger (to download in the stores) when you add a large amount of photos.

**How can I create albums in the Photos block?**

This can be accomplished by adding several Photos blocks to a Submenu block.&#x20;


# Products

Shows a list of products in your app.

{% embed url="<https://youtu.be/TPCfk5D5b8o>" %}

Shows a list of products. Once users click on a product they see a new screen with information about the product. Each product can be linked to its own webpage. To sell products from the app add a Checkout block to this app too (coming soon).&#x20;

### **Adding the Products Block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Products** block and click **Add this block**.
3. Fill in the **name** of the block.<br>

   <figure><img src="/files/u0SycL7l5HPtgWte1MJH" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Add this Block**.

### **Editing the contents of the Products block** <a href="#content" id="content"></a>

Edit the content in the **Data** tab of your Products block.

#### **Adding new content**

1. Select the **Products** block in your app.
2. Select the **Data** tab.<br>

   <figure><img src="/files/W16yhMMJwrjuygkyub3Y" alt=""><figcaption></figcaption></figure>
3. Click on the **Create New** button to add new content.
4. Enter the **product** **details** like **Product** (name), **Price**, **Image**, **Description**, and **Website**. <br>

   <figure><img src="/files/hM8tcMIcVEoqYZAZb5TW" alt=""><figcaption></figcaption></figure>
5. **Save** your entry by clicking Save.

#### **Editing your content**

Hover the cursor over an existing entry to edit, rearrange or delete it.

* **Edit**: select the pen icon and edit the content. When you're done click on **Save**.
* **Rearrange**: grab the handle on the left side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can icon to delete the entry from your block.

<figure><img src="/files/9PFQWy79t8LamcdzGcBu" alt=""><figcaption></figcaption></figure>

### **The Products building block settings** <a href="#configure" id="configure"></a>

The **Products** building block editor is composed of three editing screens: **Settings**, **Data** and **Design**.

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your **Products** block that can be changed in this screen:

* The name of the block
* The icon (or image) that will be used in the app menu
* The top image for the **Products** screen
* Allow users to be able to share the events via twitter, Facebook, or email<br>

  <figure><img src="/files/yGQ8Zdt0OO5QBCRrqsPQ" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** sliding selector.

Slide the selector to **OFF** to keep users from seeing the **Products** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, slide the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add, edit or delete the products in your list.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.&#x20;

### **Frequently Asked Questions**

#### Where can I select the currency type displayed in the Products block?

In the left menu, go to **Manage** and then to **Settings**, in the **App Details** section you can select the appropriate currency from the dropdown menu.

<figure><img src="/files/hfWxx5PZPWDnejMuqt5r" alt=""><figcaption></figcaption></figure>

**Is it possible to select items and have them emailed to the shop owner without going through a PayPal shopping cart? (Cash On Delivery - COD)**

&#x20;Yes, this option can be selected when setting up your [**Checkout**](https://appmachine.freshdesk.com/support/solutions/articles/80000978302) block (coming soon).


# Push Messages

Show users an overview or history of the push messages that have been sent to the app in the past.

Push messages are a powerful tool for reaching users and keeping them engaged in the app. In some cases, you may wish to provide your users with an overview of the push messages that have been sent in the past. This way, users are never out of the loop regarding announcements that have been made.&#x20;

### **Adding the Push Messages Block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Push Messages** block and click **Add this block**.
3. Fill in the **name** of the block.<br>

   <figure><img src="/files/VdaNQW9sEn7HeByYLh35" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Add this Block**.


# Radio

Opens a music player linked to an internet radio station.

Opens a music player linked to an internet radio station.&#x20;

The music player accepts streams that are either AAC-LC audio (up to 48 kHz) or mp3 (MPEG-1 Audio Layer 3 up to 48 kHz). This includes the following extensions: mp3, m4a, m4b, m4p, m4v, m4r, 3gp, mp4 and aac.

**Please Note**:  Not all media codecs are guaranteed to be available on all **Android** platform versions. Please check the [Android Developer website](http://developer.android.com/guide/appendix/media-formats.html#network) for more information.

### **Adding the Radio building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Radio** block and click **Add this block**.
3. Fill in the **URL** to the radio live stream (i.e. stream.player.arrow\.nl/arrow)

   <figure><img src="/files/gMcnglYr3ZrpxIZlsY6t" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.<br>

   <figure><img src="/files/MR1JWzR7h19naUhoKJJg" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.
7. When you’re done, click **Add this Block**.

### **Configuring the Radio block** <a href="#configure" id="configure"></a>

Now that you've added the **Radio** building block, it's time to configure it. There are only two settings screens available here; Settings and Design.

The settings in the **Settings** editing screen determine how your block will function, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your **Radio** block that can be changed in this screen; the name of the block, the icon (or image) that will be used in the app menu, the top image for the Radio screen, a description of the radio station, and the URL to the radio live stream.

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Change the selector to **OFF** to keep users from seeing the Radio block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. Design gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it. Design is not available to all users.&#x20;

### **FAQ**

**I'm having trouble finding the correct stream URL for my Radio content. How do I find the right stream?**

As a first step we recommend getting in touch with the content manager of the website. They should be able to provide you with the correct stream for the radio station.&#x20;

**The stream I want to link downloaded a .pls file to my computer. How do I get this stream in my app?**

If you open the .pls file with a simple text editor (Right-click on the .pls file and select "Open with..." Notepad or TextEdit) you will see a selection of usually between one and three stream URLs. Please select the first in the list and paste into the URL field of the Radio block link the streaming content.&#x20;

**Is it possible for a user to listen to audio tracks while the device is offline/ in flight mode?**

Listening to music requires an internet connection.


# Submenu

Creates, you guessed it, a submenu in your app.

If you feel that one of your menus contains too many elements then adding a submenu is a great way of grouping some of these elements.&#x20;

### Adding the Submenu building block <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Submenu** block and click **Add this block**.
3. Fill in the **name** of the block.

   <figure><img src="/files/25WY8iXZdDN6Lsan8CaK" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Add this Block**.

### **Configuring the Submenu block** <a href="#configure" id="configure"></a>

Placing other building blocks under your **Submenu** building block is quite easy. Click and drag the desired block from the right side of the block onto the **Submenu** block. Blocks that fall under (or within) the submenu are indented slightly to the right. \
\
![](/files/z3A65gsF6rPSBFUUTOet)

The **Submenu** building block editor is composed of two editing screens: **Settings** and **Design**.

The settings in the Settings editing screen determine how your block will function and the settings in the Design screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your **Submenu** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **top image** used in the **Submenu** screen
* The **Navigation style** of your Submenu block

Click on Navigation style to change the view of your submenu.\
\
![](/files/k8l09PrhxwB7ecWPJ8ak)

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** sliding selector.

Slide the selector to **OFF** to keep users from seeing the Submenu block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, slide the selector back to **ON** to publish this portion of your app.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. Design gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.


# Twitter

Shows the tweets from a Twitter account of your choosing.

The Twitter building block is a great way of keeping in touch with your fans. It allows them to react to your tweets and/or retweet them directly in the app. The Twitters account in question will follow the design settings of your app.&#x20;

![](/files/xYKaogYab0BibOMIc5B1)

You can either choose to display tweets from a specified Twitter account or a list of tweets that contain certain buzzwords or hashtags.

### **Adding the Twitter building block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **Twitter** block and click **Add this block**.
3. Enter the Twitter **username** you wish to add to the block. You can also add buzzwords (hashtags) to the **Buzzwords** field (comma separated) to show the latest tweets related to that buzzword. <br>

   <figure><img src="/files/jgawte4zqDrvhrxDt7D1" alt=""><figcaption><p>Adding the twitter block. </p></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.
6. Click on the **icon** if you want to change the image used in the menu.
7. When you’re done, click **Add this Block**.

### **Configuring the Twitter building block** <a href="#configure" id="configure"></a>

The **Twitter** building block editor consists of two editing screens; **Settings**, and **Design**.

The settings in the **Settings** editing screen determine how your block will function, and the settings in the **Designer** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your Twitter block that can be changed in this screen; the name of the block, the icon (or image) that will be used in the app menu, the Twitter account that is linked to the block, and the buzzwords that you wish to show in the app.

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the ON/OFF toggle switch.

Change the toggle to to **OFF** to keep users from seeing the Twitter block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, toggle the switch back to **ON** to publish this portion of your app.

Please remember the following:

* Using multiple buzzwords is possible by separating these with a comma.
* Using account and buzzwords at the same time shows all tweets from that account and all tweets containing those buzzwords. This may be a lot. They are separated into two tabbed screens.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. The block will default to the app-wide design you've chosen under the Theme block. However, you can choose to customize the design of the Twitter block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.&#x20;


# URLs

Displays a list of links to website or webpages.

Clicking on the link opens a new screen in your app that loads the website. This way you can include links to your own website or a reservation page.<br>

### **Adding the URLs block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the **URLs** block and click Add this block.
3. Fill in the **name** of the block.<br>

   <figure><img src="/files/6jrUxIXefLRoZ58SH1Ak" alt=""><figcaption></figcaption></figure>
4. Click on the **icon** if you want to change the image used in the menu.
5. When you’re done, click **Finish**.

### **Editing the content of the URLs block** <a href="#edit" id="edit"></a>

Edit the content in the List Settings of your URLs block.

#### **Adding new content**

1. Select the **URLs** block in your app.
2. Select the **Data** tab.
3. Click on the **Create new** button to add new content.
4. Enter the **name of the website** and its **URL**.<br>

   <figure><img src="/files/yLncQDbbZ2osWtSz7ao8" alt=""><figcaption></figcaption></figure>
5. **Save** your entry by clicking Save.

#### **Editing your content**

Hover the cursor over an existing entry to edit, rearrange or delete it.

<figure><img src="/files/ZoRYQWlkVg1wbOSwLXgf" alt=""><figcaption></figcaption></figure>

* **Edit**: select the pen icon and edit the content. When you're done click on Save to save or on the home icon to return without saving.
* **Rearrange**: grab the handle on the left side of your entry to rearrange the order it will be displayed in the app.
* **Delete**: click on the garbage can to delete the entry from your block.

### **Configuring the URLs building block** <a href="#configure" id="configure"></a>

The URL building block editor is composed of three editing screens; **Settings**, **Data** and **Design**.

The settings in the **Settings** editing screen determine how your block will function, **Data** allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.

#### **Settings**

There are several aspects of your **URL** block that can be changed in this screen; the name of the block, the icon (or image) that will be used in the app menu, and the top image for the URL screen. You can also choose whether you'd like the users to be able to share the events via twitter, Facebook, or email.<br>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Change the selector to **OFF** to keep users from seeing the URL block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add the the URLs and their titles to the building block.

#### **Design**

The Design screen allows your to make highly detailed changes to your building block. Design gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it.

<br>


# Web Page

Show a single web page in your app.

Shows a single web page in your app.&#x20;

### Adding the Web Page block.&#x20;

1. Click on **+ Block**.
2. Select the **Web Page** block and click **Add this block**.
3. Fill in the **URL** for the web page you'd like to show in the app.<br>

   <figure><img src="/files/SYfm5vJx0XJmEoJQGbdl" alt=""><figcaption></figcaption></figure>
4. Click **Continue**.
5. Fill in the **name** of the block.<br>

   <figure><img src="/files/yreA9o5U6YtGKNVhfxdx" alt=""><figcaption></figcaption></figure>
6. Click on the **icon** if you want to change the image used in the menu.

* **Replace** allows you to choose from a wide range of AppMachine icons or upload your own.
* **Delete** removes the icon so that only text is used.

&#x20;     When you’re done, click **Add this Block**.

### **Configuring the Web Page block**

Now that you've added the **Web Page** block, it's time to configure it. There are only two settings screens available here: **Settings** and **Design**.

**Settings** allows you to influence how the block will function and the **Design** settings will determine the aesthetics of the block.&#x20;

#### **Settings**

Here you can change a number of things like:

* The **name** of the building block
* The **icon** that will show up in the app menu
* The **URL**
* You can also select options to control whether the web page opens in an external browser, show navigation buttons, and you can designate when the page should refresh; upon each block visit or only at the first visit to the block.&#x20;

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Change the selector to **OFF** to keep users from seeing the **Web Page** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design**

These settings allow you to make aesthetic changes to your block. These are fairly limited in this block as the web page will load over most of the screen.&#x20;


# Video

Opens a new screen with a list of videos in it. Clicking on one of these videos opens a new screen in which you can play the video.

You can pull your videos from a YouTube or Vimeo account or playlist. Video lists will update automatically when linking this block to a YouTube or Vimeo account.&#x20;

### **Adding the Video building block**

1. Click on the + **Block** button.
2. Select the **Video** block in the **Basic** tab and click **Add this Block**.
3. Choose the source for your videos:

   * **CMS:** Add one or more videos from YouTube or Vimeo
   * **Vimeo Channel**: Show all Vimeo videos for a specific channel or user name.
   * **YouTube Channel**: Show all YouTube playlists and videos for a specific channel
   * **YouTube Playlist**: Show all YouTube videos for a specific playlist.
   * **YouTube User Videos**: Show all uploaded YouTube videos in a single list.

   &#x20;&#x20;

   <figure><img src="/files/cBX7NOTzRaVVo70lvLNB" alt=""><figcaption></figcaption></figure>
4. Click **Continue**
5. If you've selected **YouTube Channel**, **Vimeo Listing**, or **YouTube User Videos**, the next screen will require that you fill in the YouTube Channel or Vimeo user you'd like to link to the block. Once that has been done, click **Continue**.
6. Fill in the **name** of the block.<br>

   <figure><img src="/files/hf8QbK3yxlu5K5IQNKAb" alt=""><figcaption></figcaption></figure>
7. Click on the **icon** if you want to change the image used in the menu.
8. When you’re done, click **Add this block**.<br>

### **Adding a new video to the Video CMS option**

1. Click on **+ Add new item**
2. In the **Video Url** field enter the URL for the video you'd like to add
3. Enter the **Title**, **Duration**, and **Description** for the video. The title and description can be the exact title and description of the video as shown on the platform or what you'd like shown in the app. The Duration should reflect the actual duration of the video.&#x20;
4. Click **Save**

### **Configuring the Video building block**

The Video building block editor is composed of two or three editing screens;  **Data**, **Settings**, and **Design**. The Data tab/screen is only visible if the **CMS** option has been chosen.

<figure><img src="/files/HVo7yzJlSTKsSdpHD6s0" alt=""><figcaption></figcaption></figure>

The settings in the **Settings** editing screen determine how your block will function, Data allows you maintain the content of the block, and the settings in the **Design** screen determine its aesthetics.&#x20;

#### **Settings**

There are several aspects of your Video block that can be changed in this screen; the name of the block, the top image, and the icon (or image) that will be used in the app menu. You can also choose whether you'd like the users to be able to share the videos.

If you've selected one of the following options, a lookup field is visible where you can link the desired channel or user to the block.&#x20;

* **Vimeo Channel**
* **YouTube Channel**
* **YouTube Playlist**
* **YouTube User Videos**

<figure><img src="/files/J41bxoNvKEcVOdhpF1td" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** toggle. <br>

Change the selector to **OFF** to keep users from seeing the Video block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Data**

This is where you add or edit video sources. This screen is only visible if the **CMS** option has been chosen.

#### **Design**

The **Design** screen allows your to make highly detailed changes to your building block. **Design** gives the developer a remarkable amount of freedom to adjust everything exactly as he or she would like it. **Design** is not available to all users. <br>

**PLEASE NOTE:** Adding YouTube videos to the app may require a 17+ age rating in the app stores.&#x20;

### FAQ

**Why won't my YouTube Playlist show when I try to enter it into the lookup field?**

The YouTube Playlist section requires that three videos be added to the playlist in order for it to be made available via the lookup field. If you've recently added a video or videos to the playlist to meet the minimum of three videos, it may take some time for YouTube to compile the playlist and make it available via the lookup.&#x20;


# WhatsApp

Start a WhatsApp conversation from within your app.

As a business or entity with an app, you may want to offer your app users a direct line to a support number or WhatsApp chat link. This block makes it possible for users to send messages to your WhatsApp number to receive support or ask other questions.&#x20;

### **Adding the WhatsApp Block** <a href="#add" id="add"></a>

1. Click on **+ Block**.
2. Select the WhatsApp block and click **Add this block**.
3. Enter the phone number connected to your WhatsApp account.<br>

   <figure><img src="/files/45l8KM3g9ho7izsH7k5B" alt=""><figcaption></figcaption></figure>
4. Fill in the **name** of the block.<br>

   <figure><img src="/files/cozSZM5CfpHBzmsHJraD" alt=""><figcaption></figcaption></figure>
5. Click on the **icon** if you want to change the image used in the menu.
6. When you’re done, click **Add this Block**.

### **The WhatsApp building block Settings** <a href="#configure" id="configure"></a>

The WhatsApp block editor is composed of two editing screens: **Settings** and **Design**.

The settings in the **Settings** editing screen determine how your block will function and the **Design** screen will determine its aesthetics.

#### **Settings**

There are several aspects of your **WhatsApp** block that can be changed in this screen:

* The **name** of the block
* The **icon** (or image) that will be used in the app menu
* The **phone number the WhatsApp account** is linked to.&#x20;

<figure><img src="/files/eKbMlVDQIJMxKHPNZSwx" alt=""><figcaption></figcaption></figure>

Should the need arise to keep the users of your published app from using this portion of the app, then you can always make use of the **ON/OFF** selector.

Change the selector to **OFF** to keep users from seeing the **Contact Us** block. Now you can continue developing your app without worrying about users coming upon areas that you haven't finished developing as of yet. Once you are satisfied with your progress, change the selector back to **ON** to publish this portion of your app.

#### **Design**

Design settings are limited for this block as it redirects users to WhatsApp.


# Data

The various ways to add data to your app

{% embed url="<https://youtu.be/ueb5yxnUoW8>" %}

With AppMachine you can add data to your app in various ways.&#x20;

### Use **blocks**

For example via adding information in blocks, like Contact, People or the Products block. \
You do that via the red +block in the Content tab.

### **Add your own tables**

You can also add your own **tables** , where you define the structure of your information.

1. Click **Data** in the left side navigation,&#x20;
2. Define your tables&#x20;
3. Define the fields you want to have.&#x20;
4. On the Fields tab you can enter the data yourself.

Read more about [AppMachine Tables in this article.](/data/appmachine-data)

{% embed url="<https://www.youtube.com/watch?v=ueb5yxnUoW8>" %}

### Connect to a **Google Sheet** &#x20;

Connect to your google sheet \
Your data will be synced from Google sheet to AppMachine and vice versa.\
Read more about [Google sheets.](/data/google-sheets)

### Connect to a webservice

If you have your data available via a REST API, you can connect to the webservice to show your information via a GET call. \
It's also possible to use Post, Update and Delete calls to make your app more interactive. \
Read more about [Web services](/developers/web-services).&#x20;

### JavaScript

You can also add JavaScript blocks to your app to enhance your app with your own functionality and data. Read more about [JavaScript.](/developers/javascript)


# Appmachine Data

AppMachine Data allows you to store data and show it in your app. You can also make the data editable in your app for specific user categories if you want.&#x20;

### AppMachine tables

You can create your own tables within Appmachine to show it to your app users. \
You can even create Edit or Add forms in your app to give your app users the functionalitity to edit your data or add new data. \
\
Read the article below or [watch the video](https://www.youtube.com/watch?v=ueb5yxnUoW8)

{% embed url="<https://www.youtube.com/watch?v=ueb5yxnUoW8>" %}

### Add Table

1. Click **Data** in the left side navigation<br>

   <figure><img src="/files/uVdViWXEFbChkdBz1FFl" alt=""><figcaption><p>Add new table</p></figcaption></figure>

2. Click **Create Table**

3. Choose from where you want to store the information\
   In this case you select **AppMachine Table**

   <figure><img src="/files/KGZrFa9ev9iCb2QpWOlG" alt=""><figcaption><p>Select where you want to store your data</p></figcaption></figure>

4. You can create your own **Blank** table or use one of our Table with some demo data\ <img src="/files/M3QThTy1lPm4KcHVNR2l" alt="Choose your data source" data-size="original">

5. Give your table a **Name**\ <img src="/files/SIyKx9ScTYp0mRHJ5g5Y" alt="Name your table" data-size="original">

6. On the **Fields** tab you can add or enter more fields\ <img src="/files/eAnKIRqfc5FsFsg9o8Wv" alt="Edit your fields" data-size="original">

7. On the **Data** you can add more items with the **Add item** button in the top right corner or **Edit** a row by double clicking on it.\
   ![](/files/OeCGMtFbAhLR8A4jAzz6)

8. After creating a table, you will need to open the **Content** tab in the left side navigation&#x20;

9. Click the red **+block** Button&#x20;

10. Select the **Advanced** tab

11. Click **Add this block**

12. **Select the Table** you just created to show the information from the Table you just created in your block.

### Edit Table

1. Select the **Data** tab in the left side navigation.
2. Select the right table in the **AppMachine Table** section\ <img src="/files/w4TpUMSAurhugxxNGiRW" alt="Select AppMachine Table" data-size="original">
3. Select the **Fields** tab if you want to checkout, edit or add the configuration of the table or select the **Data** tab if you want to checkout, edit or add rows to the table.

## Show data in your app

After you have configured your data, you can add blocks to your app to make the data visible

1. Open the **Content** tab of your app
2. Click the red **+ block** button
3. Select the **Advanced tab**
4. Select the **List** to show a list of items in a screen. The detail page will be added automatically\ <img src="/files/byXLkkiAAdk7E1GCDPDJ" alt="" data-size="original">
5. Click **Add this block**&#x20;
6. Select the right data table
7. In your app a green List block will be added with a detail page below it.&#x20;
8. On the List block you can Enable or disable information to show in the list using the switches. \ <img src="/files/QlUzM84TDFQZZY9GeDDN" alt="" data-size="original">
9. For advanced editing, select the **Elements** tab in the left top corner. [This article](/style-your-screens/elements) explains to you how to use the element editor to fine tune the design .\ <img src="/files/yIRYDBFq8XQNVcmkJiG2" alt="" data-size="original">
10. You can finetune the Detail page in the same way.


# Delete (test) data from Custom Form

During the process of building your Custom Form you may want to send some test messages. To delete those test messages afterwards, follow the steps from this article.

The responses from your form will be visible in the Data Tab. Once you have added a Custom Form we will automatically create a table for this form. In the data tab you see all the answers of your Custom Form. You can check the boxes of the data that you want to delete.

<figure><img src="/files/QsDaqEtdK9WIgjYIfYh8" alt="Form data"><figcaption><p>Custom Form Table</p></figcaption></figure>

Once you have selected the data that you want to delete, you can click Delete Selected at the bottom of the screen. Confirm your choice and the record will be deleted.

<figure><img src="/files/u2DWsMcodP01SwDfURUv" alt="Delete data"><figcaption></figcaption></figure>


# Google Sheets

Connect your app to information which you are managing in a Google sheet

{% embed url="<https://youtu.be/Arw-NKC3o4E>" %}

\
\
Your data will be synced from Google sheet to AppMachine and vice versa.\
\
For this Google sheet integration it is important that you have full editing rights for this sheet.  \
If you didn't create the sheet yourself, make sure your email address is added to the google sheet via the Share button in Google Sheets.&#x20;

\
It won't work if someone gave you general access like this:\
![](/files/lzVvzDV375RmH3ibu0d9)

## How to connect a sheet to your app

1. Open your app and open the **Data tab** in the left side navigation.
2. Click **+ New table** in the left top corner\
   ![](https://lh6.googleusercontent.com/fpy_pSz2XT-kXTicByuhZnNnRyrp2nBHDaTmSl5smk7N279_iID48ijd3sFA913vbbYBWVsvmRUsJTLoCz9s5vxbFQGoBSIyVZ2Tn3f0QrEOuyc364JdQzehsoeYpsH-fDLW--EaeexUY8IfrUlMuVR3Wy9mruFX47Kop7e96CeGmVq7Rp1ajUUVcw)
3. Click **Google Sheets**\
   ![](https://lh3.googleusercontent.com/L6aDkkCFavZZbTTa6McFQ-NFtWQnXTu_BGuZtazbp30iOs9_lDOticArGX5QocfVNNN3pj7_s6uZFCTKdIMhJMBOEBv78CwEKNwvz7Q2CjGB0l2MO9FGr4KOvxHY9LX9oOHSQ_v-_1sxha7u-Bq-aD2tbxjrOCNdDAPVIopdjIS9X_1Tmyq4ORQ7Kw)
4. **Sign in with Google** to connect with your Google account. This happens via a new tab in your browser. Choose **Allow** when asked for permissions.\
   ![](https://lh4.googleusercontent.com/kQfchR5cAM4zWK1KEAhsir7JtdxfziYtW4lnjI9iAyaYGJnT9NMJH63--tGIYTm6Z90enE6TU33UHpESF3COWYBbZEq8gS8L8xq8ckW6QlqW2AeYfkFBeDWnUDOjq3YVYXUSAb_BspX9N5emkXxbrIqtcg8bxD5z1dl1Wka5kX8SfOzUur_4E46f0A)
5. Your account is now linked and you can **Select Spreadsheet** from your Google Drive \
   ![](https://lh4.googleusercontent.com/gfPVALy3yMHh_UJRVT7zFoOUI5t8YkuUTPZqkHUK2hCfYIr81jq7QXvwwSvRHVN8KwFdf-hZzzDy3Msrcvj7vBElqobJVOU1VK2zYTNcUzoIFZSFGuVdF0Kj0rn1AQW9XuXtN_hIhrh_zAAm5RD6VI8AoQ0DFCWM149iYKWBKB-wdrjUFq7nLZsfFA)
6. Select the right sheet. \
   ![](https://lh4.googleusercontent.com/FX87zvegiFpaBF1Rqo6dOtrwK1pRjrmwvHBoBsgMHS-wMoadHqTsDiL3K0jxmThDQ8M0BaaF7sadahgvFYkZB1ZSRcvrjzj_V_f-8-e7jIhv3yy0US-9zz8OnOoJ8sGqL3PqgynRlaqk9iWpBoG343a2q0VK7oN4EPuSUYAJSYw21KprA05595074Q)
7. Click **Next** \
   ![](https://lh3.googleusercontent.com/dqx1DntO071hOhbEzf47SxaQeg_47RNhttq4gw3hYqNOCzAfGWyuNBKqJskXHwLNe73hkrha18sX0JStFAm4AVZtFelM2w0pJ1aCAU7RygBB_Rr0t09NxSK_MeKLuzzvNvXHwG_c6vO5W2BTZ4bHsdHwOUzxkNhjXNapwfOyD1va5fOPpn2VGy7dOA)
8. Select the worksheets you want to show in your app. You can deselect all of the sheet by clicking in the small square before Select all. \
   ![](https://lh5.googleusercontent.com/4eWaLflHlWIKcBZSBEHg09C3NKbWr1BAKHSTCoaEaKffxqcQj6CwuwhcekTs3fW8Tq1IM5cVmcqmgmcxSYygReDT_xDgjak_oVvmFOSF2OgzRll23BxgHU7aLqC_QyHnPoKabzmjMmjh6JM_Ipq9H4GEH9XDx-dSRXa0mP0rSWfwfG7ivYRqyUF_1w)
9. We asked you to confirm that your sheets looks like this: \
   ![](https://lh3.googleusercontent.com/4ImXDrvt5SMkXUMFsI29AH8XYIvCYUreIlBOlztWgQL2Ri87lz0bgFKN-x_L3GsoDmk8-9jR7J3vRrOSO-Pv6XsAy22l_DyPebIGerCnmYo90Ev4owGA3-CIoXnd1R1aPS_CJ2YmiCEIbz15ewlS3X3DCFIJlHgU7LWMIQV0WSz2uUBRJxL1u7sxLQ)
10. The data is now available in a table and ready to be shown in your app![](https://lh4.googleusercontent.com/NKkV6ki0bYSYxoVPEW5gULp2D3nJX7hyT9XqsxzG6kdrIdxOqO8ueYvBF-P2THxbdw3NbfMeJoi8cnuZ3JNwZFZpBrpMf9VEZNRCvsoxDKjLYOMxkh37UXfsmBNTrGDwbjCzUzGY5ovwi8f0EvEsyg8exZuk7zhKHC2mLlveA3O-w52pmxlAgHqrsQ)

## Show Google Sheet data in your app

After you have connected your Google Sheet to your app, you can add blocks to your app to make the data visible

1. Open the **Content** tab of your app
2. Click the red **+ block** button
3. Select the **Advanced tab**
4. Select the **List** to show a list of items in a screen. The detail page will be added automatically\ <img src="/files/byXLkkiAAdk7E1GCDPDJ" alt="" data-size="original">
5. Click **Add this block**&#x20;
6. Select the right data source.
7. In your app a green List block will be added with a detail page below it.&#x20;
8. On the List block you can Enable or disable information to show in the list using the switches. \ <img src="/files/QlUzM84TDFQZZY9GeDDN" alt="" data-size="original">
9. For advanced editing, select the **Elements** tab in the left top corner. [This article](/style-your-screens/elements) explains to you how to use the element editor to fine tune the design .\ <img src="/files/yIRYDBFq8XQNVcmkJiG2" alt="" data-size="original">
10. You can finetune the Detail page in the same way.


# Web services

You can use your JSON based web services in your app to show information, but also to update or delete information. \
Read more about [Web services](/developers/web-services)


# Style your app

The various ways AppMachine lets you style your app

This section explains how you can style your app with AppMachine:&#x20;

1. Style the overall [theme of your app](/style-your-app/theme)
2. Style your[ Home screen](/style-your-app/home-screen), where you can set your navigation style&#x20;
3. Style a specific block, to make it look different than the rest of your app using Custom design

If you want to style a List, Detail, Form block or Blank Page you can use the Element editor on the Elements tab. [Read more about that here.](/style-your-screens)


# Theme

The Theme block drives the design for the rest of your app making sure that consistency and control are the most important factors in your app's design.

{% embed url="<https://youtu.be/VDbbMmA-KFI>" %}

Every app deserves a great design. To set the overall design settings in your app, AppMachine has created the **Theme** block. It is the green block next to the blue **Home** in your block list:

&#x20;![](/files/WI8FFx5KpfubsfhmKCkj)

Clicking on the **Theme** block opens a unique screen in the previewer section that allows you to quickly see the impact of any changes you make to these design settings. There are two sections available in the right side menu;&#x20;

* **Settings** for basic design settings that allow for quick control of common design features in the app&#x20;
* **Advanced** settings that grant more granular control of specific design features of the app. &#x20;

The **Theme** block largely determines the look and feel of the app. The menu on the right side of your screen opens to **Settings** as a default. AppMachine encourages that you play with these settings so that you can see these changes immediately in the responsive previewer.&#x20;

<figure><img src="/files/ozo2uWqxFv6XOEN8YHtC" alt=""><figcaption></figcaption></figure>

We've named the block Theme because the design choices you make in the Theme block will be visible in and largely determine the options available to you when designing subsequent blocks. The Elements editor will draw from your Theme block when you start building your custom screens, as well.

### **Settings**

#### **Base Shape**

The base shape determines the rounding of the button and text field shapes.&#x20;

#### **Fonts**

You can define the fonts for the heading and body sections of text in your app.&#x20;

#### **Colors**

AppMachine offers an algorithm that automatically chooses complementary colors based on the main color that you select. These colors can be determined in the **Color Theme** section. \
\
By clicking on the **Primary** button, you can select your desired color.&#x20;

To add a secondary color, click on **Add a color**.&#x20;

You can also add custom colors to the palette of colors in your app.&#x20;

&#x20; ![](/files/KmIA7KOjdqZvOdJSqZ7x)

### Advanced

#### **Font Settings**

In this section, you can assign which font you want to use for specific text types/sections in your app.

&#x20;![](/files/RJAmo9Zqco6x80Bp8zqr)

#### **Navigation Bar**

This section allows you to change the color settings for the background of the navigation bar (and the color's opacity), the color of the text on the navigation bar, the logo shown on the navigation bar, and whether or not the text (or title) is shown in the navigation bar.&#x20;

&#x20;![](/files/lLsPJiOfvvu3hgMh5jzw)

#### **Background**

You can choose to have no background, a color background, a background with a color gradient, or a custom image. You can further customize the image with filter options or a color overlay. Color overlays can help make text pop or be more visible in front of busy background images.&#x20;

#### **Element Shapes**

This allows you to customize the rounding on buttons, input fields, and/or card in your app.&#x20;

<figure><img src="/files/5sCoCp4Auhi9OJMAUXa0" alt=""><figcaption></figcaption></figure>


# Home Screen

Your Home page is a user's first impression of the app. AppMachine has made styling this screen very easy.

{% embed url="<https://youtu.be/I7ZghBiOC-g>" %}

In the **Content** tab, you can configure the home screen of your app by selecting the B**lue Home block** in the list of blocks. \
As the color settings of the homescreen might differ from the generic theme of your app, you see a Design tab on the right side of the screen to configure the colours and styling for the Home screen. \
\
If you want to change the styling of the rest of your app, select the green **Theme** block at the top of the list of blocks.<br>

<figure><img src="/files/PTMh8mR5uwfVi6mg9bWF" alt=""><figcaption><p>Your app's blue "Home" block</p></figcaption></figure>

## Navigation styles

Designing a home screen starts with selecting the best **Navigation style** for your app. \
Once you've chosen a template and generated your first app, you will see the settings for the blue **Home** block. This block controls the settings and design of the first screen of your app. \
In the **Settings** tab on the right, you can choose a top image, a navigation style, and usually some further styling options depending on the navigation style you've chosen. In the screenshot, you can see which navigation styles we have available in the platform. <br>

<figure><img src="/files/WuUus2dIQlOof5hCZV0a" alt=""><figcaption><p>See which navigation styles are available in the app.</p></figcaption></figure>

Run through the available navigation styles to select the style that best fits your app's needs. For the business app above, here are the different navigation styles compared to one another. \ <br>

<figure><img src="/files/XrgMGp5Xh1H2wEXvNpuu" alt=""><figcaption></figcaption></figure>

### New Navigation styles

We have added new navigation styles for NEW apps. With existing apps you will only see the new navigation styles for the Submenu block.

There are five menu types, each with different layouts, and the option to choose no menu layout.

1. Tab bar
2. Tabs
3. Sliding
4. List
5. Icons

You can switch between layouts and choose from different options, like show icons or show block labels. The tab bar layouts also have the option to be detached from the bottom of the screen.

<figure><img src="/files/mgIfUt7NXCRPmHGRTjq2" alt=""><figcaption></figcaption></figure>

<figure><img src="/files/RdI5ZVuNpoQo3YxZOmLa" alt=""><figcaption></figcaption></figure>

## Menu, Text, Icon, & Icon Background Settings

Depending on the selected navigation style, you may be able to further adjust the design of the selected menu. \
For example for the advanced icon menu you can upload your own icon backgrounds.

<figure><img src="/files/6s2vAJUYfRfWmev35J9R" alt=""><figcaption><p>Upload you own icon backgrounds</p></figcaption></figure>

To change the color settings of your icons in the Icons menu, navigate to Settings > Items and change these two settings to your desired colours.

<figure><img src="/files/0dX4XsgeHKA6MRT3tgqs" alt=""><figcaption><p>Change the icon and text colors of the Icons menu.</p></figcaption></figure>

## Top Image

Once you've chosen and perfected your navigation style, go ahead and add a top image. A logo for your event or business would do nicely here.&#x20;

<figure><img src="/files/OfnMRzXrvJBvycMCJmUR" alt=""><figcaption></figcaption></figure>

## Design&#x20;

Design settings for your Home block can be changed in the **Design** tab. \
Design settings wil differ significantly from those in the rest of your app. \
If that is the case, this is the section to change those settings. \
\
\
For more information about the general design settings of your app, please read: [Theme](/style-your-app/theme)


# FAQ Style

### How can I&#x20;

<details>

<summary>How can I style a specific block? </summary>

You can style the design of a specific block:&#x20;

1. Select the block in the list of blocks
2. Click on the **Design** tab in the panel on the right side![](/files/SK8S9ZhC5Nl9dqn8KzA7)
3. If you want to style this block in another way then your App Theme, enable **Customize theme for this block**.
4. This allows you to change the color, navigation bar and the background of this specific block.\
   ![](/files/26oqOnOi3lKkim1oeo9J)&#x20;
5. You can always remove the custom block design by disabling the switch.

</details>

<details>

<summary>How can I add a background image to my app?</summary>

When you've selected the blue **Home** block, you can navigate to the **Design** tab on the right hand side. expand the **Background** section and click on **Media**.\
![](/files/aktTBiw0jF8wmY9op4jC)\
You can then click on the space with the **+ icon** and add your background image. There are also options to add a filter and/or an overlay to the image. \
![](/files/94ia8lQB9HjX7UV9CgR1)

</details>

###


# Style your screens

The various ways AppMachne lets you style your screen

For the following blocks you can customize the style of your screens with the element editor on the elements tab:&#x20;

* List
* Detail
* Form
* Blank Page&#x20;

### Add an elements block to your app

1. Open your app
2. Click the red  **+ block**  in the top left corner

   <figure><img src="/files/fULgTsvUc1pKdW6aV86Y" alt=""><figcaption></figcaption></figure>
3. Select the **Pro** tab\
   ![](/files/RVqxAkkgEiQUIXFgBnI9)
4. Select **Blank page**, **List,** or **Detail** and click **Add this block**
5. **Name** your page and click **Add this block**<br>

   <figure><img src="/files/VyRLz8v4QgDWJJ1lduVO" alt="Give your block a name"><figcaption><p>Name your block or page</p></figcaption></figure>
6. The **elements** tab of this page will be opened automatically. You can see that in the left top corner at the op of your stack of blocks<br>

   <figure><img src="/files/7Ub21MNtL58dWVIBLN9a" alt="The elements tab"><figcaption><p>The Elements tab</p></figcaption></figure>
7. Click the blue **Add element** button on the left or the blue **+ button** in the phone previewer to start adding elements to your page<br>

   <figure><img src="/files/PXPiykwM7A858WwzLcMu" alt="Add elements"><figcaption><p>Add one of the elements</p></figcaption></figure>

The next section explains all of the different elements which are supported.


# Elements

Customize the elements on your screen

You can use AppMachine's preconfigured blocks to add data to your app, or you can dive deeper and design your screens down to every last detail. \
To use our Element Editor you need to add a Blank page, List, or Detail Block to your app. You can then use our drag and drop screen editor to configure your screen.

### Types of elements

AppMachine offers you various types of elements to add to your pages:&#x20;

* Display, including text and button elements
* Form elements
* Card elements\ <br>

  <figure><img src="/files/DeS0VsXdHAYLqyShdJ1l" alt=""><figcaption></figcaption></figure>

Almost every element has the following basic settings which allow you to style the screen in anyway you want: <br>

<figure><img src="/files/I2iQwVFzTuSMGCsqgz3q" alt=""><figcaption></figcaption></figure>

### Display

#### Container

An element used to hold other elements. Can be used to define/contain components that you create so that you can more easily move, edit, or manipulate them.&#x20;

#### List

Creates an ordered list from data made available to the app in the Data section.&#x20;

<figure><img src="/files/ziALaspOuaGvcyIpAGN4" alt=""><figcaption><p>Select from the available data sources in your app.</p></figcaption></figure>

Depending on the data available, the list generated will contain the different data types like Container, Repeater, Labels, and Links. The data types/elements can be toggled on and off and are then reflected in the design of the element.&#x20;

<figure><img src="/files/YEiGmqXOw3akwtTq2suk" alt=""><figcaption><p>Toggling content allows you to design a screen to your liking. </p></figcaption></figure>

![](/files/mrNmh8QO1YNErvaEk4uB)                 ![](/files/XjyiPvZhe1YwcJ7sEK6Y)

#### Card

#### Divider

Creates a line that can be used to separate elements or content on your screen. You can change the color and thickness of the divider in the element's **Properties**.

<figure><img src="/files/dqxAYmqr1JsprgxHFCYO" alt=""><figcaption></figcaption></figure>

#### Image

Upload your own image with our image selector.&#x20;

* Set **Width** and **Height** using \
  \- Auto\
  \- Fill\
  \- Fixed , set amount of pixels\
  \- Flex, set fraction of the width of the screen. Is only applicable if you have multiple elements in a horizontal aligned container.
* **Background size** (Fit, Contain and Cover) will only have effect when both Width and Height are not set to Auto. \
  \- Fit will show the whole image\
  \- Contain will adjust the image to the set Height\
  \- Cover will adjust the image to fill the Width
* Is **Clickable** enabled will offer customers the option to open the image in a lightbox for additional zooming.&#x20;

<figure><img src="/files/wVOqfKbviPjfANYN2Aei" alt=""><figcaption></figcaption></figure>

#### Link

Place a link in your screen.&#x20;

<figure><img src="/files/3k6ThAtzlpWeCJFRQRh0" alt=""><figcaption></figcaption></figure>

Use the **Type** property to determine whether the link is shown as text or as a button. Use the **Title** property to create the text that is shown as a link (or as the text on the button). Set the **Link Type** to classify the link (and its resulting behaviour) as a Site, Email, or Phone. You can also choose whether the link opens in the app or externally.&#x20;

#### Icon

Allows you to place an icon in your screen from a preselected library of icons. Select the icon design from the dropdown menu, determine the icon's size, its color, and the label.&#x20;

<figure><img src="/files/RBbotrcH6kGEBYvWweKE" alt=""><figcaption><p>Icon element properties</p></figcaption></figure>

The dropdown menu for icons contains a vast array of searchable icon types and styles.

<figure><img src="/files/NcM21pqHHE4oyLR7faPL" alt=""><figcaption><p>Icon library</p></figcaption></figure>

#### Map

Add a map to your screen.&#x20;

<figure><img src="/files/WSzHlEs48ZIgNuGcZ6Kt" alt=""><figcaption></figcaption></figure>

You can add an **Address**, a custom **Marker Image**, a custom Location Label, you can toggle on or off the ability to zoom in the map, you can select the **Zoom level**, Fix the position of the map, and show the location of the app user.

#### Rating

#### Progress

#### QR Code

Adds a QR code to your screen. You can place text or a URL in the **Text** field.

<figure><img src="/files/O4tGD0BmGPpkoPYuhY8c" alt=""><figcaption></figcaption></figure>

#### Video

Allows you to place a video in your screen.&#x20;

<figure><img src="/files/sfCEa1BAx0tvNUApocvx" alt=""><figcaption></figcaption></figure>

In the properties, you can define the URL of the video, whether the video autoplays, whether the controls of the videos are shown, and whether the app can be shown full screen.&#x20;

#### iFrame

#### Simple Detail

### Text

All the text elements have settings to influence the font, color and size of the text. These are the default fonts to use to make your app look the same in every screen.\
For example a Headline element gives you the option to add a text , and it uses by default the Headline font which is set in the green Theme block. If you want to add more variation to your screen you have the option to choose another font style, change fontsize, fontcolor, Bold, Italics or alignment.&#x20;

<figure><img src="/files/k2W0T8NJkLcgfAWcyHpP" alt=""><figcaption></figcaption></figure>

NOTE : We do advice you to mostly use the default options offered in the dropdown, to maintain uniformity in your app.&#x20;

<figure><img src="/files/7ew8cl7qbQvfRzwLlfE3" alt=""><figcaption></figcaption></figure>

* Display
* Heading
* Title
* Body
* Label
* Rich text

### Buttons

Add a button to your screen and add Events to initiate an action. Set&#x20;

* Text
* layout
* Background of your button.

<figure><img src="/files/Qw4JdngeJBTeqEoAGOiX" alt=""><figcaption></figcaption></figure>

* **Primary button** uses the primary color as the backgroundcolor
* **Secondary button** uses the secondary color as the backgroundcolor
* **Action button** is shown as an overlay at the bottom of the screen and will always be visible.


# Publishing your app

The ways to publish your app with AppMachine

Congratulations! You've finished your app and you're ready to send it into the world. AppMachine offers three avenues for publishing the app that you've built on our platform; it can be published as a web app, an iOS app, or an Android app.&#x20;

To start the publishing process, please make sure that you've paid the subscription that offers the publishing platforms you'd like to use. You can find the specific information to publish your app on the three following platforms in the articles linked to the pages below:

[Web App Publishing](/share-your-app/web-app-publishing)

[Apple Publishing](/share-your-app/apple-app-store)

[Android Publishing](/share-your-app/google-play)


# Technical Setup Quick Start Guide

## **Technical Setup Apple App Store in AppMachine**

You can already take these steps if your app isn't completely finished yet.

1. Make sure you have an **App Store Connect account**. [Read more...](/share-your-app/apple-app-store/ios-developer-account)\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115512322/original/akF8MYjvqmIwfctn5JNuuDhrdcWLvQkgOA.png?1655891098" alt=""><figcaption></figcaption></figure>
2. In the AppMachine Publish screen you can choose Apple App Store > **Setup App Store Connect Api Key**. [Read more...](/share-your-app/apple-app-store/app-store-connect-api-keys)
3. In the same wizard, AppMachine will create an **App Bundle Identifier** for you. [Read more...](/share-your-app/apple-app-store/link-your-app)
4. Next, AppMachine will ask you to create an **App Record** in App Store Connect. Use the Bundle Identifier which AppMachine created for you in the previous step. [Read more...](/share-your-app/apple-app-store/new-app-record-in-app-store-connect)
5. Carefully fill in the **App Privacy** Information in App Store Connect and make sure your answers correctly reflect your App. [Read more...](/share-your-app/apple-app-store/app-privacy-details)

### **Technical Setup Google Play Store in AppMachine:** <a href="#setup-google-play-store-in-appmachine" id="setup-google-play-store-in-appmachine"></a>

You can already take these steps if your app isn't completely finished yet.

1. In the AppMachine Publish screen you can choose Google Play Store > Setup Play store\
   \
   This wizard will guide you how to set up **Firebase** keys, required for publishing, analytics, user authentication, data storage and more. [Read more..](/share-your-app/google-play/setup-your-android-app)<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80110276631/original/VJ_cnkFWOsCkNn4ZtxXwTbDZLXwU5Aeaog.png?1654441662" alt=""><figcaption></figcaption></figure>
2. Create a **Google developer account**, this costs $25 per year. It will take Google a few days to review your account, so don't this wait with this step till the end. [Read more..](/share-your-app/google-play/create-a-google-developer-account)
3. If your app shows a map, for example in an events block, Contact block or if you have added a Map to a screen yourself  you need to create **Google Maps** Api keys.  [Read more..](/share-your-app/google-play/how-to-request-a-google-maps-api-key)
4. If you want to track your customer's activities in your app, you need to enable this at\
   Manage > Settings > Firebase analytics. Don't forget to enable Google analytics when you create [your Firebase keys.](/share-your-app/google-play/setup-your-android-app)
5. If your have **user registration via Facebook enabled** you will need to create your own **Facebook keys.** \
   While logging in, your customers will see the name of your Facebook app. [Read more..](/app-details/user-management/create-facebook-app-id-secret)
6. If you have a **Twitter block,** you will need to add Twitter API keys to retrieve data for your Twitter block. [Read more..](/app-details/twitter-api-keys)
7. Google Play > Edit Store info to see if the **Default language** is set correct


# Update your app

Your app has been published to the app stores. Now you're ready to start making changes to the app and pushing these to the app's users.

### **1. How to update your app**

1. Select the **Publish** tab.
2. Click **Publish** in the top right corner
3. We validate your app to make sure all required information is available. For example, you might additional keys if you have added some specific new blocks, for example Twitter or User authentication.
4. Choose the app store you want to publish to.<br>

   <figure><img src="/files/42cseBFuQU6gotqiI5tM" alt=""><figcaption></figcaption></figure>
5. If your app is already available in the app store and you have made some small content changes. In that case the screen above can look like this:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114298979/original/NeusgeigLFdOlPLRjuhfutZI47dvGo3qVA.png?1655474445)

### 2. How to force a store update

In some cases you'll need to force a store update. This can be the case when we've fixed a bug in our platform and the store version needs to be updated to make the fix available in your app.&#x20;

1. Select the **Publish** tab.
2. Click **Publish** in the top right corner
3. We validate your app to make sure all required information is available.
4. Select the app stores you want to force a store update for:<br>

   <figure><img src="/files/k5HpHVANyYRAWk1Uffhe" alt=""><figcaption></figcaption></figure>
5. Then, make sure you ENABLE the "Force a stopre update" option at the bottom of the publish modal:<br>

   <figure><img src="/files/9SgYLiTa3WTlZCBE5J6k" alt=""><figcaption></figcaption></figure>
6. You'll know you're going to submit a store update when the expected publishing time changes from 5 minutes to 1-3 days: <br>

   <figure><img src="/files/3XGkdcCRefjOUW4yZQKI" alt=""><figcaption></figcaption></figure>

   After starting the process it'll usually take somewhere between 1-3 hours before the new app versions are created.
7. As you may already know, the store update process for iOS apps is automatic. But for Google you need to manually submit the new app file once the publishing process has finished: [Documentation](https://docs.appmachine.com/share-your-app/google-play/update-android-app-short).

### **3. Content vs. Store Updates**

When you update your app, AppMachine will submit either a Content Update or a Store Update. Which update is submitted depends on the changes that you have made to the app since its last update.&#x20;

#### **Content Updates:**&#x20;

* Include the most basic updates to your app's design and content
* Available within 5 minutes

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115357350/original/cbtmoXFxgqCYVZolYS87miF3QANPkCKjeg.png?1655850405)

**Store Updates:**

* Required for changes to the app icon, the store screenshots or to the store information.
* Required if the app now includes a block that was not available in the AppMachine platform at the time of the last store update
* Required to fix bugs in the code
* Store Updates take 2-3 business days for both Android and iOS apps.&#x20;

App Updates are included in your app subscription and can be triggered as long as you have an active subscription.


# Unpublish an app from the app stores

This article explains how you can remove or delete your app from the Google Play and Apple App Store.

### Unpublish your Android app from the Google Play Store

To remove your Android App from the Google Play Store, follow these steps:

1. Log in to your [**Google Play Console**](https://play.google.com/apps/publish/?hl=en) account.
2. Open the app in the Google Play Console that you want to unpublish.
3. Navigate to the **Release** section, click on **Setup**, and then **Advanced settings**.
4. Under **App Availability**, click on the **Unpublish** button and **Save**.

<figure><img src="/files/NtSZ6uARHj5RtuuOTWJL" alt=""><figcaption></figcaption></figure>

### Unpublish your iOS app from the Apple App Store

To remove your iOS App from the Apple App Store, follow these steps:

1. Login to your [**App Store Connect**](https://appstoreconnect.apple.com/) account.
2. Got to **My Apps** section and selecte your app.
3. Under **Pricing and Availability** section, select **Remove from Sale**.
4. Make sure to **Save** your changes.

<figure><img src="/files/ykA0B3lvFp3uvSRxvsmC" alt=""><figcaption></figcaption></figure>


# Web App Publishing

How to publish your app as a PWA

You can publish your app as a web app, als knows a Progressive Web App (PWA) or HTML5 app. A PWA is a website that looks and behaves as if it is a mobile app. PWAs take advantage of native mobile device features, without requiring your app users to visit an app store.&#x20;

Progressive Web Apps published via AppMachine can be used on smartphones, tablets and desktop browsers. On smartphones and tablets the PWA will be displayed fullscreen. On desktop browsers, the app user will be able to choose whether to display the app within in a phone or tablet frame.

### Benefits of a web app

* Web apps are published instantly.
* Publishing a web app doesn't require a developer account.
* Publishing a web app doesn't require approval from the app stores.
* A web app is available in the browser, without installing, anywhere in the world, on any device.
* A web app can be hosted on your own domain. [Learn more..](/share-your-app/web-app-publishing/hosting-on-custom-domain)&#x20;

### Technical setup

There are two properties on the Publish page that affect the appearance of your web app, the **app title** and the **favicon**.

#### App title

The app title is displayed in the browser tab of your published web app. This goes for both the preview, as well as the production version.

<figure><img src="/files/kX0GyJuOcK9r7mLLqUKi" alt=""><figcaption></figcaption></figure>

#### Favicon

The favicon can be uploaded on the Web App settings page, which can be opened via the Edit Web Info button on the Publish page. The favicon is displayed on the left side of the app title, within the browser tab of your publish web app.

<figure><img src="/files/cEr5rfjteIF5mlPyPVjx" alt=""><figcaption></figcaption></figure>

### Preview vs. Production

There are two versions available for your Web App, a Preview version and a Production version. Both of these versions have their own unique URL, and are published separately.

The Preview version is for testing purposes, which is why there is no validation done by AppMachine when publishing a preview version of your web app. This allows you to view changes you've made to your app, or show preliminary changes to your client(s), without affecting your live app users.

The Production version is the version that your app users will be using. Any update done to this version will immediately be noticeable by your app users.&#x20;

## <br>


# Hosting on custom domain

In order to 'host' your Web App on a custom domain, the following is required:

* A domain, as well as access to the domain's DNS settings.
* A published Web App, either Preview or Production.

As you may have noticed, 'host' is written in parentheses. This is because this article does not explain how to actually host the Web App on your own domain, but how you can make it appear as if your Web App is hosted on your own domain. The way we're going to achieve this is by adding either a CNAME or ALIAS record to your domain's DNS settings.

Before we start, let's first explain the terms CNAME and ALIAS so that you have a better understanding of what we're doing here.

### 'Hosting' via CNAME

CNAME records can be used to alias one name to another. Take for example these two URLs:

URL #1: `appmachine.com` \
URL #2: `www.appmachine.com`&#x20;

Both addresses point toward the same application and are hosted by the same server. However, only `appmachine.com` points towards the server IP address. The prefix (subdomain) to the other URL `www.` is actually a CNAME record that points towards `appmachine.com`.&#x20;

Now, let's say we've created a Web App with AppMachine which is published on the URL `1234ab.myinstant.app`. If we create a CNAME record for `webapp.` within the appmachine.com DNS settings, and point it towards `1234ab.myinstant.app`, then we will be able to view our published web app by navigating to the URL `webapp.appmachine.com`.

### **'Hosting' via ALIAS**

An ALIAS provides CNAME-like behaviour, but does so on the apex domain rather than on the subdomain.

<img src="/files/PbncqRfOFCMqNzKBnCSw" alt="" data-size="original">

Let's say we have our published Web App `1234ab.myinstant.app` again, and this time, instead of `webapp.appmachine.com`, we want `appmachine.com` to display the published Web App. Because we want to point the apex domain toward a different domain, we use an ALIAS with the name `appmachine.com` and point it towards `1234ab.myinstant.app`.

### When to use which?

Generally speaking, if you've bought a domain for the sole purpose if displaying your Web App, and you wish for your app to visible on the apex domain URL, then you'll use an ALIAS to accomplish this.

If you already have a website and you wish to make your Web App available via a subdomain on the same URL, then you use a CNAME to accomplish this.

### Linking your domain

To link your domain to your AppMachine Web App, open the Web App info page in AppMachine and click the 'Link custom domain' button.

<figure><img src="/files/ARcYsg6W1SGb3kV9v9FT" alt=""><figcaption></figcaption></figure>

Next, enter the domain on which you'd like the Web App to become visible. This can be a subdomain if you'll be using a CNAME-record, or the apex domain if you're using an ALIAS.

<figure><img src="/files/SonpewFTzTcZAx8hQFzi" alt=""><figcaption></figcaption></figure>

Finally, login to your domain's control panel and open the DNS settings page. Depending on your choosing, add either a CNAME or an ALIAS to your DNS settings with the record name and value displayed in AppMachine.

<figure><img src="/files/g6sk2EBCqcr0fqThRLUR" alt=""><figcaption></figcaption></figure>

After clicking the Finish button, our systems will check whether the domain you've provided can be reached, and whether the references have been configured correctly. If everything checks out, the Custom DNS status on your Web App info page will state 'Linked'.

<figure><img src="/files/8lv1uYMb6QV3v7Hb5brt" alt=""><figcaption></figcaption></figure>


# Apple App Store

This article briefly describes in overview the steps you need to take to publish your app in the Apple App Store.

This article describes in overview the steps you need to take to publish your app in the Apple App Store.\
\
In short, you need to create some certificates and id's at Apple, enter your store information at AppMachine, and then AppMachine will publish your app for you. After 1-3 days Apple will review your app and if everything is ok, your app will be made available in the App Store automatically.

> If you're updating an existing Classic AppMachine app which is already published in the Apple App Store, then please follow the steps [in this article instead](https://support.appmachine.com/support/solutions/articles/80001025371-v2-publish-your-classic-live-app-in-store-with-new-publishing-and-flutter).

We have also created a video tutorial showing you all the steps you have to take to setup your app for Apple App Store publishing.

{% embed url="<https://youtu.be/KbQ2JQ-XFK4>" %}

## **1. Technical Setup Apple App Store in AppMachine**

You can already take these steps if your app isn't completely finished yet.

1. Make sure you have an **App Store Connect account**. [Read more...](/share-your-app/apple-app-store/ios-developer-account)\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115512322/original/akF8MYjvqmIwfctn5JNuuDhrdcWLvQkgOA.png?1655891098" alt=""><figcaption></figcaption></figure>
2. In the AppMachine Publish screen you can choose Apple App Store > **Setup App Store Connect Api Key**. [Read more...](/share-your-app/apple-app-store/app-store-connect-api-keys)
3. In the same wizard, AppMachine will create an **App Bundle Identifier** for you. [Read more...](/share-your-app/apple-app-store/link-your-app)
4. Next, AppMachine will ask you to create an **App Record** in App Store Connect. Use the Bundle Identifier which AppMachine created for you in the previous step. [Read more...](/share-your-app/apple-app-store/new-app-record-in-app-store-connect)
5. Carefully fill in the **App Privacy** Information in App Store Connect and make sure your answers correctly reflect your App. [Read more...](/share-your-app/apple-app-store/app-privacy-details)

### **Optional: Add keys for specific features**

1. If you want to track your customer's activities in your app, you need to enable this at Manage > Settings > **Firebase analytics**.  [Read more...](/app-details/firebase)
2. If you have **user registration via Facebook** enabled, you will need to **create your own Facebook App and keys**. When logging in with Facebook, your customers will see the name (and image) of your Facebook app. [Read more...](/app-details/user-management/create-facebook-app-id-secret)
3. If your app contains a **Twitter block**. you will need to add a Twitter key to retrieve data for this block. [Read more...](/app-details/twitter-api-keys)

## **2. Prepare your Metadata**

1. Enter your **App Vitals** including your app name and your app icon in the Publish dashboard.
2. Enter all required **Store Information** in the Publish dashboard > Apple App Store > Edit Store info. [Read more...](/share-your-app/apple-app-store/edit-store-information)

## **3. Last Check**

1. Do a last check to see if the content of your app is exactly the way you want it, by previewing your app in the editor and clicking through the screens.
2. To minimize the chance of your app being rejected by Apple App Review, check whether your app is in accordance with [Apple's Review Guidelines](https://developer.apple.com/app-store/review/guidelines/). You can find an overview of thees guidelines [here](/share-your-app/apple-app-store/app-store-review-guidelines).

## **4. Publish your App**

1. Click the **Publish** button in the top right corner of the Publish dashboard.
2. Before your app gets published, AppMachine **validates** if all required information is entered and will notify your if some information is missing. [Read more...](/share-your-app/apple-app-store/fix-app-publish-issues)
3. You need to enter the **What's new** information, which is required by Apple for each release, except for your first release.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80118737326/original/Cls61UhK7_RtlSrtfh9jVzQ2ivmAJQJOdQ.png?1656857135" alt=""><figcaption></figcaption></figure>
4. if you want to change the release date of this version, click **Automatically release this version** and click Next.\
   **- automatically:** this is the default setting and your app will become available for your customers at the moment that your app is set to Ready for Sale by Apple.\
   \- **Manually release this version:** can be used for Unlisted and Enterprise apps too.\
   \- **Automatically release , no earlier than**: you can set the specific time you want to have this new version made available<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80118737401/original/wiPdnWIdiuj20QHpaB1Crufdh6m3gal7Sw.png?1656857225" alt=""><figcaption></figcaption></figure>
5. The Publish your App wizard will build your app and publish to Apple it along with the information you entered. When the publishing process has started you can close the Publish your App wizard. You will be informed when publishing has been completed. If you want to view the progress, you can always click "View Publish Progress" in the Apple App Store information block on your Publish dashboard.

In case an error occurs during publishing, it will be marked in red and you will be notified. We've setup an article for you that lists the most common causes and solutions for failed publishing. You can review it [here](/share-your-app/apple-app-store/fix-app-publish-issues). If you cannot solve it this way, you can always contact <support@appmachine.com>. Make sure you provide your app name, app number, the email address of your AppMachine account and any screenshots that show information about the issue so we can help you as fast as possible.

## **5. Publish your App**

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80118737133/original/6lgUcXl0RDNChHsT6hH41wynOh1Nho2Y-g.png?1656856945)

## **6. The Publishing Process**

If you want to know more about what we do during the publishing process, read on.

1. During the technical **Preparation** phase, AppMachine will gather the necessary files and create an App Snapshot.\
   \ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115568620/original/zMzjb7XKqpdMZbKim7iqjLch9wp-EakiNw.png?1655896590" alt=""><figcaption></figcaption></figure>
2. During the **Publishing** phase, the metadata and screenshots will be uploaded to App Store Connect. This encompasses all the information you entered in the App Vitals and Edit Store Info screens. [Read more if you are experiencing issues during this step.](/share-your-app/apple-app-store/fix-app-publish-issues)\
   \ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115570275/original/RkKmabRaznWd2tFje4TTJvhRAJD1cWbIZA.png?1655896765" alt=""><figcaption></figcaption></figure>
3. In the **Building and Signing** step, your app gets built using the certificates, p8 file and ID information you have entered during the technical setup for the Apple App Store. All the blocks and content that is currently included in your app will be packaged within this build.
4. Finally, the app will be uploaded to the App Store. Usually uploading is a pretty quick process, but it can be slower if Apple is having some traffic issues. When upload is complete, the App Review process can start.

During the publishing process to the Apple App Store, you will receive several emails from Apple that inform you about the status of your publication.&#x20;

## **App Review**

When your app is in review it can take up to 3 days to complete. Reviewing your app is a manual process performed by an Apple employee who checks if your app is in accordance with the [Apple Review Guidelines](https://developer.apple.com/app-store/review/guidelines/), and if your App Privacy details match the actual contents of your app.

Apple will send you an email when:

* The app is in review
* The app is rejected during review
* The app is approved
* The app is "Ready for sale", i.e. available for download in the app store.

After successful publishing, it may take a while before your app shows up when you search for it in the app store on your mobile device.

## **Sending Push Messages**

When your app has been approved, you need to follow [this guide](/share-your-app/apple-app-store/push-certificates) to enable Push messages in your app. After completion you can send your first push message.

## Update your App

To update your app, please follow the instructions available here: [Update your app](/share-your-app/publishing-your-app/update-your-app)


# iOS developer account

This article explains what an iOS developer account is, why you need it to submit apps to the Apple App Store, and how you can create your own account.

To submit apps to the iTunes Store/App Store you need an iOS Developer Account. Below is a step-by-step guide on how to set up this account.&#x20;

> Please note that is important that apps are submitted directly by the provider of the app’s content using their own Apple Developer Account. If the app and the developer account do not match, Apple will potentially reject the app.&#x20;

You can enroll in two ways:&#x20;

* **Enrolling as an Individual**\
  If you are an individual or sole proprietor/single person business, sign in with your Apple ID to get started. You’ll need to provide basic personal information, including your legal name and address.
* **Enrolling as an Organisation**\
  If you’re enrolling your organisation, you’ll need an Apple ID as well as the following to get started:
  * **A D-U-N-S® Number**\
    Your organisation must have a D-U-N-S Number so that we can verify your organisation’s identity and legal entity status. These unique nine-digit numbers are assigned by Dun & Bradstreet and are widely used as standard business identifiers. You can check to see if your organisation already has a D-U-N-S Number and request one if necessary. They are free in most jurisdictions.
  * **Legal Entity Status**\
    Your organisation must be a legal entity so that it can enter into contracts with Apple. We do not accept DBAs, fictitious businesses, trade names, or branches.
  * **Legal Binding Authority**\
    As the person enrolling your organisation in the Apple Developer Program, you must have the legal authority to bind your organisation to legal agreements. You must be the organisation’s owner/founder, executive team member, senior project lead, or have legal authority granted to you by a senior employee.

## **Creating an iOS Developer account**

1. Open this url [https://developer.apple.com/enroll](https://developer.apple.com/enroll/) and click **Start your Enrollment**. \
   Sign in using your Apple ID (or create an Apple ID if you do not have one yet).

![](/files/ZWyVyWD5XjGzyjzUzjsI)

2\. Confirm the agreement and click **Submit**.

![
](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082647731/original/CABx9ObnK_xgxKgPLuFCznwENqoQTbsq6A.png?1646232599)

3\. **Confirm** that all your information is correct (email, name, location), then choose an entity. Please read Apple's explanation of entities below before you make a choice.

**Explanation from Apple:**\
The Developer name listed on the App Store is based on the type of account selected from the options below. Apps published to Individual Developer Accounts will display the name listed on the iOS Developer Account. Apps published to Company/Organisation Developer Accounts will display the Company Name entered within the iOS Developer Account.

Entities:

* **Individual/Sole Proprietor/Single Person Business**: Individuals or companies without an officially recognised business (company without a Dun and Bradstreet number). This account only allows for a single primary login to be created to the iOS Developer Account.
* **Company/Organisation:** Legally recognised Companies with a Dun and Bradstreet number can select this option. This will allow multiple user logins to be created and managed with varying permissions capabilities for each login. See [here](https://developer.apple.com/program/enroll/dunsLookupForm.action) to check if your company is a legal recognised company with a Dun and Bradstreet (DUNS) number.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082648144/original/riO1szExFHz1GOkVSWou9xJnssJFpSu0yg.png?1646232646)

4\. Fill in all the contact details for your Developer Account.

5\. Read the Apple Developer Program License Agreement, check the box confirming you have read the agreement and click **Continue**.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082648353/original/cVdjERP2jcLkZh2hJmLJw0fnHXcdPeUN9Q.png?1646232668)

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082648464/original/0rWn8zIkQr6x7-UNGUpYHMehdUl3w6G1sw.png?1646232687)

\
6\. **Confirm** that all the previously entered information is correct en click **continue**.&#x20;

7\. Click **Purchase** to enrol and pay for your yearly iOS Developer Account. Check the **Automatic Renewal** box to make sure your membership will renew automatically.

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082648760/original/qZHB35OTTJxlc8l_lzcooolDMC55TThOSw.png?1646232716" alt=""><figcaption></figcaption></figure>

8\. **Sign in** with your Apple ID and fill in your **billing** information. Then click C**ontinue** to complete the setup of your iOS Developer Account.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082649030/original/xfWC7vpF1VnlXN3qg4nMjID4v_QniWA6dA.png?1646232742)

9\. Fill in any remaining information on the following pages. Within 24 hours you will receive a confirmation email from Apple letting you know the setup of your iOS Developer Account was successful.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082649201/original/RM1VY2yBFVIeVxaDu6vkRHgPbwXFv8PJ0Q.png?1646232759)

## Frequently Asked Questions

**If a client adds me to their iOS Developer Account as an Admin would my ‘admin’ login information suffice for AppMachine’s requirement for iOS publication?**\
\
Yes this is possible, but only when your client is able to grant you 'Access to Certificates, Identifiers, and Profiles'. This is an extra option in the Users & Access section of App Store Connect, and is required by our system in order to create the required certificates for the app. Your client will only be able to invite you with this permission enabled if they have registered their developer license as a company/organisation type account.\
\
**Would it be best if my client also purchased their own Google Play developers account?**

Yes, we always advise to publish apps on their own accounts. This is to prevent apps from being removed from the store when an account gets terminated by Google for whatever reason. Spreading the apps on multiple accounts, also spreads the risk.


# App Store Connect API keys

In order to be able to publish your app to the Apple App Store you're required to connect your Apple developer account to AppMachine. Connecting your Apple developer account grants AppMachine access to upload your app and its assets, and to submit the app into review with Apple. In order to connect your Apple developer account to AppMachine, the following information is required by our system:

* Key ID
* Issuer ID
* P8 key file

To request the App Store Connect API key that is required to publish your app to the App Store, please follow these steps:

1. Navigate to the [App Store Connect portal](https://appstoreconnect.apple.com/) and login to your Apple Developer account.
2. After logging in, switch to the correct developer team if needed and open the **Users and Access** section.\
   [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213996/original/bwp1BL4NlSN_kJLYP1EvxjI8Fgwu-2zVdw.jpeg?1654683209)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213996/original/bwp1BL4NlSN_kJLYP1EvxjI8Fgwu-2zVdw.jpeg?1654683209)
3. On the Users and Access page, click on the tab that reads **Integrations.**\
   \
   *\* If you do not see the Integrations tab on the page, then you likely do not have sufficient access to use this resource. In that case, please contact your Apple Developer account administrator to adjust your account's user rights before continuing.*
4. On the Integrations page you'll find the **Issuer ID**, as well as the ability to create a new App Store Connect API key.\
   \
   [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213999/original/LugtPTjtua92hvSTJesrp9-URYomrR_U9g.jpeg?1654683210)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213999/original/LugtPTjtua92hvSTJesrp9-URYomrR_U9g.jpeg?1654683210)
5. Click the **+** button to create a new API key.
6. Enter a **name** for the key. The name of the key is purely used for reference and will be displayed on the Keys page as long as the key is active.\
   \
   *\* Please note that this name is visible to any member of the developer account with access to the Keys section of the Users and Access page, therefor it may not be wise to use 'AppMachine' as the name of your API key.*<br>
7. Set the key's access rights to either **Admin** or **App Manager**. Other access rights will not be sufficient for our system to be able to publish your app to the App Store.<br>
8. When you've entered the name and set the access rights, click on **Generate** to create the API key.\
   \
   [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213993/original/PZjxHfUOUXxchXn0v7gNv4bHtXJ-vS61Xg.png?1654683210)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213993/original/PZjxHfUOUXxchXn0v7gNv4bHtXJ-vS61Xg.png?1654683210)
9. You will see the new key visible on the Keys page as an **Active** **key**. The key will be listed with a **Key ID** and a link which allows you to download the **API key**.
10. Click  **Download API Key**  to download the API key that you've just created. The key will be saved on your device as a .p8 key file with the name 'AuthKey\_\[key\_id]'.\
    \
    *If you don't see the Download option immediately, you might need to re-login.*\
    \
    [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213998/original/gF1-TA45fQo2Zfjg4IWNHSEifkrj_4dnQA.jpeg?1654683210)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111213998/original/gF1-TA45fQo2Zfjg4IWNHSEifkrj_4dnQA.jpeg?1654683210)\
    You've now successfully generated an API key on your Apple developer account.
11. Go **Back** to the wizard in **AppMachine**\
    [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115356121/original/bm6fON4VTq0oyNaT8OQ5az_NdU8_r65zGw.png?1655848419)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115356121/original/bm6fON4VTq0oyNaT8OQ5az_NdU8_r65zGw.png?1655848419)
12. Enter the Key ID and Issuer ID in AppMachine and **select** the p8 key file.
13. Click **Upload** to connect your Apple developer account to continue publishing your app to the App Store.
14. You will see this screen:\
    [![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112373937/original/-XA7umeyfdlZpLXdo9VrFYseA0S4Bp-m-Q.png?1655054481)](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112373937/original/-XA7umeyfdlZpLXdo9VrFYseA0S4Bp-m-Q.png?1655054481)
15. [Open this article](/share-your-app/apple-app-store/link-your-app) to read more how to proceed.&#x20;

Note: If you own more than 1 app under the same developer account, you can reuse the 2 IDs and the key file which you created in the steps above for all of your apps.&#x20;


# Link your app

This article explains how to link the app you've created on your Apple developer account to the app you've developed in AppMachine.

**Pre-requisites**&#x20;

* You have setup your App Store Connect API key. [Read more..](/share-your-app/apple-app-store/app-store-connect-api-keys)
* You have created an app record in App Store Connect. [Read more..](/share-your-app/apple-app-store/new-app-record-in-app-store-connect)

### Linking the App Store Connect app record to your AppMachine app

The following steps assume that you've successfully uploaded your App Store Connect API key. In case you're not on the screen displayed in step 1, please follow the steps in [this article](/share-your-app/apple-app-store/app-store-connect-api-keys).

1. After uploading your App Store Connect API key, the wizard will show a list of app records retrieved from your Apple developer account.\
   \
   ***\* Note:** The App Store Connect API key that you've uploaded is linked to the account on which the key is created, and therefor has the same access rights as the account. Apps to which the key does not have access will not be displayed in this list.*<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117036389/original/bWB1B4RH7jFm66CqXRqUyUudMgkmA1whhw.png?1656356494" alt=""><figcaption></figcaption></figure>
2. Depending on your situation you need choose between:&#x20;
   * **New app:** \
     If you don't have any apps on your developer account yet, click the Create new App Bundle Identifier button.<br>

     <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80120280319/original/UkZEbhK4eFgPB85AzLZ93iIInzTpJu5oXw.png?1657200510" alt=""><figcaption></figcaption></figure>
   * **Existing app:** \
     If a bundle identifier for your app already exists within your developer license, then you can link the existing app by clicking the bundle identifier from the app list.

When you've linked your app, continue the process by following the steps in [this article](/share-your-app/apple-app-store/new-app-record-in-app-store-connect).<br>


# New app record in App Store Connect

This article explains how to create a new app record in the App Store Connect portal. After following the steps in this article, you'll be able to select the app record during the publishing process.  In that sense, the app that you're creating through these steps is the 'shell' in which your AppMachine app will be 'nested'.<br>

This article describes one of the steps you have to take to get your app published in the Apple App Store. [Click here to see all of the steps.](/share-your-app/apple-app-store)

**Preparation**

During the technical setup of your app, AppMachine will have created an App Bundle Identifier for your app because you clicked the **Create New App Bundle Identifier**.

### Create your app

1. If everything went according to plan, you are reading this article because you clicked in the wizard below on the button **Create your App in the App App Store Connect portal**.![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112384883/original/OFwLvmmx2oe-FTq-EeiSXmZT7mw8c1AMhw.png?1655064601)
2. Login with your Apple developer account on <https://appstoreconnect.apple.com/>..
3. Once logged in, open the **My Apps** section.\
   \
   *\* If you're a member of multiple developer teams, then make sure that you've switched to the correct developer team via the account menu in the top-right corner of the screen.*\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108180662/original/wCe57jfOF1mfku6d9ZveiE-BIG3tBnOlSQ.png?1653661397)
4. On the **My Apps** page, click the blue **+ button** and select the option '**New App**' to create your new app.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108183256/original/OSulTL1zYeMf276tje8wxteJoOBpSMktJA.jpg?1653661800)
5. The 'New App' modal will be displayed in which you'll have to specify information about your app. Below we'll go through all of the requested information in order to explain what Apple is asking, and which value(s) you will have to enter or select.\
   \ <br>

   | **Item**             | **Description**                                                                                                                                                                                                                                                                                              | **Choose**                                                                                                                                                            |
   | -------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ | --------------------------------------------------------------------------------------------------------------------------------------------------------------------- |
   | **Platform**         | <p>This option allows you to specify the platform(s) for which your app will be made available.<br><br><br>AppMachine apps only offer support for the iOS platform. Selecting any additional platform will cause our system to be unable to publish your app to the App Store.</p>                           | **Only select Platform iOS**                                                                                                                                          |
   | **Name**             | <p>This will be the name of your app as it will be displayed in the App Store.<br><br>Please note that app names in the App Store have to be unique, and are limited to a maximum of 30 characters.</p>                                                                                                      | <p><br></p>                                                                                                                                                           |
   | **Primary Language** | <p>This concerns the main language of your app, and will also determine the App Store in which your app will be published primarily.<br><br>Although this language setting does not determine the availability of your app, it can determine whether the app name of your choosing is available for use.</p> | <p><br></p>                                                                                                                                                           |
   | **Bundle ID**        | <p>This is the unique technical identifier of your app which was created during the previous step of the publishing process.<br><br>Open the list and select the value that matches the bundle identifier that you've chosen for your app in AppMachine.</p>                                                 | **Select the value that matches the bundle identifier. you can find the right one in the AppMachine page in the grey box shown at the top of this article (Step 1).** |
   | **SKU**              | A second unique identifier for your app. This identifier is not visible in the App Store.                                                                                                                                                                                                                    | **Fill with the last part of your bundle identifier: e.g. com.app.a1234ab**                                                                                           |
   | **User Access**      | <p>This option allows you to limit which users within your developer team will be able to view this app in App Store Connect.<br><br></p>                                                                                                                                                                    | **Set this to 'Full Access'.**                                                                                                                                        |

   \
   \
   When you've provided all the information, the form should look something like the image below.\
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108195471/original/NxsxruHIEr6H3VU7hJSrOQ77RCBw-ReETw.png?1653663909)
6. Click **Create** to finish creating your App Store Connect app record. This screen may take some time to process. If the process seems stuck, we advise you to **refresh** the browser manually. You should see something like this:\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303094/original/PUWmjlbQzoaNBagfIqCzQirAIWEkHndA7A.png?1653764938)\
   \
   **After creating the app you will be re-directed to the versions page of your app. All the information on this page will be filled out automatically by AppMachine.** \
   \
   **However, there is some information for your app that AppMachine is not able or not allowed to fill out on your behalf. Please continue following the steps below to get your app ready for publication through AppMachine.**<br>
7. From the left-side menu, open the **Pricing and Availability page**. On this page you will be able to select a price tier for your app, as well as specify the countries or regions in which your app will become available once published. \
   We recommend that you choose:\
   \* If you don't plan to sell your app in the Apple App Store, choose **0,00 (Free).**\
   **\*** Choose "**all countries or regions selected"**\
   Use the **Save** button in the top-right corner of the screen to save your changes.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108201157/original/csqexjRc08FG4POhdpGy8mbFonqhthzwGw.png?1653664823)
8. From the left-side menu, open the **App Privacy page.**\
   On this page you will have to specify your app's data collection practices. We as AppMachine are not allowed to do this for you, but this process contains quite some technical terms. To assist you with the process of entering your app's App Privacy details we've created a separate help center article with a step-by-step guide on how and what to enter: [App privacy details on the App Store](/share-your-app/apple-app-store/app-privacy-details) **and start at Step B**\
   \
   ***Please follow the steps in the aforementioned help center article concerning the App Privacy details of your app.***&#x20;
9. Go back to AppMachine and click **Continue** in the screenshot below.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117037696/original/MJzX6AWX0jw2fZnFkwD8UTxj4GZiI-SBww.png?1656357412)\
   \* If this wizard has been closed in the meantime, you can click **Setup App Store Connect API key** in the Publish dashboard again\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117037566/original/be_E7KNFTJuL6BNyfgMikFXIeY-HmJ9DtQ.png?1656357304)\
   In that case you need to enter some information again following [these guidelines](/share-your-app/apple-app-store/app-store-connect-api-keys) \
   and then choose the app you just created.
10. Select the created app in the wizard and click **Continue**


# App privacy details

In order to help users understand an app’s privacy practices before they download the app on any Apple platform, app owners must enter privacy details of their app within App Store Connect prior to being able to publish.&#x20;

This article describes one of the steps you have to take to get your app published in the Apple App Store. [Click here to see all of the steps.](/share-your-app/apple-app-store)

\
With this information, users will be able see which data types the app may collect, and whether that data is linked to them or used to track them. You’ll need to provide information about your app’s privacy practices, including the practices of third-party partners whose code you integrate into your app, in App Store Connect.\
\
**PLEASE NOTE:** *While answering the questions posed by Apple, please keep in mind that you are (or your client is) seen as the owner of the app, and that in that sense, AppMachine is seen as a third-party partner.*<br>

### A. Open the correct page

The app privacy details can be provided through App Store Connect.&#x20;

1. **Login on** [**https://appstoreconnect.apple.com/** ](https://appstoreconnect.apple.com/)**with your Apple Developer account.**\
   \
   Please make sure that the account you're logging in with has the Account Owner or Admin role. Any other role is insufficient to perform the required actions.<br>
2. **When logged in, open your app via the My Apps section.**&#x20;

### B. Privacy Page

Once opened, you'll find the App Privacy page listed in the left nav menu.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303306/original/zGB-2I7Wo6FsSsCA-ZyFwyFQQ9m3y1JXRw.png?1653765437)

Note: You don't need to fill in the Privacy Policy URL here. You can enter that data in AppMachine. \
This article explains you [how to create a privacy policy](/app-details/privacy-policy) if you don't have one yet.<br>

1. **Open this page and click the 'Get Started' button to start the app privacy questionnaire.**\
   &#x20;\
   You will then be shown the following screen:\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082653628/original/RukN47tVfBsVSTn8CNs9ldKqYX4zNzIvww.png?1646233214)\
   \
   **Select the option 'Yes, we collect data from this app'** and continue by clicking the **Next** button.<br>
2. On the next page, you will see this page where you need to **scroll down**\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303372/original/pKj-IkOLGax1GmiWNEEAx5urJT808r9TkQ.png?1653765567)
3. You're prompted by Apple to check the boxes for all data types that the app collects.\
   We'll go over these one by one:
   1. **Contact Info**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303398/original/3NkVT6raA8TaSXtToErcys-EF7ANU1v_og.png?1653765608)\
      \
      Whether or not you enable the checkboxes in this section depends on the functionality you've added to the app. For example, if your app contains a **Contact Form through which personal information is provided, then enable** the boxes for the information that the user can provide within the app.<br>
   2. **Health & Fitness**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303412/original/H7CxxxuzzWl1WeZWDN_1mrvoSklxs_XTpQ.png?1653765629)\
      \
      Links to this API are not supported within the AppMachine platform. However, if you've created a custom (Pro) block which uses these APIs, then enable the checkboxes that apply.<br>
   3. **Financial Info**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303435/original/Hpsw3EVthGl1mYZ5Lu496ekAwTbz5mZbYw.png?1653765679)\
      \
      The 'Payment Info' option in this section concerns payments which are handled through means other than a payment service.\
      For example, if your app contains a manual payment option, then the 'Payment Info' option has to be checked. If your app uses PayPal checkouts, then you do not have to check this box, because these payments are handled by PayPal without you ever seeing the users payment information.\
      \
      If your app collects any other type of financial information from its users, then check the appropriate box(es) accordingly.<br>
   4. **Location**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108747860/original/Rk9xgOvfnsftFDejCO0Kmmi5GC6YG8zamg.png?1653925394)\
      \
      You nee to enable the '**Precise Location**' in order to show the location of a user on a map within your app.<br>
   5. **Sensitive Info**\
      Enable this option if your app collects data such as racial or ethnic data, sexual orientation, pregnancy or childbirth information, disability, religious or philosophical beliefs, trade union membership, political opinion, genetic information, or biometric data.\
      You don't need to NOT enable this if you are using Basic or Plus AppMachine blocks.\
      \
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303608/original/ZbuN5t9NSz8uJMO7lHdU46JWANex-v5SqQ.png?1653766059)<br>
   6. **Contacts**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303624/original/pMx8ui3GB62xUj_NPyAe14hKpzy8GllNrA.png?1653766110)\
      \
      There is no module available in AppMachine that allows you to collect data via the device's contacts lists, so do NOT enable this.<br>
   7. **User Content**\
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108749563/original/A4EVhdKmK-Rt6RfleycvwDzQ9F5v9i1eXQ.png?1653925701)\
      \
      The 'Customer Support' option is present within every AppMachine app by default due to the 'I need support' email option on the App Information page. Therefore, the **Customer support option has to be enabled.** Other options are enabled depending on the content that has been added to the app.<br>
   8. **Browsing History**\
      There is no module available in AppMachine that allows you to collect data related to the users' browsing history.<br>
   9. **Search History**\
      There is no module available in AppMachine that allows you to collect data related to the users' search history.<br>
   10. **Identifiers**\
       ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303762/original/PYC9yXVpC82DZKkcWId0iGzVsXLPjXxVFQ.png?1653766349)\
       \
       **Enable both the User ID as well as the Device ID,** as they are both collected by AppMachine. These IDs are used to be able to send push notifications to the app.<br>
   11. **Purchases**\
       Enable this option if your app collects data related to a users' purchases or purchase tendencies.<br>
   12. **Usage Data**\
       ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108354133/original/meOaXOrgghwc3rea3ry2nSdjfnWuTsCYmg.png?1653833641)\
       \
       If you have enabled the Analytics tracking in your app, your app will collect analytical information via Firebase/Google Analytics and you have to enable **Product interaction**.\
       \
       **Therefore, the 'Product Interaction' option must be enabled.** Other options can be enabled if applicable through the app's custom content.<br>
   13. **Diagnostics**\
       ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108354151/original/r14aYnVub9wpeLhZeVcN3RyRIDHPKFjc3w.png?1653833677)\
       \
       All AppMachine apps collect various diagnostics data. **Enable All options in this section.**<br>
   14. **Other Data**\
       ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303842/original/5fRdgJdrhIq0L4zIAXB0pFMr0SQiwFNszQ.png?1653766539)\
       \
       Enable this option if you collect any other types of data through your app that has not been mentioned. This only applies if you have a PRO app and collect other data types not mentioned.\
       \
       ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108303992/original/0sbGabVSNMRq331bbxzY-lBrb9nt1mKEkA.png?1653766789)

5\.  Click **Save**

6\. Click **Ok in** this screen:&#x20;

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108304007/original/Zp01NZa7t1mTzXfq8A-3gTxE6NymBnM_9g.png?1653766819)

### C. Enter information per datatype

For each of the enabled options, you'll have to indicate how the collected data is used by you or your third-party partner(s), as displayed in the example screenshot below.<br>

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108304048/original/hVLd6q9NHfLEEuRwwTrnVjavPHTqG6nXrw.png?1653766848)

**7. Click on each Set Up tile and answer three questions for each tile.**

The app privacy options which are present in all AppMachine apps are listed in the table below. \
For each of the options, we've indicated how the collected data is used by AppMachine. ***Indications for any other options that you may have enabled due to the functionality used in your app, will have to be provided by yourself.***

You will need to go through steps A-C at least 8 times for the 8 topics which you have enabled in the step before.

\
A. How data is collected

| **Data Types**             | **Information Type** |
| -------------------------- | -------------------- |
| **Precise Location**       | App Functionality    |
| **Customer Support**       | App Functionality    |
| **User ID**                | App Functionality    |
| **Device ID**              | App Functionality    |
| **Product interaction**    | App Functionality    |
| **Crash Data**             | App Functionality    |
| **Performance Data**       | App Functionality    |
| **Other Diagnostics Data** | App Functionality    |

B. Is the collected data is linked to the user's identity. **This question can be answered with 'No' for each item.**<br>

C. Will the data be used for tracking purposes. **This question can be answered with 'No' for each item.**

\
The GIF below is an example of how you can set each one of the categories:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80109021523/original/aHPSzGW_z0r3Tw7zbUcqIOvaSlgZHdDm2Q.gif?1653996915)<br>

**7. >> Don't forget to hit the 'Publish' button to submit the app privacy settings in App Store Connect <<**\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112389028/original/Fu6sregc2DvMLglms3o9WckfA4e4h03cSw.png?1655069219)

8\. Again click  **Publish** in the app privacy response modal

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112389053/original/5AaoXdHrbKJSByXosbVOhl7ONoS9r4EoKw.png?1655069291)<br>

When you've provided the app privacy information for all of the data types that your app collects, your app can be updated with new store versions once again.

### D. Go back to AppMachine&#x20;

If you still see this wizard, the screen will refresh automatically and you should be able to see the app you just created in the list. Go to step 12.\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117046202/original/vuw0z0_EVYfbGPFVYiQqe2cb1sk_DbZ4Pw.png?1656363117)

\
9\. Open the AppMachine new **publish** dashboard\
\
10\. In the Apple App Store tile choose the option **Validate App Store Connect Connection**\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112389112/original/2Xu3rSL8xLkA8Y3_L7FYKHs6qImKTSzotA.png?1655069403)&#x20;

11\. Click **Link your app**\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112389125/original/WnuTdspg7wotTuvcIR22kGfejwBEuCV50Q.png?1655069440)

12\. Select the just created Apple App Store app\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117046222/original/5cGcULV3craYDbZ7iSdOpuTJLun6SghJnQ.png?1656363135)

If you run into any errors during the process, please contact <support@appmachine.com>. Providing screenshots of the error or flagged fields will be very helpful.<br>

**PLEASE NOTE*****:** When you add or remove content from your app which is defined within the app privacy settings, you will also have to update your app privacy settings in App Store Connect to reflect these changes.*


# Edit Store information

Before you can publish your app to the Apple App Store, you need to enter the information which is used to show your app in the Apple App store.&#x20;

This article describes one of the steps you have to take to get your app published in the Apple App Store. [Click here to see all of the steps.](/share-your-app/apple-app-store)

You can also watch this short video describing how to set up your Store information.

{% embed url="<https://youtu.be/YULope3HMsY>" %}

### **App Vitals**

In the **Publish** dashboard you use the **App Vitals** section in the bottom right corner to fill in your **App Name and Icon**.\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112368164/original/VeFpdqmH3J9Ae1tVODvQ4rMOtopbStNZcw.png?1655049363)

The splash image is the screen which is shown when your app is loading and is not required.&#x20;

### **Edit store info**

In the Publish dashboard you use the Apple App Store > **Edit Store Info** to describe your app in the app store.

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112368133/original/5lYGkz8aliKXG-olmrRReab_l3ZuuT7E7g.png?1655049345)

**Fill in all the information in this screen.**

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112368174/original/wxNF3jhvGudgk30nAdS3SrTygJ34VLTahw.png?1655049399)


# Fix App publish issues

During the second step of the Apple App Store Publishing process of you app AppMachine might run into a problem.\
This article gives you additional information how to solve issues if they might appear.

This article describes one of the steps you have to take to get your app  published in the Apple App Store. [Click here to see all of the steps.](/share-your-app/apple-app-store)\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112362424/original/j1ToAj2HLcj3i_vdVjXEmK9l-ZQmWljC1w.png?1655044990)<br>

**TABLE OF CONTENTS**

* [1. Failed to start iOS build](#1.-failed-to-start-ios-build)
* [2. App name you entered is already being used](#2.-app-name-you-entered-is-already-being-used)
* [3. You must have published answers to your app's data usages](#3.-you-must-have-published-answers-to-your-apps-data-usages)
* [4. Missing App Pricing in the app store](#4.-missing-app-pricing-in-the-app-store)

### **1. Failed to start iOS build** <a href="#id-1.-failed-to-start-ios-build" id="id-1.-failed-to-start-ios-build"></a>

If you see this error, please contact <support@appmachine.com> where you include the appname, appnumber and the email address of your account at AppMachine.

\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112363736/original/plWOfJgNO9nltqueqpLSNCuGAHlcwdoknA.png?1655045823)

### **2. App name you entered is already being used** <a href="#id-2.-app-name-you-entered-is-already-being-used" id="id-2.-app-name-you-entered-is-already-being-used"></a>

If you see this error, it means that your app name which you have entered in the App Vitals is already being used by another app in the Apple App Store.\
\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112361238/original/xJOjCyiB_ROvkvCMF7nl1iH--gNgeNBROA.png?1655044349)\
\
You should either change the App Name in your App vitals section or, if you are the owner of the name, you can submit a claim to the Apple App Store.

1. Check the **app name** you entered in the **App vitals** section in the bottom right corner of you Publish dashboard.
2. Check which **app name** you reserved at the **Apple App Store Connect** when you created the app [following the guidelines in this article.](/share-your-app/apple-app-store/new-app-record-in-app-store-connect)
   1. Login with your Apple developer account on <https://appstoreconnect.apple.com/>..
   2. Once logged in, open the My Apps section.
   3. Click on the correct app and open in the left side menu the option **App information > Name**.\
      in this case you might have a different name mentioned in the app store connect then in the App vitals section in AppMachine. In that case you should copy the name from the App Store Connect to AppMachine > App Vitals > App Name\
      \
      ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112363359/original/bCJoUFcSGXTZ2eK_gU14GK40NJBiXiALNA.png?1655045480)

3\. Copy the Name from the App Store connect to your **App Vitals** section and click **Save**.

### **3. You must have published answers to your app's data usages** <a href="#id-3.-you-must-have-published-answers-to-your-apps-data-usages" id="id-3.-you-must-have-published-answers-to-your-apps-data-usages"></a>

If you see this error during the Uploading of your app to the App Store, it means that you have not filled in all the required information regarding App Privacy in the App Store connect. Follow the steps below to fix the issue.&#x20;

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112360803/original/IEmOLz4v6ydfhnQgVduiFtmq7GSOhXGRFg.png?1655043953)

1. Login with your Apple developer account on <https://appstoreconnect.apple.com/>
2. Once logged in, open the **My Apps** section.\
   \
   *\* If you're a member of multiple developer teams, then make sure that you've switched to the correct developer team via the account menu in the top-right corner of the screen.*\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112360722/original/_XK0IZZHbnoVa1vLFyP-Ui2621E3HqINjA.jpeg?1655043864)<br>
3. Click on the correct app and open in the left side menu the option **App privacy**.<br>
4. See if you have entered all the required information. For all the datatypes you have selected, you need to make sure the answers are entered .\
   You can find the full explanation to fill in this information in this article: [App Privacy details Apple](/share-your-app/apple-app-store/app-privacy-details)\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112361034/original/L1DCcfxNPSekuvaFTJ1dcjtGgIsxa8tUWw.png?1655044159)\
   \
   *In this usecase you can see that  the Datatype Crash data still needs to be Setup.* \
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112361059/original/5p2fHlAq0nEGjwm2bcwbFM_LoCW0TPkHpA.png?1655044179)<br>
5. Go back to AppMachine and publish your app again with the blue Publish button int the top right corner of the publish dashboard.

### **4. Missing App Pricing in the app store** <a href="#id-4.-missing-app-pricing-in-the-app-store" id="id-4.-missing-app-pricing-in-the-app-store"></a>

**If you see this error, it means that you forgot to enter the App price while creating the App Record in the Apple App Store Connect.**

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80128107203/original/hEp_88IJ3YNVHbZHch7H_cHm_2QSV2JjhA.png?1659613097)

1. Login with your Apple developer account on <https://appstoreconnect.apple.com/>
2. Once logged in, open the **My Apps** section.\
   \
   *\* If you're a member of multiple developer teams, then make sure that you've switched to the correct developer team via the account menu in the top-right corner of the screen.*\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112360722/original/_XK0IZZHbnoVa1vLFyP-Ui2621E3HqINjA.jpeg?1655043864)
3. Click on the correct app and from the left-side menu, open the **Pricing and Availability page**.&#x20;
4. On this page you will be able to select a price tier for your app, as well as specify the countries or regions in which your app will become available once published. \
   We advice you to choose:\
   \* If you don't plan to sell your app in the Apple App Store choose **0,00(Free)**\
   **\*** choose "**all countries or regions selected"**\
   Use the Save button in the top-right corner of the screen to save your changes.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80123477185/original/0cGMwuFVdWqiYreVcWVyk0D6v9VCSs_0uQ.jpeg?1658236787)
5. Go back to AppMachine and publish your app again with the blue Publish button in the top right corner of the publish dashboard.


# Push certificates

Before you can send your first push message, you need to prepare your iOS app

* your app needs to be published successfully to the Apple App Store
* you need to add a Push Certificate to your app

\
This article explains you how to create and upload Apple push certificates. This can be done after your app is published to the Apple App Store.

1. Open the **Publish dashboard**
2. Click on the **V** next to **Edit Store Info** to open the dropdown and Select **View push certificates**\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111026125/original/gkm3tLI0_yqMJi3a1uH5rwFJ6SxjzBkELQ.png?1654630962)<br>
3. Click **Add new** in the top right corner top open this wizard:\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80113262259/original/JhF84w1BXOLWXej2VxhNEbZ5N0g_u3ZKrQ.png?1655240966)<br>
4. Click the button to **Download your Apple push certificate signing request** file
5. Remember the name of the Bundle Identifier in the grey box on this screen.
6. Click the **button at Step 2**.\
   This will open your developers account at Apple at the Identifiers screen. You might need to login before seeing that screen.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111026613/original/_ByYu9sHe7CJnxJogV8kF6cBkRLtla2Zdg.png?1654631371)<br>
7. **Search** for the row where the identifier matches the Bundle identifier name shown in the wizard  in AppMachine mentioned in step 5. Click on that row.<br>
8. Scroll down in the page Edit your app configuration till you see **Push notifications** and click the **Configure** button on that row\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111015766/original/EnhX3Albn5yc0_vHlCttQy9S05oGAFaHpg.png?1654625264)\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111015863/original/0SPlMWWWOiiy8pxTh5zsxjEo3cc9m85kxw.png?1654625280)<br>
9. Click on the **Create Certificate** button in the Production SSL certificate area\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111015890/original/2W1TbML2lsElNHdDmb3GVaJNxVegeckolw.png?1654625293)<br>
10. Click the **Choose File** button at the bottom\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111015936/original/J_0_BnlF1yLW5LSNYjEbhK1YwY4DMRsILg.png?1654625311)<br>
11. **Upload** the cert.SigningRequest file which you just downloaded from AppMachine in your Downloads folder\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111015979/original/lxTqfpC8QOyhowLHULokcBo4ikHVZFsAJA.png?1654625334)<br>
12. Click **Continue**&#x20;
13. Click **Download**\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111016026/original/XNZoseeMrY7bdX32D4osCZaO99b7ZPrkLw.png?1654625370)<br>
14. Activate the tab with AppMachine and click **Continue**
15. Click **Select File** and select the aps.cer file which you just download from Apple\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111016188/original/9rnDCXCVHSWzleh7CGBZhxapDBMMwHoQmA.png?1654625432)<br>
16. Click **Upload**\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111016229/original/UVqeO0aPuERK9R-nnOa-SLl9gKWxPG6vvw.png?1654625458)<br>
17. Congratulations, you just configured your Apple app to receive push messages.\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111016486/original/v-BQiyOAngDa027LXshg9T10JigvWUEmpw.png?1654625574)<br>
18. Select **Push message** in the left side navigation to start sending your first Push message.\
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111028435/original/3e3NNW-y9O4NmysQ18sovhz7F_WpnbC54A.png?1654632502)


# App Store Connect app status overview

This article shows you how to check on the status of an app in the Apple App Store. Is it possible for you, as Developer, to log in and check the status? Yes, you can, but it might not be necessary. Whenever the status changes, the Developer of the app will be notified via email.<br>

Here is an overview of the status an app can have within App Store Connect:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111205093/original/ki9KZLiAUzd8sMKSRknCTbv21CEMgT8yPg.png?1654682415)

A change in status will be accompanied by a comment if needed. For instance when an app is rejected, then the reason why will be added.&#x20;


# App Store Review Guidelines

Short intro in the App Store review guidelines

Yes, Apple will review your app and take a real close look at your app. Yes, it is true, your app can be rejected.

In many ways, an app from AppMachine will keep you from doing the wrong things. There are a lot of requirements in Apple's Guidelines that are automatically filled in by AppMachine. So you can't go wrong there. But there are still things that you, as an app maker, can do wrong. So be prepared and read the following, because it can save you annoyances.\
\
Below is a long list of things that Apple thinks are important to make sure the apps in their app store are informative, useful and a useful for a larger group of users.  Scroll through them, you will probably agree with Apple on these guidelines, it's all about being nice, decent and honest. Who doesn't want that?&#x20;

### Apple App Store guidelines

As a Developer, you can access these Guidelines directly in [App Store Connect](https://appstoreconnect.apple.com/). As Apple emphasizes, this is a 'living document'. So for the latest version of the Guidelines, check out the original in iTunes Connect.

Here are some basics that you have to keep in mind:

* **Use your common sense**. Yes, there can be sex in an app, but Apple wants to protect kids that install apps, so you know there are limits (so no porn). No, don't try to cheat the system (quote: "for example, by trying to trick the review process, steal data from users, copy another developer's work, or manipulate the ratings"). Your apps can be removed from the store and you can even be expelled from the developer program.
* Your app **should add something** to the App Store. Don't try to be a copycat, your app will be rejected.&#x20;
* Apple has **standards of aesthetics** - if your app doesn't live up to these standards, it will be rejected. So your app has to look good.

### Functionality

On to the functionality of the app. What can it do and what isn't allowed?

* First, you must **be honest** about what your app can do; quote: "Apps that do not perform as advertised by the developer will be rejected."
* Then, the app must be **complete**: "Apps that are "beta", "demo", "trial", or "test" versions will be rejected."
* As mentioned before, your app should **add** something to the Store. Don't submit something that's already there: "particularly if there are many of them, such as fart, burp, flashlight, and Kama Sutra Apps."
* Your app must be **useful**: "Apps that \[..] are simply web sites bundled as Apps, or do not provide any lasting entertainment value may be rejected."
* Your app should be intended for a **bigger set of users**. An app can be rejected because it is "only intended for a very limited, or niche, set of users - the App Store is not the correct forum for personal apps, portfolio and photo galleries. (..) The App Store was designed for a broad consumer market so apps that appeal to only a small portion of that market affect the overall App Store experience for the broader market. However, your app is appropriate for only a select, or niche, group of users. While it may be useful or provide value to that group, it is too specific to be appropriate for the App Store."
* Your app **can't be just for marketing purposes**: "Apps that are primarily marketing materials or advertisements will be rejected."
* Apps **can't encourage unhealthy lifestyles**: "Apps that encourage excessive consumption of alcohol or illegal substances, or encourage minors to consume alcohol or smoke cigarettes, will be rejected."
* **Don't spam**: "Developers "spamming" the App Store with many versions of similar Apps will be removed from the iOS Developer Program."
* **Don't make an app around one movie, song, or book**: "Apps that are simply a song or movie should be submitted to the iTunes store. Apps that are simply a book should be submitted to the iBookstore."
* **Don't mention other apps:** "Apps that display Apps other than your own for purchase or promotion in a manner similar to or confusing with the App Store will be rejected."

### Metadata (data and information about the app)

* Don't **mention another mobile platform** in the app like the name "Google Play Store" or "Android", or in information regarding the app.
* Your app should be **complete**, and so should be the metadata: "Apps with placeholder text will be rejected."
* The description of the app should be **relevant**: "Apps with descriptions not relevant to the application content and functionality will be rejected."
* App **icons** and **screenshots** should adhere to the 4+ age rating.
* Upload **screenshots** made from an iphone device, not from a Android phone.
* **Category** and **Genre** selections should be appropriate for the App content.
* **Ratings** and **keywords** should be appropriate.
* **Don't try to cheat the system**, like the user reviews or the chart ranking. You can be removed from the iOS Developer Program.
* All **URLs** in the app should work, "such as support and privacy policy URLs".

### Push notifications

Don't abuse Push Notifications; "Apps that use Push Notifications to send **unsolicited** messages, or for the purpose of **phishing** or **spamming** will be rejected."

### Trademarks and trade dress

* Be sure you **spell** Apple product names in your app correctly ('iPhone' instead of 'Iphone', 'iTunes' instead of 'iTunz'). Your app will otherwise be rejected.<br>
* Don't use **protected third party material** such as trademarks, copyrights or patents, or violate 3rd party terms of use. If you do, Apple can request the authorization to use such material.

### User interface

The interface of your app should be "**very good**": "If your user interface is complex or less than very good, it may be rejected."

### Purchasing and currencies

You can not sell any **digital products** from within your app. The app can not even link to a website for purchases or subscriptions. Apps with a, quote: " "buy" button that goes to a web site to purchase a digital book, will be rejected."

### Scraping and aggregation

* Apps may not **scrape** information from Apple sites "(for example from apple.com, iTunes Store, App Store, iTunes Connect, Apple Developer Programs, etc).".
* An app should have it's **own functionality and information**: "Apps that are simply web clippings, content aggregators, or a collection of links, may be rejected."

### Personal attacks

* **Be polite**: "Any App that is defamatory, offensive, mean-spirited, or likely to place the targeted individual or group in harms way will be rejected."
* Unless its your **profession** to comment society: "Professional political satirists and humorists are exempt from the ban on offensive or mean-spirited commentary."

### Violence

* **Be careful with violence**: "Apps portraying realistic images of people or animals being killed or maimed, shot, stabbed, tortured or injured will be rejected."
* "Apps that depict violence or abuse of **children** will be rejected"

### Objectionable content

* **Be nice**: "Apps that present excessively objectionable or crude content will be rejected"
* "Apps that are primarily designed to **upset** or **disgust** users will be rejected.&#x20;

### Pornography

* Apps can not contain **pornographic material**, as is defined by Webster's Dictionary: "explicit descriptions or displays of sexual organs or activities intended to stimulate erotic rather than aesthetic or emotional feelings".
* **Users** should refrain from pornographic material too: "Apps that contain user generated content that is frequently pornographic (ex "Chat Roulette" Apps) will be rejected."

### Religion, culture, and ethnicity

* Be nice about **religions** too: "Apps containing references or commentary about a religious, cultural or ethnic group that are defamatory, offensive, mean-spirited or likely to expose the targeted group to harm or violence will be rejected."
* **Religious text** should be accurate and not misleading, and commentary "should be educational or informative rather than inflammatory."

### Legal requirements

* It might be obvious, but your app should **stick to the law**: "It is the developer's obligation to understand and conform to all local laws."
* Your app should **not pretend to be what it is not**: "Apps that contain false, fraudulent or misleading representations or use names or icons similar to other Apps will be rejected."
* Apps should **not incite illegal behaviour**: "Apps that solicit, promote, or encourage criminal or clearly reckless behavior will be rejected, Apps that enable illegal file sharing will be rejected, Apps that are designed for use as illegal gambling aids, including card counters, will be rejected"

### Summary

So yes, it's a long list, but they all make sense. It's important for you to make sure you are compliant to these guidelines. It would be a shame if you spend a lot of time in building your app to have Apple reject your app because one of these rules.&#x20;


# Publish app Unlisted

Apple also offers **unlisted app distribution**. You can read all about this in this article from Apple:\
<https://developer.apple.com/support/unlisted-app-distribution>

Pre-requisites for unlisted app distribution:

* Your app must either already have a **live version** the public App Store, **or** be ready for final distribution and **submitted into review with Apple**.
* You must **add a note** **in your app's** **Review Notes** that the app is **intended for unlisted distribution**.

### Submit app in AppMachine

You can submit your app via AppMachine like this:

1. Click the **Publish** button in the top right corner of the Publish dashboard.
2. Before your app gets published, AppMachine **validates** if all required information is entered and will notify your if some information is missing. [Read more...](/share-your-app/apple-app-store/fix-app-publish-issues)
3. You need to enter the **What's new** information, which is required by Apple for each release, except for your first release.\
   ![](/files/In1ksin0DSzv3MPHcVzk)
4. Disable the switch **Automatically release this version** and click **Next**.
5. Choose **Manually release this version**&#x20;
6. Click **Publish now**

If your app is live or in review, you can [submit this form](https://developer.apple.com/contact/request/unlisted-app/) at Apple to request unlisted app distribution.

If your request is approved, your app's distribution method will change to 'Unlisted App' and will automatically apply to any future versions of the app. A link will be generated with which users can download your app. If your app is already available on the App Store, then the current download link will remain the same.

Apps distributed through **Apple Business Manager** are **not eligible for unlisted distribution**. Changing the distribution method of Apple Business Manager apps over to unlisted distribution involves re-submitting the app to the Public App Store as a completely new app, before being able to put in the request for unlisted distribution with Apple.

<br>


# Accept updated License agreement

Apple updates their Apple Developer program license agreement periodically.\
You will receive emails from Apple to remind you to agree with the new agreement. If you don't do that, your Apple Publish can fail.

\
During the publishing AppMachine will let you know that your agreement needs to be reviewed.

In AppMachine, the error you receive will look like this:

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115061187/original/50Eo8DqLubcXfK0fImCvYyZKoUblo2KUMw.png?1655803064)

Go to the your Apple Developer Account and review the agreement.&#x20;

![](/files/2ObibVkpyc4obQ5TVBc5)

Confirm that you've read the updated agreement by **checking the checkbox** and **click on "I Agree."**

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115105895/original/h9zXPbdbDr1_qpGZJQI9kzxbsCOvisqaBw.png?1655807611)


# Apple App Store FAQ

All the frequently asked questions about the Apple App Store configuration

### How do I configure in which countries my app is available?

You can define in which countries and regions your app is available.

For iOS you can check the availability for live apps by following the steps from this article: <https://help.apple.com/app-store-connect/#/devcdda55918>&#x20;

You can select the regions where you want your app to be available on the App Store. By default, all countries or regions are selected, but you can deselect regions where you don’t want your app for sale. Your app will appear on the App Store in the updated or changed countries or regions within 24 hours.

**Required role:** Account Holder, Admin, or App Manager. See Role permissions.

1. From My Apps, select your app. The page opens with the App Store tab selected.
2. In the sidebar, click Pricing and Availability.

   You must set a price for your app before you can edit countries or regions.
3. Under Availability, click Edit.

   <figure><img src="https://help.apple.com/app-store-connect/en.lproj/GlobalArt/my_apps_edit_territories.png" alt=""><figcaption></figcaption></figure>
4. In the dialog that appears, select the countries or regions you want to make your app available in.
   * *Select all countries or regions:* Select All.
   * *Select specific countries or regions:* Select the checkbox next to the countries or regions you want to include and deselect the checkbox next to the countries or regions you want to exclude.
   * *Add new App Store countries or regions automatically:* In the upper-left corner, select the New Countries or Regions checkbox.

     <figure><img src="https://help.apple.com/app-store-connect/en.lproj/GlobalArt/my_apps_edit_territories_2.png" alt=""><figcaption></figcaption></figure>
5. Click **Done** at the bottom of the dialog, then click **Save** in the upper-right corner.

### How do I create **my** own App Bundle Identifier (not recommended)?

In the iOS Setup wizard, AppMachine can create an App Bundle Identifier for you. **We strongly advise you  to use that option and NOT use the steps described in this article.**

*The App Bundle Identifier is not shown to customers at all, so it shouldn't matter that we autogenerate the App Bundle ID in this format: com.app.a1234ab*\
*Basically, it makes little difference what the Bundle ID format is and creating your own unnecessarily delays the app submission process.* <br>

We advise you to click on the button **Create new app bundle identifier** in the screen below

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80108753547/original/LAVUms2ZaLSYRu0ZUFpKbQhar3DxoF5hpQ.png?1653926342" alt="Link your app in apple app store"><figcaption></figcaption></figure>

**\[To do: update image of Flutter publishing process | link your app screen]**

\
This article explains what to do if you want your own naming convention for your App Bundle ID.

After you have created custom bundle ID, you will need to use this App Bundle ID while [Creating a new app record in App Store Connect](/share-your-app/apple-app-store/new-app-record-in-app-store-connect).

1. Login with your Apple Developer account on <https://developer.apple.com/account/>.
2. Once logged in, navigate to the following page: <https://developer.apple.com/account/resources/identifiers/list>.\
   \
   *\* Alternatively, you can open the **Certificates, Identifiers & Profiles** page from the left-side menu, and then open the **Identifiers** page.*
3. Click the blue '+' button to create a new identifier for your app.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80104506277/original/Nm4burr_AjMgeXHfMZ_bT3tVbQ3ZzkyOwg.png?1652705316" alt=""><figcaption></figcaption></figure>
4. Select the option '**App IDs**' and click the **Continue** button to proceed to the next page.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80104507340/original/3rpZh3ZXbPlszo4bQysHtWEmCJCJ_tENKg.png?1652705423" alt=""><figcaption></figcaption></figure>
5. Select the app "type" for your identifier and click **Continue** to proceed.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80104509528/original/BTDCUi8QkUycqAbRJKGqVPgIAj7Vn1rMgA.png?1652705643" alt=""><figcaption></figcaption></figure>
6. On the next page, make sure the 'Explicit' bundle ID option is selected and enter the following values for your app identifier:\
   \
   \- **Description**\
   This is used as a reference to be able to identify your App ID within the Apple Developer Portal environment. Common practise is to use the app's name for this, without any special characters. The description is not visible to your app users.\
   \
   **- Bundle ID**\
   The bundle ID is the technical identifier of your app. Although this identifier is not directly visible to any of your app users, the bundle ID is used as a technical reference in Apple's backend systems. Common practise is to use a reverse-domain name style notation for this. (**example:** com.yourcompanyname.yourappname)\
   \
   Scroll down the page and enable the '**Push Notifications**' option before using the Continue button to proceed.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80104521968/original/oQSZp02kDKwnrPfSzHPENupdFuPYOteIXg.png?1652706858" alt=""><figcaption></figcaption></figure>
7. After clicking the **Continue** button you will be able to look over your App ID settings once more to make sure everything is entered correctly before using the '**Register**' button to complete the App ID registration.<br>


# iPad

This page contains information about the requirements and steps on how to publish your AppMachine app with iPad support.

Apps created via AppMachine do not offer native iPad support  by default. Luckily, enabling this for your app is a very simple process. All you have to do is navigate to the Publish page of your app in AppMachine, and open the store information page of your iOS app via the Edit Store Info button.

<figure><img src="/files/CaPCYHQE5kbwSsYHBMoo" alt=""><figcaption><p>Publish Page - Edit Store Info</p></figcaption></figure>

On the Store Info page, you'll find a section named 'iPad'. Expanding this section will reveal a button through which iPad support can be enabled.

**Note:** It is not possible to disable iPad support after you've enabled it. This measure is to ensure that an app is not attempted to be updated with a version that support less device types than the currently published app version, which is not allowed by Apple.

<figure><img src="/files/YUqdbNERFfDzp4PwdAwZ" alt=""><figcaption><p>Store Info - Enable iPad</p></figcaption></figure>

After enabling iPad support for your app you'll have to upload a total of four iPad screenshots for your app before being able to start the publishing process. You'll be able to upload the iPad screenshots in the Screenshots section of the Store Info page.

After uploading the required screenshots, you'll be able to start the publishing process via the Publish button in AppMachine. The process itself is exactly the same as you're used to, aside from the fact that your app will now be published with support for an additional device type: iPad.


# Enterprise

This section contains information about publishing your iOS app privately, outside of the public App Store, by using an Enterprise developer license.

### What is an Enterprise app?

Enterprise app development and publishing allows large organisations to develop and deploy proprietary, internal-use apps to their employees. Enterprise apps are used for specific use cases that require private distribution directly to employees using secure internal systems or through a Mobile Device Management solution.

Enterprise apps are published outside of the App Store. Although this means that enterprise apps do not have to comply with the Apple App Store Review Guidelines and can be used instantly, it also means that enterprise apps are unmanaged by the App Store. As a result, enterprise apps:

* Have to be updated with a new runtime version manually.
* Become non-functional when the certificates used to build a runtime version expire.

Keeping your app and its certificates up to date is therefor just as important as informing your app users to update their apps to the latest runtime version.&#x20;

### How to publish an Enterprise app with AppMachine?

Publishing an Enterprise app with AppMachine is done via the following steps:

* [Creating and/or uploading an iOS Distribution Certificate.](/share-your-app/apple-app-store/enterprise/create-ios-distribution-certificate)
* [Creating an App ID.](/share-your-app/apple-app-store/enterprise/create-app-id)
* [Creating a Mobile Provisioning Profile.](/share-your-app/apple-app-store/enterprise/create-mobile-provisioning-profile)
* [Setting up and publishing your Enterprise app.](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app)
* [Downloading, installing, and using your Enterprise app.](/share-your-app/apple-app-store/enterprise/downloading-and-installing-an-enterprise-app)<br>


# Setup your Enterprise app

This article describes the setup flow of your iOS Enterprise app in AppMachine.

1. Navigate to the **Publish page** of your app in AppMachine and **click on Setup App Store**.<br>

   <figure><img src="/files/SSeYxkIKQ8jnpJSbp1ch" alt=""><figcaption><p>AppMachine publish page</p></figcaption></figure>
2. Select the **Enterprise** option and **click Next**.<br>

   <figure><img src="/files/lsoYCgqSJGwHSapaUooX" alt=""><figcaption><p>Target audience platform</p></figcaption></figure>
3. In the next step, either **upload** **or create** **an** **iOS Distribution Certificate** and **click Next** to continue.\
   \
   *Follow the steps in* [*this article if you want to create a new iOS Distribution Certificate*](/share-your-app/apple-app-store/enterprise/create-ios-distribution-certificate#how-to-create-a-new-ios-distribution-certificate)*.*\
   *Follow the steps in* [*this article if you want to upload an existing iOS Distribution Certificate*](https://docs.appmachine.com/share-your-app/apple-app-store/enterprise/pages/d1lRST6pKyj8CVJfn3oi#how-to-export-an-ios-distribution-certificate-as-a-.p12-file)*.*<br>

   <figure><img src="/files/6P18eGRaqMdkVXltI9Bm" alt=""><figcaption><p>Upload iOS Distribution Certificate</p></figcaption></figure>
4. Next you'll have to **upload your apps Mobile Provisioning Profile**.\
   \
   *Follow the steps in* [*this article to create a Mobile Provisioning Profile*](/share-your-app/apple-app-store/enterprise/create-mobile-provisioning-profile)*.*<br>

   <figure><img src="/files/dGkp4BmJvoqExyBHzZg0" alt=""><figcaption><p>Upload Mobile Provisioning Profile</p></figcaption></figure>
5. Finally, **click Finish** to complete the setup of your Enterprise app.\
   \
   You can now use the Publish button in AppMachine to publish your Enterprise app.


# Create iOS Distribution Certificate

This article explains how to create an iOS Distribution Certificate on an Apple Developer Enterprise License, and how to export an iOS Distribution Certificate as a .p12 file.

This article explains:

* [How to create an iOS Distribution Certificate.](#how-to-create-an-ios-distribution-certificate)
* [How to export an iOS Distribution Certificate as a .p12 file.](#how-to-export-an-ios-distribution-certificate-as-a-.p12-file)

### How to create a new iOS Distribution Certificate

1. Navigate to <https://developer.apple.com/account> and **login with your Apple Developer account**.<br>
2. **Open the Certificates section** and click the blue **+ button** at the top of the page to **create a new certificate**.<br>

   <figure><img src="/files/PPUXACZm4K4EvRJJZgoP" alt=""><figcaption><p>Apple Developer Portal - Certificates</p></figcaption></figure>
3. **Select** the option **In-House and Ad Hoc** and click Continue.<br>

   <figure><img src="/files/FsljMtqaOZj6wxd8sVix" alt=""><figcaption><p>Apple Developer Portal - Create new certificate</p></figcaption></figure>
4. **Upload** the **Certificate Signing Request** file and click Continue.\
   \
   ***Note:** You can obtain the Certificate Signing Request (.csr) file from AppMachine by following steps 1-3 in* [*this article*](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app)*. At step 3, choose the option to create a new certificate.*<br>

   <figure><img src="/files/Juw1fZHJPhxaERyhiAnu" alt=""><figcaption><p>Apple Developer Portal - Upload .csr file</p></figcaption></figure>
5. **Download** the Certificate (.cer) file from the Apple Developer Portal. \
   \
   ***Note:** If you're a MacOS user then you can double click the certificate file to add the certificate and its private key (.csr file) to Keychain Access, from which you can export both files as a single .p12 certificate for re-use.* [*Learn more..*](#how-to-export-an-ios-distribution-certificate-as-a-.p12-file)<br>

   <figure><img src="/files/kERQLlBqZ47bn1GQ2ouC" alt=""><figcaption><p>Apple Developer Portal - Download .cer file</p></figcaption></figure>
6. After downloading the certificate (.cer) file, you can [**follow the steps in this article to link the iOS Distribution Certificate to your AppMachine app**](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app).

### How to export an iOS Distribution Certificate as a .p12 file

The following steps assume that you are in possession of the iOS Distribution Certificate and its private key, and that you're using a MacOS system with the Keychain Access app installed and accessible.

1. **Open Keychain Access** on your MacOS machine.
2. **Locate the certificate** you wish to export as a .p12 file.\
   \
   ***Note:** The default location for certificates is the My Certificates tab of the Login keychain.*<br>
3. **Select both the certificate and its private key**, which is nested under the certificate, then **right-click** on your selection and click on **Export 2 items**.\
   \
   ***Note:** Your certificate cannot be used by others without the private key. If the private key is not available in Keychain Access, then it is likely not on your machine at all. In that case you can either contact people in your organisation to obtain the private key, or create a new distribution certificate instead.*<br>

   <figure><img src="/files/BVkJe9j48x3luse9tbwp" alt=""><figcaption><p>Keychain Access - Export Distribution Certificate</p></figcaption></figure>
4. **Enter a name** for the file and **click Save**. The exported items will be saved as a single Personal Information Exchange (.p12) file. <br>
5. After saving the file you will be prompted to **enter a password** for the file. Store the file and its password in a safe place.<br>
6. Now that you've exported the iOS Distribution Certificate and its private key as a .p12 file, you can [**follow the steps in this article to link the exported iOS Distribution Certificate (.p12) to your AppMachine app**](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app).


# Create App ID

This article explains how to create an App ID for an Enterprise app on an Apple Developer Enterprise License.

### How to create an App ID for your Enterprise app

1. Navigate to <https://developer.apple.com/account> and **login with your Apple developer account**.<br>
2. Open the **Identifiers page** and use the blue + button to **create a new App ID**.<br>

   <figure><img src="/files/iLuSNufwPKJXQ1J8BVGP" alt=""><figcaption><p>Apple Developer Portal - Identifiers</p></figcaption></figure>
3. **Select** the **App IDs** option and click **Continue**.<br>

   <figure><img src="/files/5Nl2FLoCxJNvxTyaC8E7" alt=""><figcaption><p>Apple Developer Portal - Register new identifier</p></figcaption></figure>
4. **Enter a Description** for your App ID. \
   \
   ***Note:** The description is purely for your own reference and is not used outside of the Apple Developer Portal.*<br>
5. **Enter the Explicit Bundle ID** of your app.\
   \
   ***Note:** You can obtain the Bundle ID from AppMachine by following steps 1-4 in* [*this article*](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app)*.* <br>

   <figure><img src="/files/1YXUUEiouBRdZ3mIavVM" alt=""><figcaption><p>Apple Developer Portal - Register App ID</p></figcaption></figure>
6. Scroll down the list of capabilities and **enable Push Notifications**. \
   \
   ***Note:** Do not add any other capabilities. Capabilities need to be supported by the app's software. Enabling unsupported capabilities may cause issues during or after your app is published.*<br>

   <figure><img src="/files/QM0NYq0ft62RsphKSMBK" alt=""><figcaption><p>Apple Developer Portal - Enable Push Notifications capability</p></figcaption></figure>
7. Click **Continue** to proceed with your App ID registration.<br>
8. On the next page click **Continue** and proceed without providing Deployment Details.<br>

   <figure><img src="/files/798BfbG615sVCFGU4kzX" alt=""><figcaption><p>Apple Developer Portal - Deployment Details</p></figcaption></figure>
9. Check the settings of your App ID once more before finishing the process by clicking **Register**.<br>

   <figure><img src="/files/0bL29hVojZBGAIxJiIzh" alt=""><figcaption><p>Apple Developer Portal - Confirm App ID registration</p></figcaption></figure>


# Create Mobile Provisioning Profile

This article explains how to create a Provisioning Profile for an Enterprise app on an Apple Developer Enterprise License.

The Mobile Provisioning Profile is the 'glue' that combines the app's technical registration (App ID) with your Apple developer account signature (iOS Distribution Certificate).

Pre-requisites:

* iOS Distribution Certificate. [Read more..](/share-your-app/apple-app-store/enterprise/create-ios-distribution-certificate)
* App ID. [Read more..](/share-your-app/apple-app-store/enterprise/create-app-id)

### How to create a Mobile Provisioning Profile

1. Navigate to <https://developer.apple.com/account> and **login with your Apple developer account**.<br>
2. Open the **Profiles page** and use the blue + button to **create a new Mobile Provisioning Profile**.<br>

   <figure><img src="/files/Dpy6LV7wckyaGVFtIa9n" alt=""><figcaption><p>Apple Developer Portal - Profiles list</p></figcaption></figure>
3. **Select** the option **In House** and click **Continue**.<br>

   <figure><img src="/files/a3nbqSecNY9RQhW8R3mW" alt=""><figcaption><p>Apple Developer Portal - Create new Provisioning Profile</p></figcaption></figure>
4. **Select** the **App ID** of your app and click **Continue**.\
   \
   ***Note:** You can follow the steps in* [*this article*](/share-your-app/apple-app-store/enterprise/create-app-id) *to create an App ID for your Enterprise app.*\ <br>

   <figure><img src="/files/vVhtOO22BGIARIzME6rx" alt=""><figcaption><p>Apple Developer Portal - Select App ID</p></figcaption></figure>
5. **Select** the **iOS Distribution Certificate** that you've created and uploaded in AppMachine, and click **Continue**.\
   \
   ***Note:** You can find the expiration date of your iOS Distribution Certificate on the Certificates and API Keys page in AppMachine. If you haven't created an iOS Distribution Certificate yet, follow the steps in* [*this article*](/share-your-app/apple-app-store/enterprise/create-ios-distribution-certificate)*.*<br>

   <figure><img src="/files/XLkQHtPSCz3wmnqI8N1Y" alt=""><figcaption><p>Apple Developer Portal - Select iOS Distribution Certificate</p></figcaption></figure>
6. **Enter a name** for the Provisioning Profile and click **Generate**.\
   \
   ***Note:** The Provisioning Profile Name is purely for your own reference and is not used outside of the Apple Developer Portal.*<br>

   <figure><img src="/files/w5UoSRejWmuCpKdSKtUQ" alt=""><figcaption><p>Apple Developer Portal - Enter Provisioning Profile Name</p></figcaption></figure>
7. **Download the Mobile Provisioning Profile** and follow the steps in [this article](/share-your-app/apple-app-store/enterprise/setup-your-enterprise-app) to link the profile to your app in AppMachine.\ <br>

   <figure><img src="/files/wqhxCB1kwQb4IcPncJnw" alt=""><figcaption><p>Apple Developer Portal - Download Mobile Provisioning Profile</p></figcaption></figure>


# Downloading and installing an Enterprise app

This article explains how and where to download and install an AppMachine-published Enterprise app.

When you've correctly setup your Enterprise app and have published it via the AppMachine publishing process, you will be able to download your Enterprise app in two ways:

1. Download the signed .ipa file of your app from the publish page in AppMachine and distribute the .ipa file yourself. E.g. by hosting it on your own domain, or using an MDM solution. <br>
2. Download and install the app directly from the app site of your app. Enabling your app's app site can be done via the Settings page of your app in AppMachine.


# Google Play

This article provides an overview of the steps you need to take to publish your app in the Google Play Store.

This article provides an overview of the steps you need to take to publish your app in the Google Play Store.<br>

**TABLE OF CONTENTS**

* [Setup Google Play Store in AppMachine](#setup-google-play-store-in-appmachine)
* [When you are ready to publish your app](#when-you-are-ready-to-publish-your-app)
* [Steps to upload](#steps-to-upload)

Based on the content of your app, AppMachine will create an AAB file for you. You will need to upload the app yourself to the Google Play Store, as Google doesn't have an API available for us to upload your app automatically. &#x20;

**PLEASE NOTE***: This means that the AppMachine Publish is not able to show you the correct Status of your Android app, for example if it is in review, approved or rejected. Google Play will send you emails to update you of that status.*&#x20;

*This is different from the Apple App Store integration which AppMachine offers where your app is automatically sent to the App Store Connect portal.*

### **Technical Setup Google Play Store in AppMachine:** <a href="#setup-google-play-store-in-appmachine" id="setup-google-play-store-in-appmachine"></a>

You can already take these steps if your app isn't completely finished yet.

1. In the AppMachine Publish screen you can choose Google Play Store > Setup Play store\
   \
   \
   This wizard will guide you how to set up **Firebase** keys, required for publishing, analytics, user authentication, data storage and more. [Read more..](/share-your-app/google-play/setup-your-android-app)<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80110276631/original/VJ_cnkFWOsCkNn4ZtxXwTbDZLXwU5Aeaog.png?1654441662" alt=""><figcaption></figcaption></figure>
2. Create a **Google developer account**, this costs $25 per year. It will take Google a few days to review your account, so don't this wait with this step till the end. [Read more..](/share-your-app/google-play/create-google-merchant-account)
3. If your app shows a map, for example in an events block, Contact block or if you have added a Map to a screen yourself  you need to create **Google Maps** Api keys.  [Read more..](/share-your-app/google-play/how-to-request-a-google-maps-api-key)
4. If you want to track your customer's activities in your app, you need to enable this at\
   Manage > Settings > Firebase analytics. Don't forget to enable Google analytics when you create [your Firebase keys.](/share-your-app/google-play/setup-your-android-app)
5. If your have **user registration via Facebook enabled** you will need to create your own **Facebook keys.** \
   While logging in, your customers will see the name of your Facebook app. [Read more..](https://support.appmachine.com/a/solutions/articles/80000978442)
6. If you have a **Twitter block,** you will need to add Twitter API keys to retrieve data for your Twitter block. [Read more..](https://support.appmachine.com/support/solutions/articles/80001026222-v2-twitter-api-keys)
7. Google Play > Edit Store info to see if the **Default language** is set correct

### **When you are ready to publish your app:**  <a href="#when-you-are-ready-to-publish-your-app" id="when-you-are-ready-to-publish-your-app"></a>

1. Do a last **check** if the content of your app is correct.
2. Click the **Publish** button in the top right corner of the Publish dashboard.
3. This wizard will take you through the creation of your AAB and APK file. This takes between 1 and 3 hours. You can close the wizard during that time and come back later.\
   \
   In the publish dashboard you can click View Publish progress in the Google Play tile to open the wizard again.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80113619959/original/_NQjKzmpcfTqYVnrEkb5GZtfjv7k41itng.png?1655306791" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111031968/original/ksWaI2e697VXmsko1_EuJFt4bgsE9eTJyw.png?1654635489" alt=""><figcaption></figcaption></figure>
4. &#x20;After the publishing process is finished, you can **Download** the files from the Publish Dashboard.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112388153/original/iKyyqpiivta50DzDvJVJU65cygg_4ilu8A.png?1655067717" alt=""><figcaption></figcaption></figure>
5. If you want to upload your app to the Google Play Store, download the AAB file\
   if you want to test your app on your own Android device, [read this article.](/share-your-app/google-play/test-your-android-app-before-publishing-to-google-play)\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114925968/original/Vl8l5hFFh2WvwKZcmYW4LWxSCCjw1nhvgQ.png?1655762483" alt=""><figcaption></figcaption></figure>

### **Steps to upload**  <a href="#steps-to-upload" id="steps-to-upload"></a>

1. **Upload** the AAB file at Google for the first time   [Read more..](/share-your-app/google-play/upload-your-android-app-to-google-play-store-for-the-first-time)\
   OR **upload an update** to Google [Read more...](/share-your-app/google-play/update-an-android-app-to-the-google-play-store)

## Update your App

To update your app, please follow the instructions available here: [Update your app](/share-your-app/publishing-your-app/update-your-app)


# Create a Google Developer Account

This article describes how to create a Google Developer Account which you will need to be able to upload your own app to the Google Play Store.

This article describes how to create a Google Developer Account which you will need to be able to upload your own app to the Google Play Store.

This article describes one of the steps you have to take to get your app  published in the Google Play App Store. [Click here to see all of the steps.](https://support.appmachine.com/support/solutions/articles/80001022129-v2-google-play-publishing-overview)

**Google Developer Program**

1. Go to <http://play.google.com/apps/publish/> and log in with an existing Google account. If you do not yet have a Google account, please create one by clicking on the "Create account"-button.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80098287806/original/WhGW7YTDg7H8WrqPny6lWCZfMAFFFdVboQ.png?1650886833)<br>
2. Once you've logged in,  choose to create a developer account for personal use or for an organisation or business.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80098290808/original/vUvpB3ICC9QT_4ukgYRN1O82U0YeSRQQxg.png?1650887114)<br>
3. Provide you (or your companies) **contact information.**
4. Enable both Terms.
5. Please note that the email address and phone number that you provide will have to be verified via email and/or text message.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80098336451/original/YdvSP3hXoeEUNqpYMVzeIW1onuhdwzwetg.png?1650891736)<br>
6. Now you need to pay for your developer account, this only works via credit card. Please make sure that the cardholder's name mentioned on the credit card is the same as the contact information that you've provided in the previous step.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80098338830/original/-N5YXbNoZc1SKvV1oXg5Tvk9Olk4cuiGoA.png?1650891989)<br>
7. After completing your registration for a Google Developer Account you will automatically be redirected to Google's Developer Console. Once you see an interface similar to the screen shown below, your Google Developer account is almost ready for use.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80098365846/original/uZnlDzTgZIMZi08Wkv0lUjTqmxq5_Wiaxg.png?1650894573)<br>
8. You will also receive an email from Google to **verify your identity**. This is required to do before you can submit your first app. We advice you to do this as soon as possible, as it might take a few days to get your identity verified.\
   Click on the **blue button** in the email below.\
   \
   ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111358258/original/CbyUJTX9BltSj1VjDQ9N0fzSh6FjR1e_yg.png?1654697321)
9. Begin the verification.\
   \
   &#x20;![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111357621/original/agVHqDOM38MUykejdeXD5BPpj1PwbLnUew.png?1654697267)<br>
10. You will need to have a copy of your ID at hand. You can make a photo with your phone and upload the image.
11. Enter your name and address from your ID.
12. This verification might take a few days. \
    \
    ![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111364953/original/H3N2qyj_mb_dw5WP7ZnT2_mvcXy-o5y7OQ.png?1654698032)<br>


# Setup your Android app

This article explains the steps you have to take to get your app ready for publication in the Google Play Store.

### Getting your Android app ready to publish

1. Navigate to the Publish page of your app in AppMachine.
2. Click on **Setup Play Store** in the Google Play Store section.<br>

   <figure><img src="/files/qJaHPNe1AI3bspJKF94F" alt=""><figcaption><p>Publish page</p></figcaption></figure>
3. **Copy the Bundle ID** and follow the steps in [this article](/app-details/firebase/register-android-app) to register your Android app in Firebase.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80120294728/original/dlOU81juLFTGZ98USDd23fiUlO534E4qLw.png?1657201916" alt=""><figcaption><p>Setup Google Play wizard</p></figcaption></figure>
4. **Click Next** and **upload the Google-Services.json file** that you've downloaded during the registration of your Android app in Firebase.<br>
5. **Find and copy the Server key** of your Firebase project via the steps in [this article](/app-details/firebase/locate-firebase-server-key).<br>
6. **Paste the Server key** and click **Next** to complete the Setup of your Android app.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80120297366/original/I5dE5O16m39OOERzw2BJZlzts6aWLuQlEg.png?1657202190" alt=""><figcaption></figcaption></figure>

<br>


# How to request a Google Maps API Key

This article explains how to manually request a Google Maps API key for your AppMachine app.

This key is required in order to be able to publish your Android app.&#x20;

1. Navigate to <https://console.cloud.google.com/> and login with the Google Play Developer account on which you're planning to publish your app. Read here [how to create a Google Developer account.](/share-your-app/google-play/create-a-google-developer-account)
2. After logging in, navigate to <https://console.cloud.google.com/projectcreate> and **create a new project**. (If you're an experienced Cloud Console user you can also opt to use an existing project.)

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082658477/original/MpQm1Ui9Aul2oGDmSRb37qL64JDUlINYvg.png?1646233716" alt=""><figcaption></figcaption></figure>
3. After the project has been created, open the API Library page via **APIs & Services > Library**<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082658684/original/w36QaKDZdXMLBEbp8GVcvDJhVu0hdJjs6g.png?1646233735" alt=""><figcaption></figcaption></figure>
4. Search for the **Maps SDK for Android API** and use the **Enable** button to enable it.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082658869/original/__viwdkgmHy9pJi4GOo5KtaCnHLnxG1euw.png?1646233752" alt=""><figcaption></figcaption></figure>
5. When you've enabled the API, navigate to the **APIs & Services > Credentials** page to create your API key.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082658938/original/a1IPIlHvpF1wHRQsIgJV7PApoSLEyX-uLg.png?1646233759" alt=""><figcaption></figcaption></figure>
6. On the credentials page, use the **Create Credentials** button at the top of the screen to create a new API key.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082659000/original/T9fQjIn41_lSB5rc6F1JezXAqP7w7EHFmA.png?1646233768" alt=""><figcaption></figcaption></figure>
7. Use the **Edit API Key** link to restrict the key for use in your Android app only.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80110950390/original/v0L-8aG4hsEkdm-y-xDVoSBc5ItqBU-NNg.png?1654612569" alt=""><figcaption></figcaption></figure>

### To enter the API key at AppMachine&#x20;

1. Open **AppMachine**
2. Open your app
3. Click on the **Publish** button in the top right corner
4. Click on **Edit Store Info** in the Google Play Store tile
5. Enter the key in the **Google Maps API Key** field<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80115763389/original/ydQW4K7P3Jo-tpCE81jX-99HEO4hXk4gEA.png?1655934333" alt=""><figcaption></figcaption></figure>

\
**HIGHLY RECOMMENDED : Optional steps to secure your API key to be only used in this app**\
All the next steps are optional if you want to restrict the API key for being reused by other developers in other apps:&#x20;

1. Publish your app to Google Play Store
2. Upload your app at Google Play\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114619067/original/E--Sl1cu3JeszQItlJ0bXWmg3-T1aRrPlA.png?1655714765" alt=""><figcaption></figcaption></figure>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114636253/original/cBLfc3Rx14lotZD8CYoCkPkpa_z8xRDoJQ.png?1655716184" alt=""><figcaption></figcaption></figure>
3. Copy **SHA1**
4. Go back to **Google Cloud**
5. Select the **Android apps** option from the Application restriction options, and use the **Add an item** button to add your app's technical specifications to this API key.\
   \
   ***\* Note:** You can obtain your app's package name and SHA1 hash via <support@appmachine.com>.*<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082659122/original/PzLktNPCNyOGkI3x6IPUgR0sPPQGaRh-ag.png?1646233780" alt=""><figcaption></figcaption></figure>
6. Enter your app's **package name** and **SHA1 hash**, and use the **Done** button to complete the process.\
   \
   ***\* Note:** The package name and SHA1 hash below are examples. You can obtain your app's package name and SHA1 hash via <support@appmachine.com>.*\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114636549/original/32qmKiYjiQ8csJjvl_ZkozKaxk9--9rfcA.png?1655716208" alt=""><figcaption></figcaption></figure>
7. Use the **Save** button at the bottom of the page to save the changes you've made to your API key.
8. On the credentials overview page, use the copy button to copy the newly created and **restricted API key**.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80082659236/original/_vDKC6UsJEhJgLwvPHQyTKdVIFXmddhiUQ.png?1646233795" alt=""><figcaption></figcaption></figure>

   \
   \
   **Congratulations! You've just successfully created a Google Maps API key for your app.**


# Test your Android app before publishing to Google Play

This article describes in overview the steps you can take to test your app on your Android device publishing to the Google Play Store.

The AppMachine platform allows you to test your app as you're building it with the previewer in the browser. We also have the AppMachine Previewer app available in the Google Play Store so that you can test what the app will look like on your device. If you'd like to test the app further  download an APK file and open that on your Android phone.&#x20;

### A. When you are ready to test your app:&#x20;

***Note: Before you start, make sure that you have uninstalled any earlier versions of this app***

1. Do a last **check** if the content of your app is correct.
2. Click the **Publish** button in the top right corner of the Publish dashboard.
3. This wizard will take you through the creation of your AAB and APK file. This takes between 1 and 3 hours. You can close the wizard during that time and come back later.\
   \
   In the publish dashboard you can click **View Publish progress** in the Google Play tile to open the wizard again.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926121/original/_1TBCKa6L4h-InzdEnND4HUhHjuT87aZUQ.jpeg?1655762665" alt=""><figcaption></figcaption></figure>
4. &#x20;After the publishing process is finished, you can **Download** the files from the Publish Dashboard.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926119/original/aBgtL2oYcAIdMFn9uXqSa9VqMg0fIEcmMA.png?1655762664" alt=""><figcaption></figcaption></figure>
5. If you want to test your app on your own Android device, we advice you to click on the QR code icon<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926238/original/PSBXI4HKSI4k3Nm2UbmzQWBGtA07LK0aBA.png?1655762835" alt=""><figcaption></figcaption></figure>
6. So the QR code appears. **Scan** that code with the camera of your Android device.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926232/original/DKiUFBKvGUsGxcslAvCnQeDj2UZ5rjM6Hw.png?1655762820" alt=""><figcaption></figcaption></figure>
7. The steps on your phone might differ a little from the steps shown below because not all Android phones  work exactly the same.\
   \
   Your phone might show you a message like this. Choose **Download anyway**<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80133565848/original/H6Gdob6ktpETmp01fpN6wx_NubSa8urBLw.png?1661341391" alt=""><figcaption></figcaption></figure>
8. Your phone will ask you if you want to open the link in a webbrowser. Say **Yes** or **Open** \
   \
   The first time your Android device might ask you if you want to trust this developer. Say yes to allow that.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80133570097/original/1XdWkVkyXtBCaYXQmc94mafxCmUBpcX4mg.png?1661341889" alt=""><figcaption></figcaption></figure>
9. **Install** the app.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80133571171/original/QGwp9tJWtzX-8HGOnpyaOYT-D4oLF7-XpQ.png?1661342001" alt=""><figcaption></figcaption></figure>
10. **Open** the app.<br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80133571337/original/zWqD1krYtEsqdzpE6ABPLL1QjaD9XbxzqA.png?1661342022" alt=""><figcaption></figcaption></figure>
11. Check if your app works like expected.\
    if yes, go to paragraph B\
    if you want to change your app some more, check Paragraph C.\
    if you see a bug where the app is not showing in the right way, check paragraph D.<br>

**How to turn Google Play Protect on or off on your android devive**

Google Play Protect is on by default, but you can turn it off, so you don;t get the "Install anyway" question every time you download a new APK.&#x20;

\* Open the Google Play Store app Google Play.\
\* At the top right, tap the profile icon.\
\* Tap Play Protect and then Settings.\
\* Turn Scan apps with Play Protect on or off.

\
You do need to realise that this is also disabled now for all apps that you download.

### B. App looks good

1. If the app works like expected and you want to upload it to the Google play Store\
   You can Download the AAB file from the Publish Dashboard > Google Play > Download<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926119/original/aBgtL2oYcAIdMFn9uXqSa9VqMg0fIEcmMA.png?1655762664" alt=""><figcaption></figcaption></figure>
2. **Download the AAB file**\
   &#x20;

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114926661/original/Es-XOTifTvoePPlW8r50SSHsKVH0WpHHyQ.png?1655763308" alt=""><figcaption></figcaption></figure>
3. Upload the AAB file at Google for the first time   [Read more..](/share-your-app/google-play/upload-your-android-app-to-google-play-store-for-the-first-time)\
   OR upload an update to Google [Read more...](/share-your-app/google-play/update-an-android-app-to-the-google-play-store)

### C. App needs some more work

1. If you want to make some additional changes to the content or design of your app, make the changes in the **Content tab**
2. Make sure you **remove the previous version from your Android device**
3. Do a new Publish for the Google Play Store and download the APK file again with the camera from your android device

### D. You experienced an issue

1. If your app shows wrong information or a bug, contact <support@appmachine.com> and mention the app owners email adres, the app number ( shown in the header of the Publish screen), mention what looks off and include screenshots of the issue.


# Upload your Android app to Google Play Store for the first time

This article explains how to manually submit your Android app to the Google Play Store for the first time, using the .AAB file obtained via the Google Play publishing process in AppMachine.

This article explains how to manually submit your Android app to the Google Play Store for the first time, using the .AAB file obtained via the Google Play publishing process in AppMachine.&#x20;

## Creating a new app record

1. Open your browser and navigate to the Google Play developer console: <https://play.google.com/apps/publish/?hl=en>
2. Once logged in, you'll find yourself on the **All Apps** page. This is the landing page of the Google Play Developer Console, which provides you with an overview of all apps that have been created and/or published on the developer account.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111369640/original/qv8yXO8AQdIo5-73IJ3qHvpJam44pH9kHw.jpeg?1654698520" alt=""><figcaption></figcaption></figure>
3. Use the **Create app** button in the left -bottom or top right corner of the screen to create a new app within your developer account. After clicking the button, you should see a page similar to the screenshot below.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111262481/original/YbNt16GlST_My2hgFqjzJzzAccV4t3Ezrw.jpeg?1654688110" alt=""><figcaption></figcaption></figure>
4. Enter the **name** of your app and select the **default** language. This is the language of the content used in your app.&#x20;
5. Choose  '**App**' at the third question.\
   *\* Please note that 'Game' apps cannot be made through AppMachine and require different publishing settings and options than regular apps.*
6. Select whether your app is **Free or Paid**. Note that Free apps cannot be made into Paid apps after they have been published to the Google Play Store. Also note that Paid apps require you to [set up a Google Merchant account.](/share-your-app/google-play/create-google-merchant-account)
7. Lastly, check the boxes for the available **declarations** and use the '**Create app**' button in the bottom-right corner of the screen to continue.\
   If you haven't yet accepted the Play App Signing Terms of Service during a previous app submission, then you will notice a third checkbox being available for this.

## Initial app setup

1. After using the **'Create app**' button to create your app, you'll find yourself on a page with several steps to **'Get started setting up your app'**.&#x20;
2. On this page, locate the '**Set up your app**' section and click the '**View tasks'** button.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111452888/original/w1BsZTZ31pre73gdJuhCCQEz2Ra_Ln9AIQ.png?1654721213" alt=""><figcaption></figcaption></figure>
3. This list appears of tasks you need to take:\
   \
   The tasks listed on the screen show which settings have to be provided by you before you'll be able to publish the app into the Google Play Store. We'll go through these settings one by one.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111264882/original/cNfkSeRLbQfaL8jtyF6GQhxwVYBIUJ-fFQ.png?1654688357" alt=""><figcaption></figcaption></figure>

#### **A. Set Privacy policy**

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111262591/original/Zpe0HQB4uHil_gkoYLeXvBrjbCwLCbxkYA.jpeg?1654688114" alt=""><figcaption></figcaption></figure>

* Enter the URL on which your app's privacy policy can be located. If you don't have a privacy policy yet, checkout [this article how to create a privacy policy.](https://support.appmachine.com/support/solutions/articles/80001024886-v2-how-to-create-a-privacy-policy-for-your-app)
* When you've set the privacy policy URL, use the Save button in the bottom-right corner of the screen to save your changes.&#x20;
* After saving the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.<br>

  <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111453100/original/Wsu-EfhJ2FTF98A_X0urhMyBtDY6f4AisQ.png?1654721396" alt=""><figcaption></figcaption></figure>

#### **B. App access**

Within the App access settings you'll have to declare whether or not your app contains content which can only be seen if users login, or enter a password, or if they have to perform any other type of authentication.\
\>> If your app has locked content like this, for example via a Lock block, user registration or some other form of login functionality then you will have to provide Google with a way to access this content.

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111265431/original/b6-_Y6Nv497cuBdbdKfPwgw0GLjtrtOg5A.png?1654688411" alt=""><figcaption></figcaption></figure>

After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

#### **C. Ads**

Within the Ads settings you'll have to **declare** whether or not the app **contains advertisement**.

Note that if you have enabled **Firebase analytics** for the app, you'll have to select **'Yes'** here and further specify by selecting the **'Analytics'** option.

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111265683/original/2fW9DTHRDBgGPHpfd5y77E-FqNi4DLpdjQ.png?1654688436" alt=""><figcaption></figcaption></figure>

After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

#### **D. Content rating**

Within the Content rating settings, you'll have to answer a series of questions regarding the content used in your app. Your answers will give your app an IARC content rating. This rating will provide users in the Google Play Store with an indication of the content which your app displays.\
The email address you provide for this rating will be used to contact you about your content ratings, and may be shared with rating authorities and IARC.\
\
Click on the **Start questionnaire** button to fill in all the details

Enter your contact **email address** and Select **Other App Types** and click **Save** in the right bottom corner,.<br>

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111453275/original/57vhnrtgUy98uM82qBduI4htIET0RLKhew.png?1654721537" alt=""><figcaption></figcaption></figure>

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111453308/original/oyICGfAabEWratc-FR6lXr0WnLyWsPP2VA.png?1654721563)

* **Answer Various questions** will be asked which you have to answer based on your app's content.
* For the **Online Content** question, you should answer Yes, if you have for example a RSS feed in your app or show data in a Webservices block.

  <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111266487/original/eebGJzLoOIwZU2ndTSrB560O_ecSFv9OSQ.png?1654688527" alt=""><figcaption></figcaption></figure>
* Click **Save** in the right bottom corner.&#x20;
* Click **Next**
* Click **Proceed**
* After filling in all the Content rating questions you will see this screen:\
  \
  Use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

  <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111453835/original/vMPyjD1HnNxFYDdtrKExvNb-OvZpZhUJsg.png?1654722093" alt=""><figcaption></figcaption></figure>

#### **E. Target audience**

Within the Target audience settings you'll have to answer a series of questions concerning the audience that your app is created for. Note that choosing anything under the age of 18 may place your app in the kids category, which will result in additional restrictions in terms of allowed content. This may impact the review of your app. If your app is not specifically created for a younger audience, then we advise you to always choose the ages 18 and over.\
\
After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

#### **F. News apps**

Explain if your app is a News app or not.\
After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

#### **G. Covid 19 app tracing and status apps**

Your app probably isn't a Covid tracing app, so select the bottom option

![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117029838/original/nNqPnEAQkdH9PuzFJ7wrr80b9y8q--yfjA.png?1656353067)

#### **H. Data safety**&#x20;

First you will be asked wether your app collects data, after that you need to answer questions about each type of user data.

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111454217/original/gileTCTxV6QIkHF9bA8ETa3CCNqZAtf72A.png?1654722503" alt=""><figcaption></figcaption></figure>

* At step 2 disclose that your app collects data in these 3 ways:\
  [Please click here to open the article in our help center that provides a full step-by-step guide on how to enter the Date safety settings for your app](/share-your-app/google-play/data-safety-details-on-the-google-play-store). \
  **Start at step B.**

  <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111269676/original/gUcpRvLf7EIIW7aBDbSsYUxr6PpcFjG0WA.png?1654688886" alt=""><figcaption></figcaption></figure>

#### **App Category and contact details**&#x20;

* Category
* Email address
* Phone
* Website

After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.

#### **Set up your store listing**

You should now setup how your app is presented in the Play Store.\
![](https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111455390/original/GYaEjG7bE0QYY9e6D1akOeTzkdLYKr7yAw.png?1654723656)<br>

Within the Store listing settings you'll have to provide the following information for your app:

* Short description
* Full description
* App icon : 512px  by 512 px
* Feature graphic
* At least 2 phone screenshots.\
  png or jpeg, max 8 MB

Please note that it is not allowed to add keywords to your descriptions, as this is cause for Google to reject the app from the Google Play Store.\
\
Concerning the screenshots: You'll only have to upload a minimum of two Phone screenshots to be compliant with Google's guidelines. Screenshots for other displays (e.g. tablet) are displayed, but are not required as long as at least two screenshots are provided for one of the device types.\
\
After **saving** the changes, use the **Dashboard** button in the top-left corner of the screen to navigate back to the Dashboard.\
\
[If you plan to sell your app in the Google Play Store as a paid app, then please follow the steps in this help center article before continuing with the release of your app.](/share-your-app/google-play/sell-your-app-in-google-play-store)

## Release your app

*Now that we're finished with the initial app setup, you'll notice that the initial app setup section is no longer displayed on the dashboard page of your app. This means that this part of the publication is successfully completed.*

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111262578/original/7x_xJ0lGgxSGECNZTnWnCicsJNF-g_g04A.jpeg?1654688113" alt=""><figcaption></figcaption></figure>

1. On the App dashboard click **View tasks** in the **Publish your app on Google play.**&#x20;

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111556636/original/UfFGkkGwMSj2-J3EgZ0Tg_5THoJH1wud9A.jpeg?1654762895" alt=""><figcaption></figcaption></figure>
2. Go to the various tasks<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111558593/original/uYgXOnGoMHEubufOUAdcoBcw2K3-0Dhwjg.png?1654763060" alt=""><figcaption></figcaption></figure>
3. After opening the **Select countries and regions** task, you'll be shown the following screen:\ <br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111262530/original/WL0cOG4ioLVKwZnPJwEqpt3OP1sSvtFC3w.jpeg?1654688112" alt=""><figcaption></figcaption></figure>
4. Click the A**dd countries and regions** hyperlink. You will be able to select the countries in which you would like your app to be available. **Save** and **approve** again.
5. To create a new release, click **Create new release** in the top-right corner
6. Make sure you have clicked the Download button in the Google Play section of your Publish dashboard and have downloaded the AAB file<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405505/original/CDTX2zAjNe3UmUhsg-is9-66wlWIxDWGPg.png?1655552988" alt=""><figcaption></figcaption></figure>
7. Open a Finder on your Mac machine and look for an AAB file with a name which looks like this:<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117033370/original/Or6fLuQaLYy7ZCb2O-1Ulj4UELCTQQXSQw.png?1656354978" alt=""><figcaption></figcaption></figure>
8. **Drag and drop the AAB.file** onto the screen in de App Bundle area, or by using the **Upload** button displayed on the page.\
   *On Mac devices, you cannot use the Upload button (Google Chrome browser)*<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405507/original/RB6k8IeX2qqAQ1E_qFCUG0Dg8lADsKz2tQ.png?1655552988" alt=""><figcaption></figcaption></figure>

   You may be presented with the prompt to select a method of app signing. This prompt will look like this: <br>

   <figure><img src="/files/QrJvxoQuxxRPtNKSx51r" alt=""><figcaption></figcaption></figure>

   <mark style="color:red;">**Always select the "Use Google-generated key" option here.**</mark><br>
9. After the uploading is finished, your screen will look something like this:<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405584/original/vNave5miBZLH5-QPEl2ya-1D9x0BZW2m6g.png?1655553088" alt=""><figcaption></figcaption></figure>
10. A name for the release will automatically be filled in.
11. Scroll down to manually enter some **Release notes**<br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405508/original/rNx-px4CjqQJk8yz8Guy5ltTmahXljvw1w.png?1655552988" alt=""><figcaption></figcaption></figure>
12. **Save** your changes in the bottom-right corner of the screen
13. Click **Review release** in bottom right corner.<br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405600/original/Pxk1kERL9l5-B3-8wHFGIs29OL7NIgL76Q.png?1655553114" alt=""><figcaption></figcaption></figure>
14. Review the new version and click **Start rollout to Production** to release the app into the Google Play Store.\
    ***You will this warning which you can ignore.*** \ <br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117034153/original/yLBbpr9PG7gka9AHxSANx0Nc8K4CHNAnhg.png?1656355441" alt=""><figcaption></figcaption></figure>
15. **Roll out to production**\ <br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114405627/original/zyvO_d45PSHGSO9moGoF9ihbcZRNSX61ZA.png?1655553136" alt=""><figcaption></figcaption></figure>
16. Your app should now be displayed with a **Pending publication** status in your developer console app overview. Google will review the app and, if accepted, the app will become available to download from the Google Play Store.

In case the app is rejected -or suspended as Google calls it- you will receive an email notification from Google on the owner email address of your Google Play developer account explaining why the app was suspended and what needs to be changed.\
\
The time it takes Google to review is generally anywhere between 1-3 days, depending on the amount of apps that have been submitted to Google.\
\
**Congratulations, you've successfully updated your Android app in the Google Play Store!**


# Update Android app (short)

### **Release management - Upload your app** <a href="#e.-release-management-upload-your-app" id="e.-release-management-upload-your-app"></a>

**Prerequisites:** You've already downloaded the .AAB file from the Publishing page in AppMachine:

<figure><img src="/files/kIpAXH5Vc6xpTKkHCLUx" alt=""><figcaption><p>Under the Google Play section of the Publish page you'll find the Download option for the .AAB file.</p></figcaption></figure>

1. **Open the** [**Google play console**](https://play.google.com/apps/publish/?hl=en) and login with the right developer account

2. In the left side menu find the option **Release > Production** \
   ![](/files/77RSHe0ekHrcTanc0L0g)

3. To create a new release, click **Create new release** in the top-right corner

4. Open a Finder on your Mac machine and look for an AAB file with a name which looks like this:<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80116790801/original/TCvsUKYJbBVTeFoPehMdsyvIocAoktQIwg.png?1656323470" alt=""><figcaption></figcaption></figure>

5. **Drag and drop the AAB.file** onto the screen in de App Bundle area, or by using the **Upload** button displayed on the page.\
   \
   *On Mac devices, you cannot use the Upload button* \
   \
   *If you cannot find the AAB file on your computer, you can always download it again from the publish page.*\
   \ <mark style="color:red;">**Important: If you receive a notification about enrolling in Play App Signing, please contact AppMachine Support through <support@appmachine.com>.**</mark><br>

   <figure><img src="/files/XpA8Y19nCriz4j45xICn" alt=""><figcaption></figcaption></figure>

6. A name for the release will automatically be filled in, so leave this field as is. You do have the option to enter Release Notes. But you can also leave the default value as shown below:<br>

   <figure><img src="/files/zxefUHmMEK3f4b5esGJK" alt=""><figcaption></figcaption></figure>

7. **Save** your changes in the bottom-right corner of the screen

8. Click **Next** in bottom-right corner.

9. Review the new version and click **Save** to continue the process. If any policy related matters occur at this time you can resolve them. If you need any assistance with this contact us at <support@appmachine.com>.&#x20;

10. Click the **Go to overview** button.\ <br>

    <figure><img src="/files/1HxWaVr7Qj4O2Tvg0l3I" alt=""><figcaption></figcaption></figure>

11. If there are no policy related matters that still need your attention, you can click the **Send 1 change for review** button to submit your new app version. <br>

    <figure><img src="/files/gS1FTOSEYRLHIYnweYP5" alt=""><figcaption></figcaption></figure>

12. Your app is now in review<br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112276022/original/R-H7QJwsv80QBW-3QHCsVNZ1FIs5I7kCRg.png?1654944809" alt=""><figcaption></figcaption></figure>

In case the app is rejected -or suspended as Google calls it- you will receive an email notification from Google on the owner email address of your Google Play developer account explaining why the app was suspended and what needs to be changed.\
\
The time it takes Google to review is generally anywhere between 1-3 days, depending on the amount of apps that have been submitted to Google.\
\
**Congratulations, you've successfully updated your Android app in the Google Play Store!**


# Update an Android app (extended)

Updating an already published app in the Google Play Store is a lot less time consuming than publishing an app for the first time. When submitting an app for the first time, all store data has to be provided to Google. When updating an existing app, you only have to update the item(s) that you wish to change.

\
The publish wizard offers you the option to download the AAB file for upload to Google Play Store or to Download the APK file if you want to test this version of the app on your own Android device.\
\
If you only want to upload a new version of your app, follow the guidelines in step Aa and E.

### **A. Login** <a href="#a.-login" id="a.-login"></a>

\
0\. **Open the** [**Google play console**](https://play.google.com/apps/publish/?hl=en) and login with the right developer account

* If you only want to **upload a new version of your app**, you go go to **step E** immediately.
* If you want to make changes how your app is displayed, go to **step B**

### **B. Store presence** <a href="#b.-store-presence" id="b.-store-presence"></a>

1. Select your app in the all apps page
2. Look for  Store Presence in the left-side menu and select **Main store listing**\
   \
   Within the store presence section, there are multiple pages on which the app's presence in the Google Play Store can be edited. Within this article, and to keep things simple, we'll focus on the Main store listing:
   * The **main store listing** allows you to edit the title, descriptions, icon, feature graphic and screenshots of your app. This is the main display of your app in the Google Play Store.
   * **Store settings** to edit the type and category of your app, as well as the contact details displayed on the download page of your app in the Google Play Store.

If you've made any changes on these pages, use the **Save** button in the bottom-right corner of the screen to save your changes.

### **C. App content** <a href="#c.-app-content" id="c.-app-content"></a>

1. Scroll down in the left side menu till you see **Policy > App Content**
2. Make sure all options are marked as **Completed**.\
   If there are any open tasks in the To-do list (Google adds new things from time to time), then you will have to make sure to complete these tasks before submitting a new version of your app to the Google Play Store.\
   \
   On this page you will be able to edit the following information:<br>

| Privacy policy              | <p><br></p>                                                                                                                                                                                                                                                                                                                                                                    |
| --------------------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| Ads                         | <p>Use this section if your app contains ads.<br><br>If you have enabled Firebase analytics for the app, then also select 'Yes' and specify with the 'Analytics' option.</p>                                                                                                                                                                                                   |
| App access                  | If parts of your app are restricted based on login credentials, memberships, location, or other forms of authentication, you will have to provide Google with instructions on how to access them via this section.                                                                                                                                                             |
| Content ratings             | Your app's current IARC rating                                                                                                                                                                                                                                                                                                                                                 |
| Target audience and content | Your app's current target age group, and other content information                                                                                                                                                                                                                                                                                                             |
| News apps                   | If your app is a news app, then you'll have to provide Google with additional information to help them verify your credentials as a news publisher. Furthermore, your app will have to comply with the [Google Play News Policy.](https://support.google.com/googleplay/android-developer/answer/9914283#news) If your app is not a news app, then a simple 'No' will suffice. |
| Data Safety                 | <p>If your app requests access to sensitive permissions, like location permissions, you need to tell Google what functions the permission is used for. (more information below)<br></p><p><br></p>                                                                                                                                                                             |

### **D. Data safety** <a href="#d.-data-safety" id="d.-data-safety"></a>

1. Scroll down in the left side menu till you see **Policy > App Content**
2. Scroll down to **Data safety** and click **Manage**&#x20;

[Please click here to open the article in our help center that provides a full step-by-step guide on how to enter the Data safety settings for your app](/share-your-app/google-play/data-safety-details-on-the-google-play-store)

### **E. Release management - Upload your app** <a href="#e.-release-management-upload-your-app" id="e.-release-management-upload-your-app"></a>

1. in the left side menu find the option **Release > Production**&#x20;
2. To create a new release, click **Create new release** in the top-right corner
3. Open a Finder on your Mac machine and look for  an AAB file with a name which looks like this:<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80116790801/original/TCvsUKYJbBVTeFoPehMdsyvIocAoktQIwg.png?1656323470" alt=""><figcaption></figcaption></figure>
4. **Drag and drop the AAB.file** onto the screen in de App Bundle area, or by using the **Upload** button displayed on the page.\
   *On Mac devices, you cannot use the Upload button* \
   \
   *If you cannot find the AAB file on your computer, you can always download it again from the publish page.*\
   \ <mark style="color:red;">**Important: If you receive a notification about enrolling in Play App Signing, please contact AppMachine Support through <support@appmachine.com>.**</mark><br>

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112272780/original/fSyGylL8th0D1RD6rT5lmQH21mhWmoFZQA.png?1654942228" alt=""><figcaption></figcaption></figure>

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112272824/original/63oXv71sAMw_-VFlOawpxnX0tOFx9ywdVQ.png?1654942248" alt=""><figcaption></figcaption></figure>

1. A name for the release will automatically be filled in.
2. Scroll down to manually enter some **Release notes**<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80113260970/original/xLaF4Md_tojd50vlEvoAH4beCdzn-fLkMA.png?1655239891" alt=""><figcaption></figcaption></figure>
3. **Save** your changes in the bottom-right corner of the screen
4. Click **Review release** in  bottom right corner.
5. Review the new version and click **Start rollout to Production** to release the app into the Google Play Store.
6. **Roll out to production**
7. Your app is now in review<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80112276022/original/R-H7QJwsv80QBW-3QHCsVNZ1FIs5I7kCRg.png?1654944809" alt=""><figcaption></figcaption></figure>

In case the app is rejected -or suspended as Google calls it- you will receive an email notification from Google on the owner email address of your Google Play developer account explaining why the app was suspended and what needs to be changed.\
\
The time it takes Google to review is generally anywhere between 1-3 days, depending on the amount of apps that have been submitted to Google.\
\
**Congratulations, you've successfully updated your Android app in the Google Play Store!**


# Data safety details on the Google Play Store

Help users understand how your app collects and shares data.

In order to help users understand how your app collects and shares data, app owners must enter data safety details of their app within the Google Play developer console prior to being able to publish. With this information, users will be able to learn about some of the data types the app may collect, and whether that data is linked to them or used to track them.\
\
The information below describes data collection and sharing performed by the app when using the standard building blocks provided by our platform. If you're using web service blocks to extend your app's functionality, then please make sure to take this into account when answering the data safety questions posed by Google.

### A. Open the right screen

The data safety details can be provided through the Google Play developer console.&#x20;

1. **Login** on <https://play.google.com/apps/publish/?hl=en> with your Google Play developer account.\
   Please make sure that the account you're using to log in with has at least an Admin role. Any other role is insufficient to perform the required actions.
2. Open your app from the **App Overview page**.&#x20;
3. Scroll down to the bottom the left-side menu and click **App Content.**
4. Scroll through the list until you find the Data Safety options.&#x20;
5. Click **Start** to start the data safety questionnaire.\
   Note: Manage will be displayed instead of the Start button if you've already completed the Data Safety questionnaire for this app.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114016769/original/FuXaM0MPqxL4gpqSfN8_jQGA7lz2nd_F4A.jpeg?1655407042" alt=""><figcaption></figcaption></figure>
6. Now you see the **Data Safety questionnaire**. Read the information and click **Next** in the bottom-right corner of the screen to continue.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80114017061/original/f-1VKaIWEA14GNjxFNMd9BDgDWrax3jrSw.jpeg?1655407248" alt=""><figcaption></figcaption></figure>
7. Answer the first two questions with '**Yes**'.<br>

   <figure><img src="/files/9mr9GrKEULjWHhDdeiJ5" alt=""><figcaption></figcaption></figure>
8. Select whether users are able to create an account within your app, and if so, via what method. In the image above, the options are numbered 1 to 6. Each option is explained below, along with the corresponding login setting in AppMachine \[Mail, Facebook, Google, Apple, Azure]. Select the option(s) that matches your apps functionality.

<table><thead><tr><th width="85">#</th><th>Description</th><th>Enabled login setting(s)</th></tr></thead><tbody><tr><td><mark style="color:red;">1.</mark></td><td>Users are able to register an account with their email address and a password of their own choosing.</td><td>Mail</td></tr><tr><td><mark style="color:red;">2.</mark></td><td>Users are able to register an account without a password, or via other authentication.</td><td><p>At least one of the following: </p><p>    Facebook<br>    Google<br>    Apple<br>    Azure</p></td></tr><tr><td><mark style="color:red;">3.</mark></td><td>Users are able to register an account with their email address and a password of their own choosing, or via other authentication.</td><td>Mail<br><br>And at least one of the following: <br>    Facebook<br>    Google<br>    Apple<br>    Azure</td></tr><tr><td><mark style="color:red;">4.</mark></td><td>Users are able to login via OAuth.</td><td>-</td></tr><tr><td><mark style="color:red;">5.</mark></td><td>Other</td><td>-</td></tr><tr><td><mark style="color:red;">6.</mark></td><td>Users are not able to register an account within the app.</td><td>-</td></tr></tbody></table>

9. When you select that users are able to login to the app, then you'll also have to provide a link via which users can request their account to be deleted. If you don't have such a page, simply enter the URL of your website.\
   \
   ***Note:** Although the account deletion option is present within the app when using AppMachine login settings, Google still requires a 'Delete account URL' to be entered.*<br>
10. Select whether or not users are able to request their data to be deleted. If you select 'Yes', then you'll also have to provide a link via which users can submit their data-deletion request. This can be as simple as a product support page or contact form.<br>

    <figure><img src="/files/44z0IHiIP3IyDQprGUaO" alt=""><figcaption></figcaption></figure>
11. Click **Next** in the bottom-right corner of the screen.

### B.  information per datatype

1. **Select all data types** that are collected or shared by the app. Use **Show** to the right side of the data type group to select the specific data type(s).\
   There are a number of data types which are collected by all apps created with AppMachine, which we will list below.

***If you've added any custom functionality to the app through which data is collected or shared, then please make sure to also select the data types which are used for this functionality.***

* #### Location

All AppMachine Android apps use the '**Precise Location**' for functionality like maps and location-based lock blocks also require the use of this permission.

* #### Personal info

Whether or not you enable the checkboxes in this section depends on the functionality you've added to the app. For example, if the app contains a Contact Form through which personal information is provided, then enable the boxes for the information that the user can provide within the app. Additionally, if users can  -or are required to- login to the app, then you'll have to check the boxes concerning the collection of names and email addresses.&#x20;

* #### Financial info

The '**Financial** **info**' option in this section concerns payments which are handled through means other than a payment service. For example, if your app contains a manual payment option, then the 'Payment Info' option has to be checked. If your app uses PayPal checkouts, then you do not have to check this box, because these payments are handled by PayPal without you ever seeing the users payment information.

If your app collects or shares any other type of financial information from its users, then check the appropriate box(es) accordingly.

* #### Health and fitness

If your app collects or shares any health or fitness related information of the user, for example medical records, symptoms, exercise or physical activity, then check the appropriate box(es) accordingly.

Health and fitness information is not collected or shared by AppMachine-created Android apps through standard functionality.

* #### Messages

If your app collects or shares any information of the user related to messages, for example email, SMS/MMS, or other messaging data, then check the appropriate box(es) accordingly.

Messages data (Emails, SMS/MMS, or other forms of messaging) is not collected or shared by AppMachine-created Android apps through standard functionality.

* #### Photos and videos

If your app collects or shares any photos and videos provided by the user, then check the appropriate box(es) accordingly. For example, if your app uses a Form block through which a photo can be uploaded.

* #### Audio files

If your app collects or shares any audio related data provided by the user, for example voice recordings, music file uploads, or other audio files, then check the appropriate box(es) accordingly.

Audio related data is not collected or shared by AppMachine-created Android apps through standard functionality.

* **Files and docs**

If your app collects or shares any file related data provided by the user, for example document uploads, then check the appropriate box(es) accordingly.

File related data is not collected or shared by AppMachine-created Android apps through standard functionality.

* #### Calendar

If your app collects or shares any data related to the app users' calendar, then check this option.

Note that this does not concern a calendar / events block in the app, as this block only displays events created by the app developer. This only concerns collecting or sharing data belonging to the app user.

* #### Contacts

Contact related data is not collected or shared by AppMachine-created Android apps through standard functionality.

* #### App activity

All AppMachine-created Android apps track user interaction for analytic purposes. Within this section you'll have to select the options 'App interactions' and 'Other actions'.

* #### Web browsing

Web browsing related data is not collected or shared by AppMachine-created Android apps through standard functionality.

* #### App info and performance

All AppMachine-created Android apps track app performance for analytic purposes. Within this section you'll have to select the '**Crash logs**' option.

* #### Device or other IDs

All AppMachine-created Android apps support push notifications to be sent to the app user. In order to be able to do this, a Device ID is required. Therefor, within this section you'll have to select the '**Device or other IDs**' option.<br>

10\. After selecting all the options applicable to your Android app, click **Save** in the bottom right corner then click **Next.**

### **C. answer questions per stap**

11\. On the next page, you'll have to answer questions on how data is used and handled for each of the options selected on the previous page. The data which is collected and shared by AppMachine by default is listed below.&#x20;

\
Example: Click on the applicable items on the  ->  button.

<figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80117030713/original/NALn9hvAJPgoQzS9zJWqNHCsJRAIT4g37g.png?1656353539" alt=""><figcaption></figcaption></figure>

12\. Answer the question based on the tables below. Click **Save** in the right bottom corner. Open  the next applicable item by clicking on **show** and the  **-> button**

* **Location: Precise location**<br>

  | Is this data collected, shared, or both?                                        | Collected                                        |
  | ------------------------------------------------------------------------------- | ------------------------------------------------ |
  | Is this data processed ephemerally?                                             | No                                               |
  | Is this data required for your app, or can users choose whether it's collected? | Users can choose whether this data is collected. |
  | Why is this user data collected?                                                | <p>App functionality<br>Analytics</p>            |

  <br>
* **App info and performance: Crash logs**<br>

  | Is this data collected, shared, or both?                                        | Collected                    |
  | ------------------------------------------------------------------------------- | ---------------------------- |
  | Is this data processed ephemerally?                                             | No                           |
  | Is this data required for your app, or can users choose whether it's collected? | Data collection is required. |
  | Why is this user data collected?                                                | Analytics                    |

  <br>
* **App activity: App interactions**<br>

  | Is this data collected, shared, or both?                                        | Collected                    |
  | ------------------------------------------------------------------------------- | ---------------------------- |
  | Is this data processed ephemerally?                                             | No                           |
  | Is this data required for your app, or can users choose whether it's collected? | Data collection is required. |
  | Why is this user data collected?                                                | Analytics                    |

  <br>
* **App activity: Other actions**<br>

  | Is this data collected, shared, or both?                                        | Collected                    |
  | ------------------------------------------------------------------------------- | ---------------------------- |
  | Is this data processed ephemerally?                                             | No                           |
  | Is this data required for your app, or can users choose whether it's collected? | Data collection is required. |
  | Why is this user data collected?                                                | Analytics                    |

  <br>
* **Device or other IDs**<br>

  | Is this data collected, shared, or both?                                        | Collected                                                                                                               |
  | ------------------------------------------------------------------------------- | ----------------------------------------------------------------------------------------------------------------------- |
  | Is this data processed ephemerally?                                             | No                                                                                                                      |
  | Is this data required for your app, or can users choose whether it's collected? | Data collection is required.                                                                                            |
  | Why is this user data collected?                                                | <p>App functionality<br>Analytics<br>Developer communications<br>Account management ( only for User authentication)</p> |

  <br>

All other data type collecting and sharing is dependant of whether you've added functionality to the app that requires the user to provide this information.

13\. When you've finished providing the answers on how data is used and handled by your app, click **Next**  in the bottom-right corner of the screen to continue to the Preview page.

14\. On the Preview page, use the **Save** button in the bottom-right corner to complete the data safety questionnaire.

If you were in the process of creating your app for the first time at google, go back[ to this article ](https://appmachine.freshdesk.com/a/solutions/articles/80001023361)to the step **Set up your store listing.**


# Sell your app in Google Play Store

How can you sell your app in the Google play store

If you want to monetize your apps by selling apps in the Google Play Store, there are a few additional steps you have to follow. In this situation, you need a  [Google Merchant account](/share-your-app/google-play/create-google-merchant-account).

{% hint style="info" %}
Please note: You cannot convert an already published free app to a paid one. So if you want to start selling an app, you should configure that before you publish the app on google play store
{% endhint %}

### What does it cost to sell an app in the Google play store

Google play will also charge you for the sales of your app via a service fee.

As of January 1, 2022, that service fee is equivalent to:

* For developers who are enrolled in the [15% service fee tier](https://support.google.com/googleplay/android-developer/answer/10632485), the service fee is:
  * 15% for the first $1M (USD) of earnings each year,&#x20;
  * 30% for earnings in excess of $1M (USD) each year.
* For developers who are not enrolled in the [15% service fee tier](https://support.google.com/googleplay/android-developer/answer/10632485), the service fee is 30%.
* For automatically renewing subscription products purchased by subscribers, the service fee is 15%.

&#x20;You can [read more about it in this article. ](https://support.google.com/googleplay/android-developer/answer/112622)

### Create a Google Merchant account

Before you can set you app to paid, you need to [create a Google Merchant account](/share-your-app/google-play/create-google-merchant-account). &#x20;

### **Create an app record in the Google Play developer console**

You'll first have to create the app to sell within the Google Play developer console. \
Follow the regular steps in the [Publish your app in the Google Play store documentation](/share-your-app/google-play) and set the Free or paid setting to **Paid**

<figure><img src="/files/RduDN4C4y1B31W4psM95" alt=""><figcaption><p>Create app </p></figcaption></figure>

Do make sure not to publish the app yet, as you will have to set a price for the app before you publish the app in Google Play.<br>

### **Steps to make your app paid and set your app price**&#x20;

1. Login on <https://play.google.com/apps/publish> with your Google Play developer account.
2. Select your app from the list, navigate to the **Monetize** section within the left-side menu, and choose **App pricing.**\
   ![](/files/USaL1GyEXcqcXiZRT2Yx)
3. If your app is not paid yet, click the **Make your app paid** and enter the price.
4. Once you've set the price for your app, save your changes.

Proceed with the regular steps in Publishing your app explained [in this article.](/share-your-app/google-play)

<br>


# Create Google merchant account

The 5 steps how to create a Google Merchant account in the Google play store

If you want to publish a paid app in the Google Play Store, you will need a Google Merchant account. This article will show you how to create a payments profile in the payments center step by step.<br>

{% hint style="info" %}
You need to be registered as a Google Play developer before you can continue. Learn how to register a Google Play developer account through the following article [Create a Google developer account](/share-your-app/google-play/create-a-google-developer-account)
{% endhint %}

### Why do I need a Google merchant account?

If you want to sell your app in the Google Play Store, you need this account to manage and track your app sales from the Play Console. Review the list of [Supported locations for developer and merchant registration](https://support.google.com/googleplay/android-developer/answer/9306917) in this article from Google.

### Steps to create a google merchant account

1. Open this url <https://play.google.com/apps/publish/>
2. Sign in to your Google Play developer console.
3. From the left-side menu, click **Setup**.\
   \
   ![Choose Setup in the let side navigation](/files/8TDz5PHLoX1St5m2qCUw)
4. From the left-side menu, click **Payments** **profile.**\
   \ <br>

   <figure><img src="/files/foxnoczWmgFE7a3h5FK4" alt="Select Payment profile"><figcaption><p>Settings > Payments profile</p></figcaption></figure>
5. Click **Create payments profile**.
6. Choose a payment profile or create a new one.
7. Add you Public Business information and click **Submit**.\
   The Credit card statement name will be used if you want to accept credit card payments\
   ![Enter the Public Business information for your Google merchant account](/files/UzajwG275Olw6Tr10ooQ)
8. At the Payments profile you can add **payment methods** via your business bank account and manage your **Sales tax**.\
   ![Conifgure payment method and Sales tax settings.](/files/XUae6qyYgRDR4fHgbezu)

You can find even [more detailed information here](https://support.google.com/googleplay/android-developer/answer/7161426).


# Force Store Update for your Android App

On some occasions it may be necessary to force a store update for the Android version of your app. Whether that reason is a new Android OS version that is being released, a bug fix being released by the AppMachine developers, or because you feel it's been too long since your last update, it's good to know that forcing a store update to the Google Play Store can be done quickly and easily.&#x20;

To force a store update for Android, please follow these steps:

1. Click the blue **Publish** button at the top right of your screen.&#x20;
2. Enable the **Force a store update** toggle.
3. Make sure only Google Play Store has a blue checkmark in front (deselect this forced store update for Apple unless you'd like a forced store update for Apple as well).<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139088924/original/uTEPtK9ghNS4Sl4No3ULQt-OsWK5jNlkJw.png?1662991726" alt=""><figcaption></figcaption></figure>
4. Click the **Publish Now** button in the bottom right corner of the wizard.
5. A new build will be triggered that will take approximately 1-2 hours to complete.
6. Go back to Appmachine after those 1-2 hours click **Download** in the Google Play Store tile.

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139157063/original/Jb6xodHhtkXoc9S4yR4IHyQX6n3-XhGC-A.png?1663000147" alt=""><figcaption></figcaption></figure>
7. Click the **Download AAB** button

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139157326/original/G_r7pVf_Wqnj6TzRJeZwPRptgDMjBmftPw.png?1663000217" alt=""><figcaption></figcaption></figure>
8. Once the build is complete **Open the** [**Google play console**](https://play.google.com/apps/publish/?hl=en) and login with the right developer account
9. in the left side menu find the option **Release > Production**&#x20;
10. To create a new release, click **Create new release** in the top-right corner
11. Open a Finder on your Mac machine and look for  an AAB file with a name which looks like this\ <br>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139156377/original/xepEcQWkGKGNq4DV0BPWKJ-MNHetftm24A.png?1662999976" alt=""><figcaption></figcaption></figure>
12. **Drag and drop the AAB.file** onto the screen in de App Bundle area, or by using the **Upload** button displayed on the page.\
    *On Mac devices, you cannot use the Upload button If you cannot find the AAB file on your computer, you can always download it again from the publish page*\
    A name for the release will automatically be filled in.

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139156074/original/I5hpkrwncsbwmdCPiOHLxpFIv5G3cFuMEQ.png?1662999894" alt=""><figcaption></figcaption></figure>

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139156072/original/9JkZWeupWa5RCA7Ku9QHcijZIOrHla1hEQ.png?1662999894" alt=""><figcaption></figcaption></figure>
13. Scroll down to manually enter some **Release notes**

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139156075/original/9PvxdRk_vAO27_fRb11FUEnQieTblnCFxA.png?1662999894" alt=""><figcaption></figcaption></figure>
14. **Save** your changes in the bottom-right corner of the screen
15. Click **Review release** in  bottom right corner.
16. Review the new version and click **Start rollout to Production** to release the app into the Google Play Store.
17. **Roll out to production**
18. Your app is now in review

    <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80139156073/original/RJO_KH8Q4314GzhDb1gvPJoSl4EL7rfxRw.png?1662999894" alt=""><figcaption></figcaption></figure>
19. In case the app is rejected -or suspended as Google calls it- you will receive an email notification from Google on the owner email address of your Google Play developer account explaining why the app was suspended and what needs to be changed.\
    \
    The time it takes Google to review is generally anywhere between 1-3 days, depending on the amount of apps that have been submitted to Google.


# Authorise an additional user to your Google Play developer account

This article provides a step-by-step guide on how to authorise an additional user to your Google Play developer account.

An additional authorised user can be helpful if:

\- Your main Google Play developer account has access to multiple developer teams.\
\- You don't feel comfortable sharing your main Google Play developer credentials in our system.\
\- You're having trouble validating your Google Play developer credentials in our system.

Authorising a new user to your existing Google Play developer account is free. After completing the steps in this document you will have a new (additional) Google account which can be used to access your existing Google Play developer console.<br>

**How to add an additional user to your Google Play developer account.**

1. Logout of all Google services.
2. Navigate to [https://gmail.com](https://gmail.com/) and register a new Gmail account. (e.g.: <YourAppName-app@gmail.com>)
3. During the account registration, you'll be asked to add login verification to the account. Make sure to only add a recovery phone number here. ***Do not turn on two-step login verification.***
4. After successfully registering a new Gmail account, logout of Google.
5. Navigate to <https://play.google.com/apps/publish/> and login with your existing Google Play developer account.\
   ***Note: If you're asked to register as a Google Play developer, please restart from step 3.***
6. After logging in to the Google Play developer console, go to Settings -> Users & permissions.
7. Click the "Invite new user" button in the top-right corner of the screen.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111275922/original/6LvBNhTz83NvXPr551kOHWWx5lO9Z_BW2w.png?1654689439" alt=""><figcaption></figcaption></figure>
8. When prompted for an email address, enter the email address you've created in step 2, and give the user Administrator rights.<br>

   <figure><img src="https://s3-eu-central-1.amazonaws.com/euc-cdn.freshdesk.com/data/helpdesk/attachments/production/80111275919/original/7Diw5k12-K_Psl9OY2rM5OJfe4wkkLa06A.png?1654689439" alt=""><figcaption></figcaption></figure>
9. Logout of the Google Play developer console.
10. Navigate to [https://gmail.com](https://gmail.com/) and login with the new account created in step 2.
11. Open and accept the invitation mail you've sent yourself in step 7.

After completing the steps above, you've created a new user in your Google Play developer console. You will be able to use the email address and password of this new user to publish your app in AppMachine.

<br>


# What if my app is suspended by Google?

In this article we share the steps you can follow if your app is suspended by Google.

If your app is suspended by Google, you will have received an email from Google containing the reason for the suspension. Read this email to determine what needs to be changed. If you're not sure how to resolve the issue, forward the email to <support@appmachine.com> and ask for assistance.

If you wish to appeal to the suspension you can do so by filling out the app appeal form on the following page: <https://support.google.com/googleplay/android-developer/contact/appappeals>

If you wish to re-submit your app to the Google Play Store as a new app, please let us know. A technical re-configuration of your app is required in order to be able to do this. Please note that it is likely that the app will be suspended again if you re-submit it without making any changes, and that multiple app suspensions may cause your Google Play developer account to be terminated.

Additionally, if you wish for us to re-submit your app while another version of your app is already suspended, a name change of the app will be required.


# Google Analytics

This section contains information about Google Analytics and the various services it has to offer, and how you can integrate these services into your AppMachine app.

### What is Google Analytics?

Google Analytics is a platform that collects data from your websites and apps to create reports that provide insights into your business.

### How is Google Analytics used in AppMachine?

AppMachine apps offer the ability to natively integrate Google Analytics. The integration is done via Firebase, and is available for both Android and iOS app versions.

If your app currently does not have an integration with Google Analytics yet, then it is important to note that activating Google Analytics for the app will require a new store version of your app to be submitted to the app stores and that only this new app version will be able to track app activity.&#x20;

**It is not possible to track app activity of app versions that were submitted prior to completing the Google Analytics integration.**

### How to integrate Google Analytics into your live app(s)?

Integrating Google Analytics into your live app version(s) is a fairly simple process consisting of the following actions:

* Start the Firebase Setup in AppMachine.
* Enable Google Analytics in your Firebase project.
* Register your app(s) in your Firebase project.
* Complete the Firebase Setup in AppMachine.
* Update your app(s) with a new store version.

The steps for each of the above actions vary per platform. You'll be able to find the exact steps for each platform in the following articles:

* [Setup Google Analytics for your iOS app.](/app-details/google-analytics/setup-ios-analytics)
* [Setup Google Analytics for your Android app.](/app-details/google-analytics/setup-android-analytics)


# Google Analytics setup overview

There are two likely scenario's in which you'll probably find yourself if you haven't enabled Google Analytics for your Flutter app yet;&#x20;

1. You're building a new app that has no Firebase configuration yet.&#x20;
2. You have an existing AppMachine app that already has a Firebase project that is used to send push messages to your Android users.&#x20;

**Make sure you execute the steps from the correct scenario to prevent any duplicate Firebase projects or other issues.**\
\
In this article I'll quickly explain what steps to take in the scenario's mentioned above. Most steps are discussed in more detail in separate articles if more info is required.

### Scenario 1; No Firebase configuration / New app

1. Run through the Firebase setup as shown in the [articles here](/app-details/firebase/create-firebase-project).&#x20;
2. Set up the Android and iOS configs in Firebase by clicking on the "View Certificates and API Keys" option on the Publish page. Do this for both Apple and Google on the Publish page of your app:\
   ![](/files/77WcKAnxCZcMRGxHaGr2)\
   On the Certificates/API Keys page you'll want to select the option to add a Firebase certificate. Follow the instructions and remember that you can always refer back to the [Firebase articles](/app-details/firebase).&#x20;
3. Navigate to the Integrations page from the left side menu: \
   ![](/files/qjpQRf03qnsfrXVTDToJ)\
   If you're not seeing this new menu type, you may need to go back to the Publish page of your app as this will load the new interface.&#x20;
4. Enable the Firebase Analytics integration on this page.&#x20;
5. Publish your app

### Scenario 2; Existing Firebase configuration / Existing app

If you have an AppMachine app that is already published, you'll also have a Firebase configuration for Android push messaging. You'll be using the Firebase project for analytics as well.&#x20;

1. Start with the steps from the following article on [how to enable Google Analytics](/app-details/firebase/enable-google-analytics) in your Firebase project.&#x20;
2. Set up the iOS config in Firebase by clicking on the "View Certificates and API Keys" option on the Publish page. In this scenario you only have to do this for Apple:\
   ![](/files/77WcKAnxCZcMRGxHaGr2)\
   On the Certificates/API Keys page you'll want to select the option to add a Firebase certificate. Follow the instructions and remember that you can always refer back to the [Firebase articles](/app-details/firebase/register-ios-app).&#x20;
3. Navigate to the Integrations page from the left side menu: \
   ![](/files/qjpQRf03qnsfrXVTDToJ)\
   If you're not seeing this new menu type, you may need to go back to the Publish page of your app as this will load the new interface.&#x20;
4. Enable the Firebase Analytics integration on this page.&#x20;
5. A store update is required to push the new changes to your app. Force a store update by enabling the option in the Publish wizard:\
   ![](/files/7Lli7HJld1WXt7I2RP96)<br>


# Setup iOS analytics

This article explains how to setup Google Analytics for your iOS app.

### How to add Google Analytics to your iOS app

1. **Navigate** to the **publish page** of your app in AppMachine.
2. **Open** the **Certificates and API Keys page** via the dropdown menu in the App Store section.<br>

   <figure><img src="/files/gdciwQgcfwPG8Sbgf9o2" alt=""><figcaption><p>Publish page - Apple App Store section</p></figcaption></figure>
3. On the Certificates and API Keys page, **click Add Certificate** in the Firebase Certificates section.<br>

   <figure><img src="/files/PtBHt0TNZOBmnQ1ASORS" alt=""><figcaption><p>Certificates and API Keys page</p></figcaption></figure>
4. **Copy the Bundle ID** and follow the steps in [this article](/app-details/firebase/register-ios-app) to register your iOS app in Firebase.<br>

   <figure><img src="/files/dg4bzFpcflfbhm5laPIe" alt=""><figcaption><p>Setup Firebase for iOS - Register iOS app</p></figcaption></figure>
5. **Click Next** and **upload the GoogleServices-info.plist file** that you've downloaded during the registration of your iOS app in Firebase.<br>

   <figure><img src="/files/wzlsEUmNd8uealyZIUaK" alt=""><figcaption><p>Setup Firebase for iOS - Upload GoogleService-Info.plist file</p></figcaption></figure>
6. **Click Upload** to complete the Google Analytics setup of your iOS app.

**Note: A store update of your iOS app is required before you'll be able to gather app analytics.**


# Setup Android analytics

This article explains how to setup Google Analytics for your Android app.

In Android apps, the Firebase platform is used for Google Analytics as well as Push Notifications. Because Push Notifications is a core feature, the Firebase setup for Android apps is performed during the Android app setup. [Learn more..](/share-your-app/google-play/setup-your-android-app)


# Inviting a new Google Analytics user

This article explains how to invite a new user to your Google Analytics project.

When you enable Google Analytics for your Firebase project, a Google Analytics project will automatically be created on your Google Analytics account. Although Firebase shows some of the analytics available in Google Analytics, the full set of collected app analytics have to be viewed within the Google Analytics dashboard itself. Since Firebase and Google Analytics are separate products, users that have access to your Firebase project do not also automatically have access to the associated Google Analytics project.&#x20;

The issue presented above can be resolved by inviting users to the Google Analytics project itself. This can be done via the following steps:

1. Login on <https://analytics.google.com/>.
2. Open the analytics project to which you want to invite a new user via the navigation bar at the top of the page.
3. In the side menu, press the Settings icon in the bottom-left corner of the screen.
4. Click Account Access Management.
5. Click the + button in the top-right corner of the screen to add a new user.
6. Enter the users' details, set the rights, and click Add to complete the process.

<figure><img src="/files/AThrzdItKkRlfv4ejv64" alt=""><figcaption><p>Invite a new Google Analytics user</p></figcaption></figure>

When the user has accepted the invite, they will be able to view the project within their Google Analytics account by logging in to Google Analytics directly.&#x20;

Additionally, users can navigate to the Google Analytics project via the View more in Google Analytics button on the Analytics page in Firebase.

Note that -in most cases- the Google Analytics project is registered to the same account as the owner of the Firebase project. Since these are both Google products, the owner will be able to login to Google Analytics with his regular Google account credentials.


# Firebase

This section contains information about the Firebase platform and the various services it offers, and how these services are used by your AppMachine app.

### What is Firebase?

Firebase is a platform that provides developers with a variety of tools and services which can be used to analyse and extend app functionality. It is built on Google's infrastructure.

### How is Firebase used in AppMachine?

Within AppMachine Firebase is used for:

* Android push notifications via Cloud Messaging.
* App analytics for both iOS and Android via Google Analytics. Learn more..

To be able to understand how these features are combined into your live app, lets first have a quick look at the two main players here.

* **AppMachine app**\
  In the first place we have -of course- the app itself, also called the app runtime. This is the app that you've created in AppMachine which can be installed on your users' devices.<br>
* **Firebase project**\
  The Firebase project is basically the umbrella under which the app's Firebase functionality is nested.&#x20;

#### Firebase services

Within the Firebase project you can enable various services. These services are enabled project-wide, meaning all apps that you add / register in your Firebase project can make use of these services. However, please note that enabling a service within the Firebase project does not automatically mean that the service is supported by the app runtime.

The services that are currently supported by AppMachine apps are Cloud Messaging and Google Analytics. Of these services, Cloud Messaging is used to allow you to send push notifications to your Android app users. Google Analytics is an optional service and can be enabled to track the usage of both your iOS and Android app users.&#x20;

Learn how to:

* [Enable Cloud Messaging](/app-details/firebase/enable-cloud-messaging)
* [Enable Google Analytics](/app-details/firebase/enable-google-analytics)

#### Firebase app registration

Using Firebase services in your AppMachine app requires a two-way street in terms of data-transfer. Firebase needs to know which app to communicate with, and AppMachine needs to know which Firebase project to communicate with. In order to create this digital highway for your app's, you have to register your app within your Firebase project.&#x20;

Registering your app within your Firebase project tells Firebase which app to communicate with, but at this point your app does not yet know how to communicate with Firebase. To solve this, Firebase will provide you with a configuration file (services.json) during the app registration process. This file is added to your app runtime during the publishing process, which tells your app which Firebase project it has to communicate with.

Learn how to:

* [Add an Android app to your Firebase project](/app-details/firebase/register-android-app)
* [Add an iOS app to your Firebase project](/app-details/firebase/register-ios-app)




---

[Next Page](/llms-full.txt/1)

