ONLINE HELP
 WINDEVWEBDEV AND WINDEV MOBILE

Help / Developing for iOS (iPhone / iPad)
  • Overview
  • Generating the application for MAC
  • Generating the application
  • Content of the generation directory "Project_name.xcode.gen"
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaReports and QueriesUser code (UMC)
WEBDEV
WindowsLinuxPHPWEBDEV - Browser code
WINDEV Mobile
AndroidAndroid Widget iPhone/iPadIOS WidgetApple WatchMac CatalystUniversal Windows 10 App
Others
Stored procedures
Overview
Several steps must be performed to develop an iPhone/iPad application: Caution: Since April 2020, deployment to App Store requires WINDEV Mobile 25.
Generating the application for MAC

Generating the application

To generate the application that must be compiled on MAC:
  1. Click Generation in the quick access buttons. The generation wizard starts.
    Remark: If the current configuration does not correspond to the iOS application, expand the generation icon in the quick access buttons, click "Other generations" and select "Generate the iPhone/iPad application".
  2. In the application generation wizard, specify the general information about the application to create:
    • Application name
    • Company
    • Copyright
    • Bundle ID. This ID is a unique identifier for Apple applications. It is defined and registered on the Apple developer account.
      This identifier will allow you to register your application so that it can be tested and deployed. By default, WINDEV Mobile automatically generates an identifier that meets Apple's development requirements. You can change this ID.
      For more details on this identifier, see the iOS documentation.
  3. Go to the next step.
  4. Specify the path of the different application icons: iPad, iPhone and iPad Retina icons, ...
    Remark: The "Optional icons" button is used to specify the path of additional icons.
  5. Go to the next step.
  6. Choose the launch image management mode.
    There are two launch image management modes.
    You can:
    • Use the new management system: allows resizing the application (Split View).
    • Use the former management system: supports all the iOS versions but does not allow you to resize the application (Split View).
  7. Go to the next step.
  8. If you have chosen to use:
    • the new launch image management system, specify:
      • the elements that will be displayed in the splash screen:
        • the application name.
        • the application version.
        • the message displayed when loading the application.
        • if necessary, the image of the application logo in the splash screen.
        • whether an animation will be used when loading the splash screen.
        • the background image of the splash screen if necessary. In this case, specify the background image and its display mode.
          You can retrieve the background image and its display mode before starting the wizard, by clicking "Reinitialize the background image".
      • the style of splash screen: the color of captions and the background color.
    • the former launch image management system: specify the path of the different images used to start the application for iPhone then for iPad. These images are in PNG format. Default images are automatically created for your application.
    • the two launch image management systems: the steps for choosing the parameters of the new and the former launch image management systems are displayed.
  9. Go to the next step.
  10. Specify the version number of generated application. This format corresponds to a set of 4 numbers separated by dots.
    • The first group of 4 digits corresponds to the number of major changes performed in the application.
    • The second group of 4 digits corresponds to the number of minor changes performed in the application.
    • The third group of 4 digits corresponds to the generation number.
      We advise you to automatically increment this number at each generation. This increment operation is automatically performed if the option "Automatically increment the version at each generation" is checked.
    • The last group of 4 digits corresponds to the number of reviews (branches in the SCM for example).
  11. Go to the next step.
  12. Specify (if necessary) the external libraries to include.
    • These libraries can be system libraries or non-system libraries.
    • These libraries may be required if you have entered native Objective C code that uses specific libraries, for example. For more details, see Using Objective C code.
      Remark: You also have the ability to add an external framework. All you have to do is expand the "Add" button and select "Add an external framework". Then, you have the ability to select the ".framework" directory containing the external library.
  13. Go to the next step.
  14. Specify whether files must be included in the executable. You can include:
    • specific resources.
    • specific images.
    • data files.
  15. Specify the options of the files:
    • If the "Write" option is checked for the files, they will be automatically extracted (e.g., files that must be modified by the application). In this case, specify the application directory into which this file must be extracted ("Documents" directory or "Library" directory).
    • If the "Write" option is unchecked for the files, they can be:
      • used directly (files that will only be read, for example: sound files, image files, etc.). These files are included in the application and will not be extracted. fResourceDir is used to access these files in read-only mode.
      • extracted programmatically with fExtractResource.
        Caution: the iOS system is case-sensitive.
  16. Go to the next step.
  17. If your application contains an HTML control, you must meet the security requirements in an iOS application version 9.0 (and later). By default, HTML controls allow access only to sites that use an HTTPS connection in line with Apple's recommendations. This step is used to:
    • provide the list of domains for which the security can be disabled. You must specify:
      • the domain name (windev.com for example).
      • the minimum TLS version for the HTTPS connections. All the connections greater than or equal to the selected version are allowed. If "Default" is selected, the minimum TLS version depends on the Xcode version.
      • if the non-secure HTTP connection is allowed.
      • whether the subdomains must be included.
    • disable the security for all the domains ("Disable the security for all the domains" option).
  18. Go to the next step.
  19. Specify the configuration options:
    • Split View
      The "Enable resizing (Split View)" option allows the end user to display two windows of two different apps side by side on iPad Air 2.
    • File Sharing
      If the "Enable File Sharing" option is checked, you will be able to get the app files on the PC when synchronization is run.
      For example, if the application contains data files, iTunes will allow you to copy these files. To do so:
      • Connect the mobile device.
      • In iTunes, click "Apps" and choose your application.
      • The list of files is displayed. A simple Drag and Drop allows you to add or retrieve files.
    • Deployment target
      Specify the minimum iOS version required to run the application.
      Remark: The minimum supported version is iOS 11.0.
    • Execution in the background
      This option appears only if GPSFollowMovement and/or BeaconDetectPrecise are used in the application. The option "Allow the GPSFollowMovelent and BeaconDetectPrecise functions to be called when the application is in background." allows geolocation and/or the precise detection of beacons to keep running when the device is in standby.
    • Dynamic Island
      "Include the native files needed to generate Live Activities for the Dynamic Island. Requires Xcode 14.1 or later." indicates that the application should include files required to handle the Dynamic Island. The names of the required structures and files must be specified in the next step of the wizard.
      Caution: If this option is checked, it is necessary to use Xcode 14.1 or later.
      Reminder: Dynamic Island is a way of using the area where the sensors and front camera are located. The notch is part of the screen on iPhone 14 and later models. The code used to handle the Dynamic Island is Swift native code.
    The "Advanced options" button is used to enter specific options for Xcode.
  20. Go to the next step.
  21. The "Signature" step is used to choose the signature mode of your iOS application. For more details, see Signature of iOS applications. Go to the next step.
  22. If your iOS application is published on the App Store, a text must be specified for each feature used. The first time the end user uses any of these features, an authorization window will display this description.
  23. Finish the wizard. A project configuration is created if necessary. The application is generated in the EXE folder of the project directory. The directory containing the sources that will be used on the Mac is named "Project_Name.xcode.gen". This directory must be copied onto the MAC.
    Remark: The generation folder can be opened directly in the file explorer: on the "Home" tab, in the "General" group, expand and select "Browse generation directory".

Content of the generation directory "Project_name.xcode.gen"

The generation directory contains the following elements:
  • A lib directory. This directory contains the WINDEV Mobile framework for iOS with:
    • a libwd*.xcframework folder containing the framework for an iOS application,
    • an extwd*.xcframework folder containing the framework for a widget up to iOS 13,
    • a widwd*.xcframework folder containing the framework for a widget starting with iOS 14.
  • A directory named like the project containing:
    • The .WDL library of the project objects. This library is identical to the library generated in WINDEV or WEBDEV.
    • Several files required by the xCode compiler on the MAC (main.m, WDAppDelegate.h, WDAppDelegate.mm, Info.plist).
  • A folder named <Project name>.xcodeproj. In this folder, the project.pbxproj file corresponds to the project that must be opened in Xcode on the MAC.
To perform the operations in Xcode, see Compiling a WINDEV Mobile project in Xcode.
Related Examples:
WM Click on Chart Cross-platform examples (WINDEV Mobile): WM Click on Chart
[ + ] The "WM Click on Chart" example proposes a solution for pulling out the sections of a Pie chart via a simple click.
This example includes a control template named "TPLC_PullOutChart". This control template is used to pull out the chart sections via a simple click.
To include this feature in another application, all you have to do is import the "TPLC_PullOutChart" template.
WM Managing Contacts Cross-platform examples (WINDEV Mobile): WM Managing Contacts
[ + ] This example presents the management of contacts for Android et iOS.
It is used o:
- list the contacts found on the phone
- call the contacts
- send SMSs to the contacts
- ...
WM Attendance Cross-platform examples (WINDEV Mobile): WM Attendance
[ + ] This application is an attendance manager. It allows you to list the persons who attended a meeting.
The database is filled beforehand with the list of registered persons.
You have the ability to find a person by using his/her name.
The following topics are presented in this example:
1/ using a browsing looper based on a query
2/ using a database in HFSQL format.
WM RSS Reader Cross-platform examples (WINDEV Mobile): WM RSS Reader
[ + ] This example is a reader of RSS stream for the Android and iOS devices. This application allows you to follow the features of your favorite streams. This reader supports the images containing a post as well as the links toward an external site. Furthermore, it also included a system for managing the favorites.
WM Password Cross-platform examples (WINDEV Mobile): WM Password
[ + ] Web sites, bank accounts, ... passwords are everywhere in out life. With WM Password, no need to store all the passwords of your different accounts. The application stores all your passwords in a secure way. WM Password can also generate secure passwords for you.
WM Expense Account Cross-platform examples (WINDEV Mobile): WM Expense Account
[ + ] This example allows you to manage your fees.

Let's see the main features of this application:
- The input of invoices
- Management of foreign currencies
- Inclusion of photo document for the invoices
- Ability to email the expense account
- Ability to track the expense accounts
- ...
WM Stocks Cross-platform examples (WINDEV Mobile): WM Stocks
[ + ] This application is used to perform stocktaking and to save the results in a database.
The example is used to create entries/exits in the stock, by directly scanning the bar code of products.
It is optimized to be run on tablets.
WM System Cross-platform examples (WINDEV Mobile): WM System
[ + ] This application is an example of some of the features of WINDEV Mobile available for Android/iOS.
The following system functions are used:
- NFC
- Multimedia control
- Brightness
- Volume
- Wi-Fi
- Bluetooth
- Toast
- Compass
- Accelerometer
- Camera control
- LED
- Vibration
- Notifications
- Drawing functions
- Internet
Minimum version required
  • Version 17
Comments
Click [Add] to post a comment

Last update: 09/18/2023

Send a report | Local help