NeoMAD 4.7.3 release notes

July 30, 2020

Androidx

The NeoMAD API is now implemented using androidx. This is an internal change and there is nothing to do in existed NeoMAD projects. Just build with this new version to be compatible with androidx.

Pod support for iOS specific code

NeoMAD specific code can now rely on pods for iOS. Configure your Podfile and declare it in the URS to use it in the specific code.

Additional run script phases or resource files can be added in the generated iOS project to fullfill some pods prerequisites. See below to learn how to do so.

Pods

Pods can be added in project to use in specific code. To add pods in the project just create the Podfile. Use the <mainclassname> declared in the URS as the target in the Podfile.

Once the Podfile created, just add the <pod> tag in the URS with the path to the Podfile. NeoMAD will download and install the pods at the project generation steps using the CocoaPods command configured on the Mac.

<urs>
    [...]
    <specific>
        <ios>
            <pod path="path/to/Podfile"/>
        </ios>
    </specific>
</urs>

Run Script (Xcode)

Sometimes to use some libraries or pods, additional Run Script Build Phase may be required when building with Xcode. Run Script Build Phase can be added with NeoMAD by the URS. The keys are the same as for an Xcode project.

<urs>
    [...]
    <specific>
        <ios>
            <runScriptPhase name="Script name">
                <shellScript>shell/command</shellScript>
                <shellPath>/bin/sh</shellPath>
                <dependencyFile>path/to/dependency/file</dependencyFile>
                <inputPaths>
                    <path>path/to/input/path/1</path>
                    <path>path/to/input/path/2</path>
                </inputPaths>
                <inputFileListPaths>
                    <path>path/to/input/inputFileListPaths</path>
                </inputFileListPaths>
                <outputPaths>
                    <path>path/to/output/path/1</path>
                </outputPaths>
                <outputFileListPaths>
                    <path>path/to/output/outputFileListPaths</path>
                </outputFileListPaths>
                <showEnvVarsInLog>false</showEnvVarsInLog>
                <runOnlyForDeploymentPostProcessing>false</runOnlyForDeploymentPostProcessing>
            </runScriptPhase>
        </ios>
    </specific>
</urs>

Resource files

Sometimes to use some libraries or pods, specific configuration files should be included in Xcode. They are not classical NeoMAD resources files. They are just files to add in the Xcode project.

Such files can be added via the urs <specific><ios><file> tag.

<urs>
    [...]
    <specific>
        <ios>
            <file path="path/to/my/resource.file" group="ProjectGroup" build="false"/>
        </ios>
    </specific>
</urs>
  • path (mandatory): path to the file in the input project
  • group (optional): group where the file must be copied in the Xcode project. If the group does not exist, it will be created. Default is the root group of the project.
  • build (optional): does the file need to be added to the build files of the project (default false).

Fixes

  • Fix iOS background services that did not work in iOS 13