Files

23 lines
1.0 KiB
Objective-C
Raw Permalink Normal View History

2026-07-13 13:02:23 +00:00
//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");
}
}