#[cfg(target_os = "ios")] #[unsafe(no_mangle)] #[unsafe(link_section = "__DATA,__mod_init_func")] pub static INITIALIZER: extern "C" fn() = main; #[cfg(target_os = "ios")] #[unsafe(no_mangle)] pub extern "C" fn main() { let data_path = get_bundle_path().into_os_string().into_string().unwrap(); crate::runtime::update_data_path(&data_path); std::thread::spawn(|| { crate::run_server(true).unwrap(); }); } #[cfg(target_os = "ios")] use objc2_foundation::{NSFileManager, NSSearchPathDirectory, NSSearchPathDomainMask}; #[cfg(target_os = "ios")] pub fn get_bundle_path() -> std::path::PathBuf { unsafe { let manager = NSFileManager::defaultManager(); let application_support = manager.URLsForDirectory_inDomains(NSSearchPathDirectory::ApplicationSupportDirectory, NSSearchPathDomainMask::UserDomainMask); return application_support.to_vec_unchecked()[0].to_file_path().unwrap(); } }