[{"data":1,"prerenderedAt":1582},["ShallowReactive",2],{"navigation_docs_de":3,"-de-developers-build-ios":272,"-de-developers-build-ios-surround":1577},[4,38,110,190,232],{"title":5,"icon":6,"path":7,"stem":8,"children":9,"page":-1},"Erste Schritte","i-lucide-rocket","\u002Fde\u002Fgetting-started","de\u002F1.getting-started\u002Findex",[10,13,18,23,28,33],{"title":11,"path":7,"stem":8,"icon":12},"Übersicht","i-lucide-layout-grid",{"title":14,"path":15,"stem":16,"icon":17},"Installation","\u002Fde\u002Fgetting-started\u002Finstallation","de\u002F1.getting-started\u002F01.installation","i-lucide-download",{"title":19,"path":20,"stem":21,"icon":22},"Anmelden","\u002Fde\u002Fgetting-started\u002Fsign-in","de\u002F1.getting-started\u002F02.sign-in","i-lucide-log-in",{"title":24,"path":25,"stem":26,"icon":27},"Deine erste Instanz","\u002Fde\u002Fgetting-started\u002Ffirst-instance","de\u002F1.getting-started\u002F03.first-instance","i-lucide-play",{"title":29,"path":30,"stem":31,"icon":32},"Android: APK installieren","\u002Fde\u002Fgetting-started\u002Fandroid","de\u002F1.getting-started\u002F04.android","i-lucide-smartphone",{"title":34,"path":35,"stem":36,"icon":37},"iPhone\u002FiPad: mit AltStore\u002FSideStore installieren","\u002Fde\u002Fgetting-started\u002Fiphone-ipad","de\u002F1.getting-started\u002F05.iphone-ipad","i-lucide-tablet-smartphone",{"title":39,"icon":40,"path":41,"stem":42,"children":43,"page":-1},"Launcher","i-lucide-app-window","\u002Fde\u002Flauncher","de\u002F2.launcher\u002Findex",[44,45,50,55,60,65,70,75,80,85,90,95,100,105],{"title":11,"path":41,"stem":42,"icon":12},{"title":46,"path":47,"stem":48,"icon":49},"Instanzen","\u002Fde\u002Flauncher\u002Finstances","de\u002F2.launcher\u002F01.instances","i-lucide-boxes",{"title":51,"path":52,"stem":53,"icon":54},"Modloader","\u002Fde\u002Flauncher\u002Fmod-loaders","de\u002F2.launcher\u002F02.mod-loaders","i-lucide-layers",{"title":56,"path":57,"stem":58,"icon":59},"Mods","\u002Fde\u002Flauncher\u002Fmods","de\u002F2.launcher\u002F03.mods","i-lucide-puzzle",{"title":61,"path":62,"stem":63,"icon":64},"Modpacks","\u002Fde\u002Flauncher\u002Fmodpacks","de\u002F2.launcher\u002F04.modpacks","i-lucide-package",{"title":66,"path":67,"stem":68,"icon":69},"Modpacks teilen","\u002Fde\u002Flauncher\u002Fshare-modpacks","de\u002F2.launcher\u002F05.share-modpacks","i-lucide-share-2",{"title":71,"path":72,"stem":73,"icon":74},"Aus anderen Launchern importieren","\u002Fde\u002Flauncher\u002Fimport","de\u002F2.launcher\u002F06.import","i-lucide-folder-input",{"title":76,"path":77,"stem":78,"icon":79},"Clips & Screenshots","\u002Fde\u002Flauncher\u002Fclips","de\u002F2.launcher\u002F07.clips","i-lucide-clapperboard",{"title":81,"path":82,"stem":83,"icon":84},"Freunde & Chat","\u002Fde\u002Flauncher\u002Fsocial","de\u002F2.launcher\u002F08.social","i-lucide-messages-square",{"title":86,"path":87,"stem":88,"icon":89},"Erfolge","\u002Fde\u002Flauncher\u002Fachievements","de\u002F2.launcher\u002F09.achievements","i-lucide-trophy",{"title":91,"path":92,"stem":93,"icon":94},"Skins & Umhänge","\u002Fde\u002Flauncher\u002Fwardrobe","de\u002F2.launcher\u002F10.wardrobe","i-lucide-shirt",{"title":96,"path":97,"stem":98,"icon":99},"Einstellungen","\u002Fde\u002Flauncher\u002Fsettings","de\u002F2.launcher\u002F11.settings","i-lucide-settings",{"title":101,"path":102,"stem":103,"icon":104},"Updates","\u002Fde\u002Flauncher\u002Fupdates","de\u002F2.launcher\u002F12.updates","i-lucide-refresh-cw",{"title":106,"path":107,"stem":108,"icon":109},"Server","\u002Fde\u002Flauncher\u002Fservers","de\u002F2.launcher\u002F13.servers","i-lucide-server",{"title":111,"icon":112,"path":113,"stem":114,"children":115,"page":-1},"TRS Client","i-lucide-blocks","\u002Fde\u002Fclient","de\u002F3.client\u002Findex",[116,117,121,126,131,136,141,146,151,156,160,165,170,175,180,185],{"title":11,"path":113,"stem":114,"icon":12},{"title":118,"path":119,"stem":120,"icon":112},"Was ist der TRS Client?","\u002Fde\u002Fclient\u002Foverview","de\u002F3.client\u002F01.overview",{"title":122,"path":123,"stem":124,"icon":125},"TRS-Menü und HUD-Editor","\u002Fde\u002Fclient\u002Fmenu-and-hud-editor","de\u002F3.client\u002F02.menu-and-hud-editor","i-lucide-layout-dashboard",{"title":127,"path":128,"stem":129,"icon":130},"Leistung und FPS","\u002Fde\u002Fclient\u002Fperformance","de\u002F3.client\u002F03.performance","i-lucide-gauge",{"title":132,"path":133,"stem":134,"icon":135},"PvP-Module","\u002Fde\u002Fclient\u002Fpvp","de\u002F3.client\u002F04.pvp","i-lucide-swords",{"title":137,"path":138,"stem":139,"icon":140},"Zoom, Freelook und Toggle-Sprint","\u002Fde\u002Fclient\u002Fzoom-and-freelook","de\u002F3.client\u002F05.zoom-and-freelook","i-lucide-zoom-in",{"title":142,"path":143,"stem":144,"icon":145},"Minimap, Wegpunkte und Weltkarte","\u002Fde\u002Fclient\u002Fminimap-and-world-map","de\u002F3.client\u002F06.minimap-and-world-map","i-lucide-map",{"title":147,"path":148,"stem":149,"icon":150},"Redstone-Werkzeuge","\u002Fde\u002Fclient\u002Fredstone-tools","de\u002F3.client\u002F07.redstone-tools","i-lucide-zap",{"title":152,"path":153,"stem":154,"icon":155},"Schaltungs-Bibliothek","\u002Fde\u002Fclient\u002Fcircuit-library","de\u002F3.client\u002F08.circuit-library","i-lucide-cpu",{"title":157,"path":158,"stem":159,"icon":94},"Emotes, Umhänge, Garderobe und Konten","\u002Fde\u002Fclient\u002Femotes-and-capes","de\u002F3.client\u002F09.emotes-and-capes",{"title":161,"path":162,"stem":163,"icon":164},"Screenshots, Clips und Panoramen","\u002Fde\u002Fclient\u002Fscreenshots-and-clips","de\u002F3.client\u002F10.screenshots-and-clips","i-lucide-camera",{"title":166,"path":167,"stem":168,"icon":169},"Welt-Notizen","\u002Fde\u002Fclient\u002Fnotes","de\u002F3.client\u002F11.notes","i-lucide-notebook-pen",{"title":171,"path":172,"stem":173,"icon":174},"Chat und Komfort","\u002Fde\u002Fclient\u002Fchat-and-comfort","de\u002F3.client\u002F12.chat-and-comfort","i-lucide-message-square",{"title":176,"path":177,"stem":178,"icon":179},"Sozial im Spiel","\u002Fde\u002Fclient\u002Fsocial-in-game","de\u002F3.client\u002F13.social-in-game","i-lucide-users",{"title":181,"path":182,"stem":183,"icon":184},"Standard-Tasten","\u002Fde\u002Fclient\u002Fkeybinds","de\u002F3.client\u002F14.keybinds","i-lucide-keyboard",{"title":186,"path":187,"stem":188,"icon":189},"Welt für Freunde hosten","\u002Fde\u002Fclient\u002Fworld-hosting","de\u002F3.client\u002F15.world-hosting","i-lucide-globe",{"title":191,"icon":192,"path":193,"stem":194,"children":195,"page":-1},"Hilfe","i-lucide-life-buoy","\u002Fde\u002Fhelp","de\u002F4.help\u002Findex",[196,197,202,207,212,217,222,227],{"title":11,"path":193,"stem":194,"icon":12},{"title":198,"path":199,"stem":200,"icon":201},"Absturz-Helfer","\u002Fde\u002Fhelp\u002Fcrash-helper","de\u002F4.help\u002F01.crash-helper","i-lucide-heart-pulse",{"title":203,"path":204,"stem":205,"icon":206},"Häufige Probleme","\u002Fde\u002Fhelp\u002Fcommon-problems","de\u002F4.help\u002F02.common-problems","i-lucide-circle-help",{"title":208,"path":209,"stem":210,"icon":211},"Java & Arbeitsspeicher","\u002Fde\u002Fhelp\u002Fjava","de\u002F4.help\u002F03.java","i-lucide-coffee",{"title":213,"path":214,"stem":215,"icon":216},"Linux","\u002Fde\u002Fhelp\u002Flinux","de\u002F4.help\u002F04.linux","i-lucide-terminal",{"title":218,"path":219,"stem":220,"icon":221},"Logs","\u002Fde\u002Fhelp\u002Flogs","de\u002F4.help\u002F05.logs","i-lucide-scroll-text",{"title":223,"path":224,"stem":225,"icon":226},"Bug melden","\u002Fde\u002Fhelp\u002Freport-a-bug","de\u002F4.help\u002F06.report-a-bug","i-lucide-bug",{"title":228,"path":229,"stem":230,"icon":231},"Datenschutz","\u002Fde\u002Fhelp\u002Fprivacy","de\u002F4.help\u002F07.privacy","i-lucide-shield-check",{"title":233,"icon":234,"path":235,"stem":236,"children":237,"page":-1},"Entwickler","i-lucide-code-xml","\u002Fde\u002Fdevelopers","de\u002F5.developers\u002Findex",[238,239,244,249,254,259,263,267],{"title":11,"path":235,"stem":236,"icon":12},{"title":240,"path":241,"stem":242,"icon":243},"Aus dem Quellcode bauen","\u002Fde\u002Fdevelopers\u002Fbuild-from-source","de\u002F5.developers\u002F01.build-from-source","i-lucide-hammer",{"title":245,"path":246,"stem":247,"icon":248},"Mitmachen","\u002Fde\u002Fdevelopers\u002Fcontributing","de\u002F5.developers\u002F02.contributing","i-lucide-git-pull-request",{"title":250,"path":251,"stem":252,"icon":253},"Übersetzen","\u002Fde\u002Fdevelopers\u002Ftranslating","de\u002F5.developers\u002F03.translating","i-lucide-languages",{"title":255,"path":256,"stem":257,"icon":258},"Öffentliche API","\u002Fde\u002Fdevelopers\u002Fpublic-api","de\u002F5.developers\u002F04.public-api","i-lucide-braces",{"title":260,"path":261,"stem":262,"icon":32},"Android-App selbst bauen","\u002Fde\u002Fdevelopers\u002Fbuild-android","de\u002F5.developers\u002F05.build-android",{"title":264,"path":265,"stem":266,"icon":37},"iOS-App selbst bauen mit Xcode","\u002Fde\u002Fdevelopers\u002Fbuild-ios","de\u002F5.developers\u002F06.build-ios",{"title":268,"path":269,"stem":270,"icon":271},"TRS Server Rules","\u002Fde\u002Fdevelopers\u002Fserver-rules","de\u002F5.developers\u002F07.server-rules","i-lucide-server-cog",{"id":273,"title":264,"body":274,"description":1570,"extension":1571,"links":1572,"meta":1573,"navigation":1574,"path":265,"seo":1575,"stem":266,"__hash__":1576},"docs_de\u002Fde\u002F5.developers\u002F06.build-ios.md",{"type":275,"value":276,"toc":1535},"minimark",[277,285,330,361,366,471,475,597,615,618,1013,1017,1021,1024,1039,1161,1168,1172,1215,1218,1248,1254,1258,1261,1343,1347,1354,1359,1381,1385,1391,1395,1408,1412,1418,1422,1434,1438,1449,1453,1470,1474,1477,1481,1484,1488,1513,1516,1520,1531],[278,279,280,281,284],"p",{},"Die iOS-App ist dasselbe Tauri-2-Projekt wie der Launcher auf dem PC, nur für iPhone und iPad gebaut. Diese Seite ist\nfür alle, die mitentwickeln, und für Spieler, die die IPA lieber selbst bauen als unsere zu nehmen. Wenn du nur spielen\nwillst, installier die offizielle App – siehe ",[282,283,34],"a",{"href":35},".",[286,287,288,294],"warning",{},[278,289,290],{},[291,292,293],"strong",{},"Bevor du loslegst:",[295,296,297,305,316,327],"ul",{},[298,299,300,301,304],"li",{},"Du brauchst einen ",[291,302,303],{},"Mac mit Xcode",". Das Xcode-Projekt lässt sich nur unter macOS erzeugen und liegt deshalb nicht im\nRepository – ein Skript legt es an.",[298,306,307,310,311,315],{},[291,308,309],{},"Zum Spielen braucht es die Spiel-Engine und JIT"," – genau wie bei der offiziellen App. Die Engine kommt in einem\neigenen Schritt in die fertige App (siehe ",[282,312,314],{"href":313},"#ipa-bauen","IPA bauen","). Startest du die App direkt aus Xcode, fehlt die\nEngine: Alles andere geht, aber Spiele starten nicht.",[298,317,318,319,322,323,326],{},"Apps, die mit einer ",[291,320,321],{},"kostenlosen Apple-ID"," signiert sind, öffnen sich nach ",[291,324,325],{},"7 Tagen"," nicht mehr und müssen neu\nsigniert (aufgefrischt) werden. Mit einer kostenlosen Apple-ID gehen nur 3 selbst installierte Apps gleichzeitig.",[298,328,329],{},"Gebaut wird nur für echte Geräte (arm64) – einen Build für den iOS-Simulator gibt es nicht.",[278,331,332,333,337,338,341,342,345,346,349,350,341,353,356,357,360],{},"Die Befehle hier sind die, die das CI ausführt (",[334,335,336],"code",{},".github\u002Fworkflows\u002Fci.yml"," Job ",[291,339,340],{},"launcher-ios",", ",[334,343,344],{},"release.yml"," Jobs\n",[291,347,348],{},"iOS"," und ",[291,351,352],{},"iOS engine",[334,354,355],{},".github\u002Fworkflows\u002Fios-engine.yml","). Das CI signiert die App nie – es baut eine\n",[291,358,359],{},"unsignierte IPA",", und AltStore\u002FSideStore signieren sie beim Installieren mit der Apple-ID des Nutzers.",[362,363,365],"h2",{"id":364},"was-wo-liegt","Was wo liegt",[367,368,369,382],"table",{},[370,371,372],"thead",{},[373,374,375,379],"tr",{},[376,377,378],"th",{},"Pfad",[376,380,381],{},"Was es ist",[383,384,385,404,414,424,438,448,458],"tbody",{},[373,386,387,393],{},[388,389,390],"td",{},[334,391,392],{},"scripts\u002Fios-project.sh",[388,394,395,396,399,400,403],{},"Legt das Xcode-Projekt in ",[334,397,398],{},"src-tauri\u002Fgen\u002Fapple"," an (",[334,401,402],{},"tauri ios init",") und ergänzt Symbole und Info.plist-Einträge",[373,405,406,411],{},[388,407,408],{},[334,409,410],{},"scripts\u002Fios-unsigned-ipa.sh",[388,412,413],{},"Baut die Rust-Bibliothek, dann ein Xcode-Archiv ohne Code-Signatur, als IPA gezippt",[373,415,416,421],{},[388,417,418],{},[334,419,420],{},"scripts\u002Fios\u002Fbuild-engine.sh",[388,422,423],{},"Baut die Spiel-Engine (Amethyst-iOS an festem Commit, CMake, MobileGlues, Java-Teil)",[373,425,426,431],{},[388,427,428],{},[334,429,430],{},"scripts\u002Fios\u002Fpackage-ipa.sh",[388,432,433,434,437],{},"Legt die Engine in die App und signiert sie mit ",[334,435,436],{},"ldid"," und den Entitlements",[373,439,440,445],{},[388,441,442],{},[334,443,444],{},"src-tauri\u002Ftauri.ios.conf.json",[388,446,447],{},"iOS-Abweichungen der Tauri-Konfiguration (iOS 15, kein Desktop-Updater)",[373,449,450,455],{},[388,451,452],{},[334,453,454],{},"src-tauri\u002FInfo.ios.plist",[388,456,457],{},"Kamera-Text (QR-Code der PC-Fernbedienung) und Hintergrundabruf für Benachrichtigungen",[373,459,460,465],{},[388,461,462],{},[334,463,464],{},"src-tauri\u002Fplugins\u002Ftauri-plugin-trs-game\u002Fios\u002F",[388,466,467,468],{},"Swift-Teil, Quellen der Engine, ",[334,469,470],{},"trs-game.entitlements",[362,472,474],{"id":473},"voraussetzungen","Voraussetzungen",[367,476,477,487],{},[370,478,479],{},[373,480,481,484],{},[376,482,483],{},"Werkzeug",[376,485,486],{},"Version \u002F Hinweis",[383,488,489,508,530,549,566,581],{},[373,490,491,497],{},[388,492,493,494],{},"macOS mit ",[291,495,496],{},"Xcode",[388,498,499,500,503,504,507],{},"mit dem iPhoneOS-SDK. Eine Xcode-Version ist im Repository nicht festgelegt; das CI nimmt das Standard-Xcode der GitHub-Runner ",[334,501,502],{},"macos-latest"," (App) und ",[334,505,506],{},"macos-15"," (Engine)",[373,509,510,518],{},[388,511,512],{},[282,513,517],{"href":514,"rel":515},"https:\u002F\u002Fbrew.sh",[516],"nofollow","Homebrew",[388,519,520,521,524,525,349,527],{},"für ",[334,522,523],{},"xcodegen"," (installiert das Skript bei Bedarf selbst), ",[334,526,436],{},[334,528,529],{},"cmake",[373,531,532,535],{},[388,533,534],{},"Node.js und pnpm",[388,536,537,540,541,544,545,548],{},[291,538,539],{},"Node 22",", pnpm in der Version aus ",[334,542,543],{},"package.json"," (",[334,546,547],{},"corepack enable",")",[373,550,551,554],{},[388,552,553],{},"Rust",[388,555,556,557,562,563],{},"stable über ",[282,558,561],{"href":559,"rel":560},"https:\u002F\u002Frustup.rs",[516],"rustup",", Target ",[334,564,565],{},"aarch64-apple-ios",[373,567,568,574],{},[388,569,570,571],{},"JDK ",[291,572,573],{},"8",[388,575,576,577,580],{},"nur für die Engine (CI: Zulu 8). Es muss ein JDK 8 sein – ",[334,578,579],{},"build-engine.sh"," prüft das",[373,582,583,594],{},[388,584,585,341,588,341,591],{},[334,586,587],{},"git",[334,589,590],{},"python3",[334,592,593],{},"zip",[388,595,596],{},"nutzen die Skripte",[278,598,599,600,544,603,606,607,610,611,614],{},"Die App braucht ",[291,601,602],{},"iOS 15",[334,604,605],{},"minimumSystemVersion"," in ",[334,608,609],{},"tauri.ios.conf.json","). Das CI setzt für die App\n",[334,612,613],{},"IPHONEOS_DEPLOYMENT_TARGET=15.0",", weil die Swift-Pakete der Plugins APIs ab iOS 14 nutzen; die Engine selbst wird für\n14.0 gebaut.",[362,616,314],{"id":617},"ipa-bauen",[619,620,622,627,699,703,715,719,731,748,752,788,791,858,881,885,918,952,956,977,994,998],"steps",{"level":621},"3",[623,624,626],"h3",{"id":625},"code-und-werkzeuge-holen","Code und Werkzeuge holen",[628,629,634],"pre",{"className":630,"code":631,"language":632,"meta":633,"style":633},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","git clone https:\u002F\u002Fgithub.com\u002Ftheredstonee\u002FTRS-Launcher.git\ncd TRS-Launcher\npnpm install\nrustup target add aarch64-apple-ios\nbrew install ldid cmake\n","bash","",[334,635,636,651,661,670,684],{"__ignoreMap":633},[637,638,641,644,648],"span",{"class":639,"line":640},"line",1,[637,642,587],{"class":643},"sBMFI",[637,645,647],{"class":646},"sfazB"," clone",[637,649,650],{"class":646}," https:\u002F\u002Fgithub.com\u002Ftheredstonee\u002FTRS-Launcher.git\n",[637,652,654,658],{"class":639,"line":653},2,[637,655,657],{"class":656},"s2Zo4","cd",[637,659,660],{"class":646}," TRS-Launcher\n",[637,662,664,667],{"class":639,"line":663},3,[637,665,666],{"class":643},"pnpm",[637,668,669],{"class":646}," install\n",[637,671,673,675,678,681],{"class":639,"line":672},4,[637,674,561],{"class":643},[637,676,677],{"class":646}," target",[637,679,680],{"class":646}," add",[637,682,683],{"class":646}," aarch64-apple-ios\n",[637,685,687,690,693,696],{"class":639,"line":686},5,[637,688,689],{"class":643},"brew",[637,691,692],{"class":646}," install",[637,694,695],{"class":646}," ldid",[637,697,698],{"class":646}," cmake\n",[623,700,702],{"id":701},"oberfläche-bauen","Oberfläche bauen",[628,704,706],{"className":630,"code":705,"language":632,"meta":633,"style":633},"pnpm generate\n",[334,707,708],{"__ignoreMap":633},[637,709,710,712],{"class":639,"line":640},[637,711,666],{"class":643},[637,713,714],{"class":646}," generate\n",[623,716,718],{"id":717},"xcode-projekt-anlegen","Xcode-Projekt anlegen",[628,720,722],{"className":630,"code":721,"language":632,"meta":633,"style":633},"bash scripts\u002Fios-project.sh\n",[334,723,724],{"__ignoreMap":633},[637,725,726,728],{"class":639,"line":640},[637,727,632],{"class":643},[637,729,730],{"class":646}," scripts\u002Fios-project.sh\n",[278,732,733,734,737,738,740,741,743,744,747],{},"Das Skript startet ",[334,735,736],{},"pnpm tauri ios init --ci",", falls ",[334,739,398],{}," noch fehlt, übernimmt Kamera-Text und\nHintergrundaufgabe aus ",[334,742,454],{}," in die ",[334,745,746],{},"Info.plist"," der App und legt die App-Symbole (dazu die\nEvent-Symbole als alternative Symbole) in den Asset-Katalog.",[623,749,751],{"id":750},"app-ohne-signatur-bauen","App ohne Signatur bauen",[628,753,755],{"className":630,"code":754,"language":632,"meta":633,"style":633},"export IPHONEOS_DEPLOYMENT_TARGET=15.0\nbash scripts\u002Fios-unsigned-ipa.sh release build\u002FTRS-Launcher-app.ipa\n",[334,756,757,775],{"__ignoreMap":633},[637,758,759,763,767,771],{"class":639,"line":640},[637,760,762],{"class":761},"spNyl","export",[637,764,766],{"class":765},"sTEyZ"," IPHONEOS_DEPLOYMENT_TARGET",[637,768,770],{"class":769},"sMK4o","=",[637,772,774],{"class":773},"sbssI","15.0\n",[637,776,777,779,782,785],{"class":639,"line":653},[637,778,632],{"class":643},[637,780,781],{"class":646}," scripts\u002Fios-unsigned-ipa.sh",[637,783,784],{"class":646}," release",[637,786,787],{"class":646}," build\u002FTRS-Launcher-app.ipa\n",[278,789,790],{},"Was dabei passiert:",[792,793,794,815,826,840],"ol",{},[298,795,796,799,800,803,804,806,807,810,811,814],{},[334,797,798],{},"cargo build --lib --target aarch64-apple-ios --release --features tauri\u002Fcustom-protocol",", mit ",[334,801,802],{},"TAURI_CONFIG"," = Inhalt\nvon ",[334,805,609],{},". Das Feature ",[334,808,809],{},"custom-protocol"," bettet die Oberfläche ein – ohne sucht die App einen\nEntwicklungsserver auf ",[334,812,813],{},"localhost:3000"," und schließt sich sofort wieder.",[298,816,817,818,821,822,825],{},"Die Bibliothek ",[334,819,820],{},"libtrs_launcher_lib.a"," wird nach ",[334,823,824],{},"src-tauri\u002Fgen\u002Fapple\u002FExternals\u002Farm64\u002Frelease\u002Flibapp.a"," kopiert.",[298,827,828,831,832,835,836,839],{},[334,829,830],{},"scripts\u002Fios\u002Fdisable-rust-phase.py"," schaltet die Xcode-Build-Phase „Build Rust Code“ (",[334,833,834],{},"tauri ios xcode-script",") ab –\nsie funktioniert nur innerhalb eines laufenden ",[334,837,838],{},"tauri ios build",", und die Bibliothek liegt ja schon da.",[298,841,842,845,846,849,850,853,854,857],{},[334,843,844],{},"xcodebuild … archive"," mit ",[334,847,848],{},"CODE_SIGNING_ALLOWED=NO",", danach wird die ",[334,851,852],{},".app"," als ",[334,855,856],{},"Payload\u002F"," in die IPA gezippt.",[278,859,860,861,864,865,868,869,872,873,876,877,880],{},"Für einen Debug-Build nimmst du ",[334,862,863],{},"debug"," statt ",[334,866,867],{},"release"," (die Bibliothek landet dann in ",[334,870,871],{},"Externals\u002Farm64\u002Fdebug\u002F","). Für\nCurseForge setzt du ",[334,874,875],{},"CURSEFORGE_API_KEY"," oder legst den Schlüssel in ",[334,878,879],{},"~\u002F.tauri\u002Fcurseforge-api-key"," – freiwillig, ohne\nihn ist CurseForge ausgeblendet.",[623,882,884],{"id":883},"spiel-engine-bauen","Spiel-Engine bauen",[628,886,888],{"className":630,"code":887,"language":632,"meta":633,"style":633},"JAVA8_HOME=$(\u002Fusr\u002Flibexec\u002Fjava_home -v 1.8) bash scripts\u002Fios\u002Fbuild-engine.sh build\u002Fengine-ios\n",[334,889,890],{"__ignoreMap":633},[637,891,892,895,898,901,904,907,909,912,915],{"class":639,"line":640},[637,893,894],{"class":765},"JAVA8_HOME",[637,896,897],{"class":769},"=$(",[637,899,900],{"class":643},"\u002Fusr\u002Flibexec\u002Fjava_home",[637,902,903],{"class":646}," -v",[637,905,906],{"class":773}," 1.8",[637,908,548],{"class":769},[637,910,911],{"class":643}," bash",[637,913,914],{"class":646}," scripts\u002Fios\u002Fbuild-engine.sh",[637,916,917],{"class":646}," build\u002Fengine-ios\n",[278,919,920,921,926,927,930,931,341,934,937,938,341,941,349,944,947,948,951],{},"Das Skript holt ",[282,922,925],{"href":923,"rel":924},"https:\u002F\u002Fgithub.com\u002FAngelAuraMC\u002FAmethyst-iOS",[516],"Amethyst-iOS"," am festen Commit\n",[334,928,929],{},"9212a1894865e7ac0466029e25ddb0d895544c76",", vergleicht die mitgelieferten Dateien damit, baut die native Engine und\nMobileGlues mit CMake und den Java-Teil mit dem JDK 8. Heraus kommt ein Ordner mit ",[334,932,933],{},"Frameworks\u002F",[334,935,936],{},"libs\u002F",",\n",[334,939,940],{},"resources\u002F",[334,942,943],{},"LICENSES\u002F",[334,945,946],{},"engine.json",". Die Java-Laufzeiten sind ",[291,949,950],{},"nicht"," dabei – die lädt die App beim ersten\nSpielstart.",[623,953,955],{"id":954},"engine-in-die-app-legen","Engine in die App legen",[628,957,959],{"className":630,"code":958,"language":632,"meta":633,"style":633},"bash scripts\u002Fios\u002Fpackage-ipa.sh build\u002FTRS-Launcher-app.ipa build\u002Fengine-ios build\u002FTRS-Launcher.ipa\n",[334,960,961],{"__ignoreMap":633},[637,962,963,965,968,971,974],{"class":639,"line":640},[637,964,632],{"class":643},[637,966,967],{"class":646}," scripts\u002Fios\u002Fpackage-ipa.sh",[637,969,970],{"class":646}," build\u002FTRS-Launcher-app.ipa",[637,972,973],{"class":646}," build\u002Fengine-ios",[637,975,976],{"class":646}," build\u002FTRS-Launcher.ipa\n",[278,978,979,980,982,983,544,986,989,990,993],{},"Das kopiert die Engine in die App, ergänzt die Info.plist-Einträge für die Dateien-App, das Querformat, Maus und\nController und signiert alles mit ",[334,981,436],{}," – die App mit den Entitlements aus\n",[334,984,985],{},"src-tauri\u002Fplugins\u002Ftauri-plugin-trs-game\u002Fios\u002Ftrs-game.entitlements",[334,987,988],{},"get-task-allow"," für JIT, das höhere\nSpeicherlimit und der große Adressraum). Eine andere Datei gibst du mit ",[334,991,992],{},"TRS_IOS_ENTITLEMENTS"," an.",[623,995,997],{"id":996},"installieren","Installieren",[278,999,1000,1001,1004,1005,1008,1009,284],{},"Kopier ",[334,1002,1003],{},"build\u002FTRS-Launcher.ipa"," auf dein iPhone oder iPad und installier sie in AltStore oder SideStore über ",[291,1006,1007],{},"My Apps →\n+",". Sie signieren sie mit deiner Apple-ID, wie die offizielle App. Andere Werkzeuge, die eine IPA mit deiner Apple-ID\nsignieren, sollten auch gehen – getestet haben wir sie nicht. Zum Spielen dann ",[282,1010,1012],{"href":1011},"\u002Fde\u002Fgetting-started\u002Fiphone-ipad#jit-einschalten","JIT einschalten",[1014,1015,1016],"note",{},"Wenn AltStore\u002FSideStore die App mit einer kostenlosen Apple-ID neu signieren, fallen die beiden Speicher-Entitlements\nmeist weg. Die App prüft zur Laufzeit, was sie wirklich hat, und wählt den Java-Speicher danach – das Spiel bekommt dann\nweniger Speicher als mit TrollStore.",[362,1018,1020],{"id":1019},"aus-xcode-mit-eigener-apple-id-starten","Aus Xcode mit eigener Apple-ID starten",[278,1022,1023],{},"Du kannst die App auch direkt aus Xcode auf einem angeschlossenen iPhone starten und mit deinem eigenen Team signieren\n(eine kostenlose Apple-ID geht als „Personal Team“). Das ist praktisch, wenn du an der Oberfläche arbeitest. Zwei Dinge\ndazu:",[295,1025,1026,1033],{},[298,1027,1028,1029,1032],{},"Auf diesem Weg hat die App ",[291,1030,1031],{},"keine Spiel-Engine"," – beim Start einer Instanz meldet sie, dass die Engine fehlt.\nAnmeldung, Sozial, Garderobe, Modpacks und alles andere funktionieren.",[298,1034,1035,1036,284],{},"Das CI signiert nie mit einem Team – diesen Weg ",[291,1037,1038],{},"haben wir nicht getestet",[619,1040,1041,1045,1052,1079,1086,1090,1109,1116,1120,1139,1143],{"level":621},[623,1042,1044],{"id":1043},"rust-bibliothek-für-debug-bauen","Rust-Bibliothek für Debug bauen",[278,1046,1047,1048,1051],{},"Mach die Schritte bis ",[282,1049,718],{"href":1050},"#xcode-projekt-anlegen",", dann:",[628,1053,1055],{"className":630,"code":1054,"language":632,"meta":633,"style":633},"export IPHONEOS_DEPLOYMENT_TARGET=15.0\nbash scripts\u002Fios-unsigned-ipa.sh debug build\u002FTRS-Launcher-debug.ipa\n",[334,1056,1057,1067],{"__ignoreMap":633},[637,1058,1059,1061,1063,1065],{"class":639,"line":640},[637,1060,762],{"class":761},[637,1062,766],{"class":765},[637,1064,770],{"class":769},[637,1066,774],{"class":773},[637,1068,1069,1071,1073,1076],{"class":639,"line":653},[637,1070,632],{"class":643},[637,1072,781],{"class":646},[637,1074,1075],{"class":646}," debug",[637,1077,1078],{"class":646}," build\u002FTRS-Launcher-debug.ipa\n",[278,1080,1081,1082,1085],{},"Danach liegt die Bibliothek in ",[334,1083,1084],{},"src-tauri\u002Fgen\u002Fapple\u002FExternals\u002Farm64\u002Fdebug\u002Flibapp.a",", und die Rust-Build-Phase im\nProjekt ist abgeschaltet – Xcode kann die App also allein bauen.",[623,1087,1089],{"id":1088},"projekt-öffnen","Projekt öffnen",[628,1091,1093],{"className":630,"code":1092,"language":632,"meta":633,"style":633},"open src-tauri\u002Fgen\u002Fapple\u002F*.xcodeproj\n",[334,1094,1095],{"__ignoreMap":633},[637,1096,1097,1100,1103,1106],{"class":639,"line":640},[637,1098,1099],{"class":643},"open",[637,1101,1102],{"class":646}," src-tauri\u002Fgen\u002Fapple\u002F",[637,1104,1105],{"class":765},"*",[637,1107,1108],{"class":646},".xcodeproj\n",[278,1110,1111,1112,1115],{},"Wähle das Schema, das auf ",[334,1113,1114],{},"_iOS"," endet, und dein iPhone als Ziel.",[623,1117,1119],{"id":1118},"team-und-bundle-id-setzen","Team und Bundle-ID setzen",[278,1121,1122,1123,1126,1127,1130,1131,1134,1135,1138],{},"Im App-Target unter ",[291,1124,1125],{},"Signing & Capabilities"," wählst du dein ",[291,1128,1129],{},"Team"," und änderst den ",[291,1132,1133],{},"Bundle Identifier"," in einen\neigenen (zum Beispiel ",[334,1136,1137],{},"io.github.deinname.trslauncher",") – eine Bundle-ID kann bei Apple nur ein Team verwenden.",[623,1140,1142],{"id":1141},"starten","Starten",[278,1144,1145,1146,1149,1150,544,1153,1156,1157,1160],{},"Drück ",[291,1147,1148],{},"Run",". Ab iOS 16 fragt das iPhone zuerst nach dem ",[291,1151,1152],{},"Entwicklermodus",[291,1154,1155],{},"Einstellungen → Datenschutz &\nSicherheit → Entwicklermodus","). Mit einer kostenlosen Apple-ID musst du eventuell noch dein Entwicklerprofil unter\n",[291,1158,1159],{},"Einstellungen → Allgemein → VPN und Geräteverwaltung"," als vertrauenswürdig markieren.",[1162,1163,1164,1165,1167],"tip",{},"Die Signatur-Einstellungen aus Xcode stehen im erzeugten Projekt. Löschst du ",[334,1166,398],{}," und legst es neu an,\nsind sie weg.",[362,1169,1171],{"id":1170},"zu-deiner-eigenen-app-machen","Zu deiner eigenen App machen",[295,1173,1174,1180,1202],{},[298,1175,1176,1179],{},[291,1177,1178],{},"Bundle-ID:"," AltStore\u002FSideStore signieren die IPA mit deiner Apple-ID – dafür musst du nichts ändern. Für Xcode\nänderst du die Bundle-ID dort (siehe oben).",[298,1181,1182,1191,1192,1195,1196,1198,1199,1201],{},[291,1183,1184,606,1187,1190],{},[334,1185,1186],{},"identifier",[334,1188,1189],{},"src-tauri\u002Ftauri.conf.json"," nicht ändern."," Er gilt auch für Android, wo das Kotlin-Paket und der\nRust-Code daran hängen – der Android-Build bricht dann ab (siehe\n",[282,1193,260],{"href":1194},"\u002Fde\u002Fdevelopers\u002Fbuild-android#zu-deiner-eigenen-app-machen","). Ein ",[334,1197,1186],{}," nur für iOS\nin ",[334,1200,609],{}," könnte gehen, ist aber nicht getestet.",[298,1203,1204,1207,1208,1211,1212,1214],{},[291,1205,1206],{},"Die ID der Hintergrundaufgabe"," ",[334,1209,1210],{},"dev.theredstonee.trslauncher.push-poll"," bleibt, wie sie ist: Sie steht sowohl in\n",[334,1213,454],{}," als auch im Swift-Code des Push-Plugins, und iOS führt nur Aufgaben aus, die in der\nInfo.plist stehen.",[278,1216,1217],{},"Was in deinem eigenen Build laut Code weiter funktioniert:",[295,1219,1220,1226,1232,1242],{},[298,1221,1222,1225],{},[291,1223,1224],{},"Microsoft-Anmeldung"," läuft per Gerätecode (du tippst einen Code auf der Microsoft-Seite ein) – sie hängt nicht an\nder Bundle-ID.",[298,1227,1228,1231],{},[291,1229,1230],{},"TRS-Dienste"," (Freunde, Chat, Umhänge, TRS-API) sprechen mit derselben API; App oder Signatur werden nicht geprüft.",[298,1233,1234,1237,1238,1241],{},[291,1235,1236],{},"Links"," wie ",[334,1239,1240],{},"trs-launcher:\u002F\u002Fpack\u002F\u003Ccode>"," haben in jedem Build dasselbe Schema.",[298,1243,1244,1247],{},[291,1245,1246],{},"Updates:"," Dein Build hängt nicht an unserer AltStore-\u002FSideStore-Quelle. Du aktualisierst ihn, indem du neu baust\nund installierst.",[278,1249,1250,1251,284],{},"Wenn in deinem eigenen Build etwas nicht geht, ",[282,1252,1253],{"href":224},"melde es bitte",[362,1255,1257],{"id":1256},"prüfungen-ausführen","Prüfungen ausführen",[278,1259,1260],{},"Dieselben Prüfungen wie im CI:",[628,1262,1264],{"className":630,"code":1263,"language":632,"meta":633,"style":633},"pnpm generate\ncd src-tauri\nIPHONEOS_DEPLOYMENT_TARGET=15.0 cargo clippy --workspace --target aarch64-apple-ios -- -D warnings\n# Spiel-Plugin für iOS, Rust und sein Swift-Paket (Job „iOS engine“):\nIPHONEOS_DEPLOYMENT_TARGET=14.0 cargo build -p tauri-plugin-trs-game --target aarch64-apple-ios\n",[334,1265,1266,1272,1279,1313,1319],{"__ignoreMap":633},[637,1267,1268,1270],{"class":639,"line":640},[637,1269,666],{"class":643},[637,1271,714],{"class":646},[637,1273,1274,1276],{"class":639,"line":653},[637,1275,657],{"class":656},[637,1277,1278],{"class":646}," src-tauri\n",[637,1280,1281,1284,1286,1289,1292,1295,1298,1301,1304,1307,1310],{"class":639,"line":663},[637,1282,1283],{"class":765},"IPHONEOS_DEPLOYMENT_TARGET",[637,1285,770],{"class":769},[637,1287,1288],{"class":646},"15.0",[637,1290,1291],{"class":643}," cargo",[637,1293,1294],{"class":646}," clippy",[637,1296,1297],{"class":646}," --workspace",[637,1299,1300],{"class":646}," --target",[637,1302,1303],{"class":646}," aarch64-apple-ios",[637,1305,1306],{"class":646}," --",[637,1308,1309],{"class":646}," -D",[637,1311,1312],{"class":646}," warnings\n",[637,1314,1315],{"class":639,"line":672},[637,1316,1318],{"class":1317},"sHwdD","# Spiel-Plugin für iOS, Rust und sein Swift-Paket (Job „iOS engine“):\n",[637,1320,1321,1323,1325,1328,1330,1333,1336,1339,1341],{"class":639,"line":686},[637,1322,1283],{"class":765},[637,1324,770],{"class":769},[637,1326,1327],{"class":646},"14.0",[637,1329,1291],{"class":643},[637,1331,1332],{"class":646}," build",[637,1334,1335],{"class":646}," -p",[637,1337,1338],{"class":646}," tauri-plugin-trs-game",[637,1340,1300],{"class":646},[637,1342,683],{"class":646},[362,1344,1346],{"id":1345},"probleme","Probleme",[623,1348,1350,1351,1353],{"id":1349},"build-phase-tauri-ios-xcode-script-nicht-gefunden","„Build-Phase ",[334,1352,834],{}," nicht gefunden“",[278,1355,1356,1358],{},[334,1357,410],{}," schaltet diese Build-Phase beim ersten Lauf ab – ein zweiter Lauf findet sie nicht mehr\nund bricht mit dieser Meldung ab. Das CI fängt immer mit einem frischen Projekt an. Lokal löschst du das erzeugte\nProjekt und legst es neu an:",[628,1360,1362],{"className":630,"code":1361,"language":632,"meta":633,"style":633},"rm -rf src-tauri\u002Fgen\u002Fapple\nbash scripts\u002Fios-project.sh\n",[334,1363,1364,1375],{"__ignoreMap":633},[637,1365,1366,1369,1372],{"class":639,"line":640},[637,1367,1368],{"class":643},"rm",[637,1370,1371],{"class":646}," -rf",[637,1373,1374],{"class":646}," src-tauri\u002Fgen\u002Fapple\n",[637,1376,1377,1379],{"class":639,"line":653},[637,1378,632],{"class":643},[637,1380,730],{"class":646},[623,1382,1384],{"id":1383},"fehler-zum-deployment-target-oder-zu-ios-14-apis","Fehler zum Deployment Target oder zu iOS-14-APIs",[278,1386,1387,1388,1390],{},"Setz ",[334,1389,613],{},", bevor du die App baust (14.0 für die Prüfung des Engine-Plugins) – die\nSwift-Pakete brauchen mindestens iOS 14.",[623,1392,1394],{"id":1393},"die-app-schließt-sich-gleich-nach-dem-öffnen","Die App schließt sich gleich nach dem Öffnen",[278,1396,1397,1398,1401,1402,1404,1405,1407],{},"Wenn du die Rust-Bibliothek von Hand gebaut hast, fehlt wahrscheinlich ",[334,1399,1400],{},"--features tauri\u002Fcustom-protocol"," – dann wartet\ndie App auf einen Entwicklungsserver auf ",[334,1403,813],{},". Nimm ",[334,1406,410],{},", das setzt es immer.",[623,1409,1411],{"id":1410},"jdk-8-fehlt-java8_home-setzen-oder-java8_home-ist-kein-jdk-8","„JDK 8 fehlt (JAVA8_HOME setzen)“ oder „JAVA8_HOME ist kein JDK 8“",[278,1413,1414,1415,1417],{},"Der Java-Teil der Engine braucht genau ein JDK 8. Installier eins und lass ",[334,1416,894],{}," darauf zeigen.",[623,1419,1421],{"id":1420},"ldid-fehlt-brew-install-ldid","„ldid fehlt (brew install ldid)“",[278,1423,1424,1427,1428,1430,1431,284],{},[334,1425,1426],{},"package-ipa.sh"," signiert mit ",[334,1429,436],{},": ",[334,1432,1433],{},"brew install ldid",[623,1435,1437],{"id":1436},"vendored-datei-weicht-von-upstream-ab","„vendored Datei weicht von Upstream ab“",[278,1439,1440,1441,1444,1445,1448],{},"Eine Datei unter ",[334,1442,1443],{},"ios\u002FEngine\u002Fvendor\u002Famethyst-ios"," weicht vom festen Amethyst-iOS-Commit ab. Abweichen dürfen nur die\ngepatchten Dateien, die in ",[334,1446,1447],{},"UPSTREAM.md"," in diesem Ordner stehen – mach deine Änderung rückgängig oder pass die Liste an.",[623,1450,1452],{"id":1451},"das-spiel-schließt-sich-gleich-nach-dem-start","Das Spiel schließt sich gleich nach dem Start",[278,1454,1455,1456,1459,1460,1462,1463,544,1466,1469],{},"Fast immer ist ",[291,1457,1458],{},"JIT nicht an",". Siehe ",[282,1461,1012],{"href":1011},". Das Log der\nEngine findest du in der Dateien-App unter ",[291,1464,1465],{},"Auf meinem iPhone → TRS Launcher",[334,1467,1468],{},"trs-engine.log",").",[623,1471,1473],{"id":1472},"minecraft-263-startet-nicht","Minecraft 26.3 startet nicht",[278,1475,1476],{},"26.3 läuft auf iOS noch nicht (der Engine fehlt dort die SDL3-Anbindung). Nimm 26.2 oder älter.",[623,1478,1480],{"id":1479},"app-kann-nicht-überprüft-werden-nach-einer-woche","„App kann nicht überprüft werden“ nach einer Woche",[278,1482,1483],{},"Die 7 Tage der kostenlosen Apple-ID sind um. Frisch die App in AltStore\u002FSideStore auf oder starte sie noch einmal aus\nXcode.",[362,1485,1487],{"id":1486},"lizenz-und-name","Lizenz und Name",[278,1489,1490,1491,544,1494,1497,1498,1501,1502,1505,1506,1509,1510,1512],{},"Der TRS Launcher ist freie Software unter der ",[291,1492,1493],{},"GNU General Public License v3.0",[334,1495,1496],{},"LICENSE",", Urheberrechtshinweise in\n",[334,1499,1500],{},"NOTICE","). Du darfst die App bauen, ändern und weitergeben. Gibst du eine IPA weiter, verlangt die GPL, dass das unter\nderselben Lizenz passiert und du den ",[291,1503,1504],{},"vollständigen Quellcode"," genau dieses Builds samt deiner Änderungen zugänglich\nmachst. Die iOS-Engine basiert auf Amethyst-iOS (GPL-3.0) und bringt weitere fremde Teile mit; ihre Lizenztexte liegen\nin der App (",[334,1507,1508],{},"licenses\u002Fengine",") und stehen in ",[334,1511,1500],{}," – lass sie drin.",[278,1514,1515],{},"Eigene Markenregeln hat das Repository nicht. Trotzdem: Wenn du deinen Build weitergibst, gib ihm einen eigenen Namen\nund eine eigene Bundle-ID, damit ihn niemand für den offiziellen TRS Launcher hält, und verweise auf deinen Quellcode –\nnicht auf unseren Support.",[362,1517,1519],{"id":1518},"weiter-gehts","Weiter geht's",[1521,1522,1523,1527],"card-group",{},[1524,1525,1526],"card",{"icon":32,"title":260,"to":261},"Die APK mit deinem eigenen Signierschlüssel – unter Windows und Linux.",[1524,1528,1530],{"icon":37,"title":1529,"to":35},"iPhone & iPad","Die offizielle App mit AltStore oder SideStore installieren.",[1532,1533,1534],"style",{},"html pre.shiki code .sBMFI, html code.shiki .sBMFI{--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B}html pre.shiki code .sfazB, html code.shiki .sfazB{--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D}html pre.shiki code .s2Zo4, html code.shiki .s2Zo4{--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF}html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html pre.shiki code .spNyl, html code.shiki .spNyl{--shiki-light:#9C3EDA;--shiki-default:#C792EA;--shiki-dark:#C792EA}html pre.shiki code .sTEyZ, html code.shiki .sTEyZ{--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8}html pre.shiki code .sMK4o, html code.shiki .sMK4o{--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF}html pre.shiki code .sbssI, html code.shiki .sbssI{--shiki-light:#F76D47;--shiki-default:#F78C6C;--shiki-dark:#F78C6C}html pre.shiki code .sHwdD, html code.shiki .sHwdD{--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic}",{"title":633,"searchDepth":653,"depth":653,"links":1536},[1537,1538,1539,1548,1554,1555,1556,1568,1569],{"id":364,"depth":653,"text":365},{"id":473,"depth":653,"text":474},{"id":617,"depth":653,"text":314,"children":1540},[1541,1542,1543,1544,1545,1546,1547],{"id":625,"depth":663,"text":626},{"id":701,"depth":663,"text":702},{"id":717,"depth":663,"text":718},{"id":750,"depth":663,"text":751},{"id":883,"depth":663,"text":884},{"id":954,"depth":663,"text":955},{"id":996,"depth":663,"text":997},{"id":1019,"depth":653,"text":1020,"children":1549},[1550,1551,1552,1553],{"id":1043,"depth":663,"text":1044},{"id":1088,"depth":663,"text":1089},{"id":1118,"depth":663,"text":1119},{"id":1141,"depth":663,"text":1142},{"id":1170,"depth":653,"text":1171},{"id":1256,"depth":653,"text":1257},{"id":1345,"depth":653,"text":1346,"children":1557},[1558,1560,1561,1562,1563,1564,1565,1566,1567],{"id":1349,"depth":663,"text":1559},"„Build-Phase tauri ios xcode-script nicht gefunden“",{"id":1383,"depth":663,"text":1384},{"id":1393,"depth":663,"text":1394},{"id":1410,"depth":663,"text":1411},{"id":1420,"depth":663,"text":1421},{"id":1436,"depth":663,"text":1437},{"id":1451,"depth":663,"text":1452},{"id":1472,"depth":663,"text":1473},{"id":1479,"depth":663,"text":1480},{"id":1486,"depth":653,"text":1487},{"id":1518,"depth":653,"text":1519},"Die IPA des TRS Launchers für iPhone und iPad auf dem Mac bauen: Xcode-Projekt, Rust-Bibliothek, Spiel-Engine, Sideloading und Start mit eigener Apple-ID.","md",null,{},{"icon":37},{"title":264,"description":1570},"eCvsWRpRTandj2DNejWN4FVfQM2AoEan7bzjMt6RUXA",[1578,1580],{"title":260,"path":261,"stem":262,"description":1579,"icon":32,"children":-1},"Die APK des TRS Launchers aus dem Quellcode bauen: Android-SDK und NDK, Rust-Targets, Debug- und Release-Build, eigener Signierschlüssel und eigene App-ID.",{"title":268,"path":269,"stem":270,"description":1581,"icon":271,"children":-1},"Plugin und Server-Mod, mit dem du TRS-Client-Funktionen auf deinem Server sperrst, erzwingst oder begrenzt: Plattformen, Config, Protokoll und alle Modul-IDs.",1792830329704]