| 12345678910111213141516171819202122 |
- //go:build ios
- // Minimal bootstrap: delegate comes from Go archive (WailsAppDelegate)
- #import <UIKit/UIKit.h>
- #include <stdio.h>
- int main(int argc, char * argv[]) {
- @autoreleasepool {
- // Disable buffering so stdout/stderr from Go log.Printf flush immediately
- setvbuf(stdout, NULL, _IONBF, 0);
- setvbuf(stderr, NULL, _IONBF, 0);
- // Call UIApplicationMain IMMEDIATELY and start NOTHING else here. Do not
- // start the Go runtime yet: starting it concurrently with UIApplicationMain
- // intermittently corrupts the FrontBoard launch handshake on a physical
- // device, so the app delegate's didFinishLaunchingWithOptions never fires
- // (blank cold launch / 0x8BADF00D). Instead, the WailsAppDelegate (provided
- // by the Go archive) starts the Go runtime itself from
- // didFinishLaunchingWithOptions — i.e. only AFTER UIKit has delivered the
- // launch — so the runtime never races the launch handshake.
- return UIApplicationMain(argc, argv, nil, @"WailsAppDelegate");
- }
- }
|