{"id":32316309,"url":"https://github.com/internetwei/lldynamiclaunchscreen","last_synced_at":"2025-10-23T10:59:58.833Z","repository":{"id":56918768,"uuid":"326155134","full_name":"internetWei/LLDynamicLaunchScreen","owner":"internetWei","description":"不用更新APP版本即可修改启动图，可以使用网络图片；自动修复启动图显示异常。","archived":false,"fork":false,"pushed_at":"2024-09-02T05:11:12.000Z","size":28270,"stargazers_count":223,"open_issues_count":13,"forks_count":37,"subscribers_count":1,"default_branch":"master","last_synced_at":"2025-10-23T10:59:49.667Z","etag":null,"topics":["launchimage","launchscreen","startup-diagram","startup-map"],"latest_commit_sha":null,"homepage":"https://juejin.cn/user/2418581312385288/posts","language":"Objective-C","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"mit","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/internetWei.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}},"created_at":"2021-01-02T10:07:25.000Z","updated_at":"2025-07-11T13:44:47.000Z","dependencies_parsed_at":"2024-11-13T00:46:09.009Z","dependency_job_id":null,"html_url":"https://github.com/internetWei/LLDynamicLaunchScreen","commit_stats":{"total_commits":85,"total_committers":2,"mean_commits":42.5,"dds":0.02352941176470591,"last_synced_commit":"a108a9e9f8b311fe8bd5e7dae9e4c04e91115e94"},"previous_names":[],"tags_count":22,"template":false,"template_full_name":null,"purl":"pkg:github/internetWei/LLDynamicLaunchScreen","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetWei%2FLLDynamicLaunchScreen","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetWei%2FLLDynamicLaunchScreen/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetWei%2FLLDynamicLaunchScreen/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetWei%2FLLDynamicLaunchScreen/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/internetWei","download_url":"https://codeload.github.com/internetWei/LLDynamicLaunchScreen/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/internetWei%2FLLDynamicLaunchScreen/sbom","scorecard":null,"host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":280606608,"owners_count":26359387,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","status":"online","status_checked_at":"2025-10-23T02:00:06.710Z","response_time":142,"last_error":null,"robots_txt_status":"success","robots_txt_updated_at":"2025-07-24T06:49:26.215Z","robots_txt_url":"https://github.com/robots.txt","online":true,"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":["launchimage","launchscreen","startup-diagram","startup-map"],"created_at":"2025-10-23T10:59:57.821Z","updated_at":"2025-10-23T10:59:58.827Z","avatar_url":"https://github.com/internetWei.png","language":"Objective-C","funding_links":[],"categories":[],"sub_categories":[],"readme":"LLDynamicLaunchScreen\n==============\n[![CI](https://github.com/internetWei/LLDynamicLaunchScreen/workflows/LLDynamicLaunchScreen%20CI/badge.svg)](https://github.com/internetWei/LLDynamicLaunchScreen/actions)\u0026nbsp;\u0026nbsp; [![Carthage](https://img.shields.io/badge/Carthage-compatible-brightgreen)](https://github.com/Carthage/Carthage)\u0026nbsp; \u0026nbsp;[![CocoaPods](https://img.shields.io/badge/pod-1.0.8-blue)](http://cocoapods.org/pods/LLDynamicLaunchScreen)\u0026nbsp;\u0026nbsp; [![Platform](https://img.shields.io/badge/platform-iOS-blue)](https://www.apple.com/nl/ios)\u0026nbsp;\u0026nbsp; [![License MIT](https://img.shields.io/badge/license-MIT-brightgreen.svg?style=flat)](https://github.com/internetWei/LLDynamicLaunchScreen/blob/master/LICENSE)\n\n__LLDynamicLaunchScreen__ 是1个可以让你不用更新APP并修改iPhone上的各种启动图；它还可以自动修复启动图的各种显示异常。\n\n\u003e 该框架目前没有使用 swift 重写的计划，因为swift没有load方法，有些逻辑需要开发者手动调用，这可能会增加使用成本；当然，它支持和swift混编；如果你想作者提供1个swift版本的话，请在这个 [issues](https://github.com/internetWei/LLDynamicLaunchScreen/issues/18) 中留言。\n\n功能\n==============\n\n- 不更新APP修改启动图(`支持从网络下载图片`)。\n- 自动修复启动图黑屏/白屏。\n- 自动修复启动图在横屏状态下可能显示异常。\n- 更新APP版本后自动迁移上个版本数据，无需开发者手动处理。\n- 对迁移数据的精确控制，可控制哪张启动图需要迁移，哪张不需要。\n- 任何公开API均支持子线程调用，以提高性能。\n\n演示\n==============\n| 修改启动图  | 自动修复异常 |\n| :-------------: | :-------------: |\n| ![demo1](https://s1.ax1x.com/2023/05/25/p9Hv4MT.gif) | ![demo2](https://s1.ax1x.com/2023/05/25/p9Hv7dJ.gif) |\n\n示例代码\n==============\n```objc\n// objc示例代码：\n// 在子线程中修改指定类型的启动图。\n[LLDynamicLaunchScreen replaceLaunchImage:replaceImage type:LLLaunchImageTypeVerticalLight completed:nil];\n```\n\n```swift\n// swift示例代码：\n// 在子线程中修改指定类型的启动图。\nLLDynamicLaunchScreen.replaceLaunch(replaceImage, type: .verticalLight, completed: nil)\n```\n\n安装\n==============\n\n### CocoaPods\n1. 在 Podfile 中添加 `pod 'LLDynamicLaunchScreen'`。\n2. 执行 `pod install` 或 `pod update`。\n3. `#import \u003cLLDynamicLaunchScreen/LLDynamicLaunchScreen.h\u003e`。\n\n### Carthage\n1. 在 Cartfile 中添加 `github \"internetWei/LLDynamicLaunchScreen\"`。\n2. 执行 `carthage update --platform ios` 并将生成的 framework 添加到你的工程。\n3. `#import \u003cLLDynamicLaunchScreen/LLDynamicLaunchScreen.h\u003e`。\n\n### 手动安装\n1. 下载 `LLDynamicLaunchScreen` 文件夹内的所有内容。\n2. 将LLDynamicLaunchScreen文件夹添加(拖放)到你的工程。\n3. `#import \"LLDynamicLaunchScreen.h\"`。\n\n版本限制\n==============\n\n如果你的项目使用的是 `LaunchScreen` 而非 `LaunchImage`，理论上没有最低版本限制；不过我只在iOS11.0及以上系统使用并测试过，如果你在低于iOS11.0的版本上使用并遇到了问题，请提交 [issues](https://github.com/internetWei/LLDynamicLaunchScreen/issues/new)。\n\n注意事项\n==============\n\n如果你在项目中使用了1整张图片适配启动图(`或者大于屏幕90%区域`)的话，请你勿必在启动图的右下角添加1个1×1像素的辅助视图，并将视图的背景设置成 system color，具体细节请看：[LLDynamicLaunchScreen 设计思路](https://juejin.cn/post/6913163202851241998) 中关于《修改启动图》的内容。\n\n已知问题\n==============\n\n1. 当用户修改了手机上的系统语言后，系统会清空APP所有启动图，并且在下次启动时不会一次性生成所有启动图，而只会生成当前模式下的1张启动图(`测试设备：iPhone 14, iOS 16.4.1`)；由于这种情况很少发生(`除了测试，一般情况下用户不会去修改手机上的首选语言`)，所以暂时不会处理。\n2. 如果APP支持国际化的话，系统会根据首次打开时的语言选择启动图文件，即使后面修改系统语言，除非更新APP，否则还是会显示首次打开时的语言的启动图(`有点拗口，举个例子，首次打开APP时系统语言是简体中文，此时系统会选择简体中文的启动图文件，然后用户将系统语言修改成了英语，此时系统会清空所有启动图，当用户打开APP时，系统会重新生成启动图，但系统没有显示英语的启动图文件，而是显示第1次也就是简体中文的启动图文件，这应该是系统启动图BUG`)；一般用户也不会去修改手机上的系统语言，所以暂时不会处理。\n\n支持\n==============\n\n如果你有任何更好的意见，请提交 [issue](https://github.com/internetWei/LLDynamicLaunchScreen/issues/new)。\n\n如需支持，请发送电子邮件至 [internetwei@foxmail.com](internetwei@foxmail.com)。\n\n致谢\n==============\n\n* [DynamicLaunchImage](https://github.com/iversonxh/DynamicLaunchImage)\n* [iOS启动图异常修复方案](https://mp.weixin.qq.com/s/giXmBAC0ft-kRB3BloawzA)\n\n许可证\n==============\n\n__LLDynamicLaunchScreen__ 使用 MIT 许可证，详情见 [LICENSE](https://raw.githubusercontent.com/internetWei/LLDynamicLaunchScreen/master/LICENSE)。","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetwei%2Flldynamiclaunchscreen","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Finternetwei%2Flldynamiclaunchscreen","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Finternetwei%2Flldynamiclaunchscreen/lists"}