nux

command
v0.1.1 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Aug 13, 2022 License: BSD-3-Clause Imports: 40 Imported by: 0

Documentation

Overview

Gomobile is a tool for building and running mobile apps written in Go.

To install:

$ go install nuxui.org/nuxui/cmd/nux@latest
$ gomobile init

At least Go 1.18 is required. For detailed instructions, see https://golang.org/wiki/Mobile.

Usage:

nux command [arguments]

Commands:

bind        build a library for Android and iOS
build       compile android APK and iOS app
clean       remove object files and cached gomobile files
init        build OpenAL for Android
install     compile android APK and install on device
version     print version

Use 'gomobile help [command]' for more information about that command.

Build a library for Android and iOS

Usage:

gomobile bind [-target android|ios|iossimulator|macos|maccatalyst] [-bootclasspath <path>] [-classpath <path>] [-o output] [build flags] [package]

Bind generates language bindings for the package named by the import path, and compiles a library for the named target system.

The -target flag takes either android (the default), or one or more comma-delimited Apple platforms (ios, iossimulator, macos, maccatalyst).

For -target android, the bind command produces an AAR (Android ARchive) file that archives the precompiled Java API stub classes, the compiled shared libraries, and all asset files in the /assets subdirectory under the package directory. The output is named '<package_name>.aar' by default. This AAR file is commonly used for binary distribution of an Android library project and most Android IDEs support AAR import. For example, in Android Studio (1.2+), an AAR file can be imported using the module import wizard (File > New > New Module > Import .JAR or .AAR package), and setting it as a new dependency (File > Project Structure > Dependencies). This requires 'javac' (version 1.7+) and Android SDK (API level 15 or newer) to build the library for Android. The environment variable ANDROID_HOME must be set to the path to Android SDK. Use the -javapkg flag to specify the Java package prefix for the generated classes.

By default, -target=android builds shared libraries for all supported instruction sets (arm, arm64, 386, amd64). A subset of instruction sets can be selected by specifying target type with the architecture name. E.g., -target=android/arm,android/386.

For Apple -target platforms, nux must be run on an OS X machine with Xcode installed. The generated Objective-C types can be prefixed with the -prefix flag.

For -target android, the -bootclasspath and -classpath flags are used to control the bootstrap classpath and the classpath for Go wrappers to Java classes.

The -v flag provides verbose output, including the list of packages built.

The build flags -a, -n, -x, -gcflags, -ldflags, -tags, -trimpath, and -work are shared with the build command. For documentation, see 'go help build'.

Compile android APK and iOS app

Usage:

gomobile build [-target android|ios|iossimulator|macos|maccatalyst] [-o output] [-bundleid bundleID] [build flags] [package]

Build compiles and encodes the app named by the import path.

The named package must define a main function.

The -target flag takes either android (the default), or one or more comma-delimited Apple platforms (ios, iossimulator, macos, maccatalyst).

For -target android, if an AndroidManifest.xml is defined in the package directory, it is added to the APK output. Otherwise, a default manifest is generated. By default, this builds a fat APK for all supported instruction sets (arm, 386, amd64, arm64). A subset of instruction sets can be selected by specifying target type with the architecture name. E.g. -target=android/arm,android/386.

For Apple -target platforms, nux must be run on an OS X machine with Xcode installed.

By default, -target ios will generate an XCFramework for both ios and iossimulator. Multiple Apple targets can be specified, creating a "fat" XCFramework with each slice. To generate a fat XCFramework that supports iOS, macOS, and macCatalyst for all supportec architectures (amd64 and arm64), specify -target ios,macos,maccatalyst. A subset of instruction sets can be selectged by specifying the platform with an architecture name. E.g. -target=ios/arm64,maccatalyst/arm64.

If the package directory contains an assets subdirectory, its contents are copied into the output.

Flag -iosversion sets the minimal version of the iOS SDK to compile against. The default version is 13.0.

Flag -androidapi sets the Android API version to compile against. The default and minimum is 15.

The -bundleid flag is required for -target ios and sets the bundle ID to use with the app.

The -o flag specifies the output file name. If not specified, the output file name depends on the package built.

The -v flag provides verbose output, including the list of packages built.

The build flags -a, -i, -n, -x, -gcflags, -ldflags, -tags, -trimpath, and -work are shared with the build command. For documentation, see 'go help build'.

Remove object files and cached gomobile files

Usage:

gomobile clean

Clean removes object files and cached NDK files downloaded by gomobile init

Build OpenAL for Android

Usage:

gomobile init [-openal dir]

If a OpenAL source directory is specified with -openal, init will build an Android version of OpenAL for use with gomobile build and gomobile install.

Compile android APK and install on device

Usage:

gomobile install [-target android] [build flags] [package]

Install compiles and installs the app named by the import path on the attached mobile device.

Only -target android is supported. The 'adb' tool must be on the PATH.

The build flags -a, -i, -n, -x, -gcflags, -ldflags, -tags, -trimpath, and -work are shared with the build command. For documentation, see 'go help build'.

Print version

Usage:

gomobile version

Version prints versions of the gomobile binary and tools

Directories

Path Synopsis
internal
binres
Package binres implements encoding and decoding of android binary resources.
Package binres implements encoding and decoding of android binary resources.
importers
The importers package uses go/ast to analyze Go packages or Go files and collect references to types whose package has a package prefix.
The importers package uses go/ast to analyze Go packages or Go files and collect references to types whose package has a package prefix.
importers/java
The java package takes the result of an AST traversal by the importers package and queries the java command for the type information for the referenced Java classes and interfaces.
The java package takes the result of an AST traversal by the importers package and queries the java command for the type information for the referenced Java classes and interfaces.
importers/objc
The objc package takes the result of an AST traversal by the importers package and uses the clang command to dump the type information for the referenced ObjC classes and protocols.
The objc package takes the result of an AST traversal by the importers package and uses the clang command to dump the type information for the referenced ObjC classes and protocols.
mobileinit
Package mobileinit contains common initialization logic for mobile platforms that is relevant to both all-Go apps and gobind-based apps.
Package mobileinit contains common initialization logic for mobile platforms that is relevant to both all-Go apps and gobind-based apps.
sdkpath
Package sdkpath provides functions for locating the Android SDK.
Package sdkpath provides functions for locating the Android SDK.

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL