{"id":43963404,"url":"https://github.com/fcitx-contrib/fcitx5-ios","last_synced_at":"2026-04-26T00:04:42.547Z","repository":{"id":258419158,"uuid":"860731465","full_name":"fcitx-contrib/fcitx5-ios","owner":"fcitx-contrib","description":"Fcitx5 iOS edition, currently developer beta. 小企鹅输入法 iOS 开发者公测 https://t.me/fcitx5macos/16126","archived":false,"fork":false,"pushed_at":"2026-04-19T23:13:01.000Z","size":878,"stargazers_count":78,"open_issues_count":0,"forks_count":5,"subscribers_count":1,"default_branch":"master","last_synced_at":"2026-04-20T00:34:17.893Z","etag":null,"topics":["fcitx5","input-method","rime"],"latest_commit_sha":null,"homepage":"","language":"Swift","has_issues":false,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"gpl-3.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/fcitx-contrib.png","metadata":{"files":{"readme":"README.md","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null,"governance":null,"roadmap":null,"authors":null,"dei":null,"publiccode":null,"codemeta":null,"zenodo":null,"notice":null,"maintainers":null,"copyright":null,"agents":null,"dco":null,"cla":null}},"created_at":"2024-09-21T03:18:22.000Z","updated_at":"2026-04-19T23:01:59.000Z","dependencies_parsed_at":"2025-05-03T15:22:44.725Z","dependency_job_id":"f2078573-292a-49d0-a468-4cc73d7b8e5e","html_url":"https://github.com/fcitx-contrib/fcitx5-ios","commit_stats":null,"previous_names":["fcitx-contrib/fcitx5-ios"],"tags_count":1,"template":false,"template_full_name":null,"purl":"pkg:github/fcitx-contrib/fcitx5-ios","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx-contrib%2Ffcitx5-ios","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx-contrib%2Ffcitx5-ios/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx-contrib%2Ffcitx5-ios/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx-contrib%2Ffcitx5-ios/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/fcitx-contrib","download_url":"https://codeload.github.com/fcitx-contrib/fcitx5-ios/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/fcitx-contrib%2Ffcitx5-ios/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":286080680,"owners_count":32280982,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2026-04-25T18:29:39.964Z","status":"ssl_error","status_checked_at":"2026-04-25T18:29:32.149Z","response_time":59,"last_error":"SSL_read: unexpected eof while reading","robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":false,"can_crawl_api":true,"host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":["fcitx5","input-method","rime"],"created_at":"2026-02-07T06:04:42.643Z","updated_at":"2026-04-26T00:04:42.542Z","avatar_url":"https://github.com/fcitx-contrib.png","language":"Swift","funding_links":[],"categories":[],"sub_categories":[],"readme":"English\n|\n[中文](README.zh-CN.md)\n\n# Fcitx5 iOS\n\n[Fcitx5](https://github.com/fcitx/fcitx5) input method framework ported to iOS ≥ 16.3.\n\nCurrently developer beta. Please download [IPA](https://github.com/fcitx-contrib/fcitx5-ios/releases/tag/latest) and install with [SideStore](https://github.com/SideStore/SideStore).\n\nNote: Without developer account, App Group can't be used, so please\n* grant full access to keyboards;\n* click `Sync config` after making changes to configuration or data.\n\n## Build for simulator\nThis project is NOT managed by Xcode, but Xcode is needed for iOS SDK.\n\nBelow assumes Apple Silicon.\nFor Intel, replace all `SIMULATORARM64` with `SIMULATOR64`.\n\n### Install dependencies\n```sh\nbrew install cmake ninja gettext pkg-config\n./scripts/install-deps.sh SIMULATORARM64\n```\n\n### Apply patches\n```sh\ngit apply --directory=fcitx5 patches/fcitx5.patch\ngit apply --directory=deps/swifter patches/swifter.patch\ngit apply --directory=engines/libime/src/libime/core/kenlm patches/kenlm.patch\ngit apply --directory=engines/fcitx5-hallelujah patches/hallelujah.patch\ngit apply --directory=engines/fcitx5-rime patches/rime.patch\n```\n\n### Build with CMake\n```sh\ncmake -B build/SIMULATORARM64 -G Ninja -DCMAKE_BUILD_TYPE=Debug -DPLATFORM=SIMULATORARM64\ncmake --build build/SIMULATORARM64 \u0026\u0026 ./scripts/code-sign.sh SIMULATORARM64\n```\n\nYou can also use `Cmd+Shift+B` in VSCode to execute a task.\n\n### Play with simulator\n```sh\nxcrun simctl list devices\nxcrun simctl boot UUID\nopen /Applications/Xcode.app/Contents/Developer/Applications/Simulator.app\nxcrun simctl install booted build/SIMULATORARM64/src/Fcitx5.app\n```\nAfter the first time you execute `xcrun simctl install`,\nyou need to add Fcitx5 in Settings -\u003e General -\u003e Keyboard -\u003e Keyboards -\u003e Add New Keyboard.\n\n* Simulator is not emulator (virtual machine). Simulator file system is mapped from host filesystem. A process in simulator is a process in macOS.\n* App and input method (custom keyboard extension) are different programs. They share a directory (via App Group) in ~/Library/Developer/CoreSimulator/Devices/UUID/data/Containers/Shared/AppGroup.\n\n## Build for iOS device\nGenerate an unsigned IPA and install it with SideStore.\n\nBelow assumes you've already done with simulator.\n\n```sh\n./scripts/install-deps.sh OS64\ncmake -B build/OS64 -G Ninja -DCMAKE_BUILD_TYPE=Release -DPLATFORM=OS64\ncmake --build build/OS64\ncd build/OS64/src \u0026\u0026 rm -rf Payload Fcitx5.ipa \u0026\u0026 mkdir Payload\ncp -r Fcitx5.app Payload \u0026\u0026 zip -r Fcitx5.ipa Payload\n```\n\n## Real device debug\n\n### OOM\nThere is a 77 MB memory limit for keyboard extension.\nWhen memory approaches the limit, you will see in Console.app like `Received memory warning.` for the process.\nLater if memory exceeds the limit, you will see\n```\nmemorystatus: keyboard [14871] exceeded mem limit: ActiveHard 77 MB (fatal)\nmemorystatus: killing process 14871 [keyboard] in high band FOREGROUND (100) - memorystatus_available_pages: 121469\nkeyboard[14871] Corpse allowed 1 of 5\n1817600.392 memorystatus: killing_specific_process pid 14871 [keyboard] (per-process-limit 100 16s rf:-) 78848KB - memorystatus_available_pages: 121472\n```\n\n### Memory monitor\nUse `/Applications/Xcode.app/Contents/Applications/Instruments.app`'s `Activity Monitor`.\n\n### Crash\nCrash reports are available in `Settings` -\u003e `Privacy \u0026 Security` -\u003e `Analytics \u0026 Improvements` -\u003e `Analytics Data`.\nSend them to mac and open with Console.app.\n\n## Credits\nThanks to [these](./CREDITS.md) 3rd-party Open Source projects.\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcitx-contrib%2Ffcitx5-ios","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Ffcitx-contrib%2Ffcitx5-ios","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Ffcitx-contrib%2Ffcitx5-ios/lists"}