23 lines
1.0 KiB
Objective-C
23 lines
1.0 KiB
Objective-C
//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");
|
|
}
|
|
}
|