Adds the CXX environment variable when building Android shared libraries
to ensure proper C++ compiler selection for cgo-enabled packages.
Signed-off-by: CoyAce <AkeyCoy@gmail.com>
Previously, it was impossible to identify if a specific app
was installed on the user device. It was also impossible to
launch a external app from Gio using Intent.
Now, you can use `-queries` with a comma separed package names,
like `com.another.app`. That allows you to launch Intent to
`com.another.app`.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
This pach fixes a total of 6 issues caused by gogio,
when uploading .ipa to Apple Connect/Apple Store.
1. Asset validation failed (90474), caused by not set
"UIInterfaceOrientationPortraitUpside" in plist.
2. Asset validation failed (90482), the executable contains
bitcode. Now, gogio will use "bitcode_strip" to remove such
bitcode.
3. Asset validation failed (90060), the version can only have
three non-negative numbers. Using values from semVer is
invalid (such as 1.2.3.4), it must be either 1.2.3 or
1.2.34. Now, gogio uses the later one.
4. Asset validation failed (90476), supporting multitask on
iPad requires UILaunchScreen. That is tricky to solve, instead
gogio will NOT support multitask on iPad.
5. Asset validation failed (90208), version mismatch between
plist and binary. Now, gogio will use compile flags to set
the version AND will use the proper minSdk on plist.
6. Asset validation failed (90023), missing 152x152 icon for
iPad. Now, gogio will create such icon.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This patch enables `-signkey` to load provisioning profiles.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Previously, Gio crashes on 16KB page-size enable version of
Android 15. Also, Google Play will require 16KB compatible
apps by November 2025.
This patch changes the page-size of C/CGO to 64KB, which is
compatible with 4KB, 16KB and 64KB. That is also the same
value used by Golang Compiler itself.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Using buildmode exe directly is faster to build, avoids the runMain
linker mode hack, and leaves more control to Gio instead of gogio's
synthetic main function.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
As suggested in review, explicitly specifying the version code with
-version major.minor.patch.versioncode provides more flexibility than
the a version code implied from the major, minor, patch fields.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Since Go 1.20 c-shared object files may lack a reference to the resolv
library and it must be added manually to the linking step.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Go 1.16 is already old, and the GOOS detection code fails for me on
Nix:
$ go run gioui.org/cmd/gogio -target ios ../gio-example/kitchen
gogio: go tool dist list failed: go tool dist: FAILED: not a Git repo; must put a VERSION file in $GOROOT
The error message points to a Nix packaging issue, but removing the
fallback is easier to fix.
Signed-off-by: Elias Naur <mail@eliasnaur.com>
Now, it's possible to notarize the app, using -notaryid,
-notarypass and -notaryteamid flags. Those flags are
similar to -signkey and -signpass.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
Previously, gogio creates the `.app` and then generates
the signature.
Now, it will generate the `.app` on the temporary folder,
then move it. It also generates one `.zip` folder, which
will be used in the next patch.
Signed-off-by: inkeliz <inkeliz@inkeliz.com>
Build arguments are passed to the program, which is useful for
platforms where there is no other way to pas them (Android, iOS).
Signed-off-by: Elias Naur <mail@eliasnaur.com>
This commit adds an end to end test for the custom rendering
use-case. I confirmed that the new test failed when custom
rendering frame lifecycle was broken, and succeeds now.
However, the old X11 tests started failing when the new
one started passing. I'm not sure how they interfere with
one another, but I'm out of time to investigate.
Signed-off-by: Chris Waldon <christopher.waldon.dev@gmail.com>
Previously, it was possible to misuse gigio with arguments after the
package, such as `gogio -target android . -o foo.apk`. That cause an
undesired effect, since `-o` is silently ignore by gogio.
Now, any arguments after the package will trigger an error.
Signed-off-by: Inkeliz <inkeliz@inkeliz.com>