As of January 2017, Apple Corp. requires that all iOS apps make use of App Transport Security (ATS), which implements the https protocol when communicating with internet resources. Introduced in iOS 9, ATS enforces secure connections between internet resources (such as the backend server) and an iOS app, ensuring that internet communications via the iOS platform conform secure connection best practices. Doing so lessens the likelihood of accidentally disclosing sensitive information either directly through an app or through a library consuming data.
Quantum Visualizer supports ATS and assumes that 1) your iOS applications make use of https, and 2) your communication through higher-level APIs is encrypted using TLS version 1.2 with forward secrecy. As a workaround to this requirement, if your app needs to make a request to an insecure domain, you have to specify this domain in your app's info.plist file.
For more information, see the Apple Developer site.
Automatically Modify info.plist with Custom Key Value Pairs
When you build an app for the iOS platform in Quantum Visualizer, Xcode generates a build properties file called info.plist. By modifying this file, you can customize the properties of the build, which are reflected in the app the next time you build it. Modifications to info.plist take priority over whatever properties are set by Quantum Visualizer.
If your app requires that the info.plist file be configured with sets of key value pairs of native SDK or custom-defined entries, you can automate this customization using a json file. The json file contains the key value pairs that you want added to info.plist, and during the building of the app, this json file is incorporated into the kar file. When the kar file is extracted, iOS incorporates the key value pairs in the json fie into info.plist.
To automatically modify info.plist with custom key value pairs, do the following:
Create a json file with the following file name: infoplist_configuration.json
Place the json file in the following Quantum Visualizer project folder: <WorkspaceName>\<ProjectName>\resources\common
Edit the json file, adding the key value pairs that you want automatically incorporated into the info.plist file. Save the file and close it.
In Quantum Visualizer, build the app.
The json file is incorporated into the kar file. When the kar file is extracted, iOS incorporates the key value pairs in the json fie into info.plist.
Automatically Add Required System Frameworks to the XCode Project
When you use FFIs with Quantum Visualizer, if the FFI has dependencies on any system frameworks, you can add those system frameworks to your XCode project. You can do so by configuring a kony_frameworks.json file.
To add system frameworks to the XCode project, do the following:
Navigate to the common folder in your Quantum Visualizer project. For example, <Workspace Name>/<Project Name>/resources/common
In the folder, create a JSON file and name it kony_frameworks.json.
Open the JSON file in any text editor.
Add a JSON object with the key as systemframeworks and value as an array containing all the system frameworks that are dependencies for FFI’s. For example,
In Quantum Visualizer, build the app. The JSON file is incorporated into the KAR file. When the KAR file is extracted, system frameworks provided in the JSON is added to the XCode project.
Build an App
To build an app with new or different settings, do the following:
On the Build menu, click Build and Publish Native.
In the Build Generation dialog box, select the channels and platforms for which you want to build your app. For example, you may want to build a native type of app for Mobile (phone) devices and Tablet devices for the iOS and Android platforms. For more information about native and SPA apps, see Types of Applications.
Select the build mode, either debug or release.
Debug mode. To help you identify and fix errors, Quantum Visualizer emits the complete symbolic debug information . To lessen the amount of time necessary to complete the build, the build is not optimized for code execution, so it may tend to execute slower than a build optimized for release. Also, the inclusion of the symbolic debug information causes the final executable to be larger than a release build.
Release mode.Quantum Visualizer optimizes the build for execution, requiring more time to generate the build. It also does not emit the complete symbolic debug information, making the final executable smaller than a debug build.
Important: If you want to build your iOS app with multiple workspaces, you must select the Support Multiple iOS Workspaces from the Build section (Edit > Preferences > Build). If this option is not checked, the workspace is replaced for every build. When this option is checked, a separate workspace is created for each application. It will reduce the time and effort required for building applications every time you switch from one application to another.