{"id":19269316,"url":"https://github.com/listenzz/myapp","last_synced_at":"2025-08-01T16:08:09.083Z","repository":{"id":38874213,"uuid":"194407035","full_name":"listenzz/MyApp","owner":"listenzz","description":"React Native 工程化实践","archived":false,"fork":false,"pushed_at":"2024-04-17T11:52:14.000Z","size":17962,"stargazers_count":154,"open_issues_count":13,"forks_count":27,"subscribers_count":3,"default_branch":"master","last_synced_at":"2025-07-12T14:55:15.242Z","etag":null,"topics":["codepush","devops","fastlane","gitlab-ci","react-native","sentry"],"latest_commit_sha":null,"homepage":"","language":"JavaScript","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/listenzz.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}},"created_at":"2019-06-29T13:09:51.000Z","updated_at":"2025-05-13T08:58:38.000Z","dependencies_parsed_at":"2024-11-09T20:29:36.399Z","dependency_job_id":null,"html_url":"https://github.com/listenzz/MyApp","commit_stats":null,"previous_names":[],"tags_count":9,"template":false,"template_full_name":null,"purl":"pkg:github/listenzz/MyApp","repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/listenzz%2FMyApp","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/listenzz%2FMyApp/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/listenzz%2FMyApp/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/listenzz%2FMyApp/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/listenzz","download_url":"https://codeload.github.com/listenzz/MyApp/tar.gz/refs/heads/master","sbom_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/listenzz%2FMyApp/sbom","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":268256960,"owners_count":24221053,"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-08-01T02:00:08.611Z","response_time":67,"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":["codepush","devops","fastlane","gitlab-ci","react-native","sentry"],"created_at":"2024-11-09T20:19:26.410Z","updated_at":"2025-08-01T16:08:09.056Z","avatar_url":"https://github.com/listenzz.png","language":"JavaScript","readme":"# React Native 工程实践\n\n本文档讲述 React Native 的工程实践。\n\n[在线文档](https://todoit.tech/rn/devops/)\n\n- [在工程中集成 Typescript, ESLint, Prettier 等](./docs/lint.md)\n\n  - 使用 typescript 模版来初始化工程\n  - 使用 ESLint 来检查代码\n  - 使用 Prettier 来保证一致的代码风格\n  - 配置 VS Code，当保存文件时自动运行 ESLint 的修复命令\n\n- [多环境配置](./docs/env.md)\n\n  - 使用 Configuration 和 Scheme 来实现 iOS 工程的多环境配置\n  - 使用 Flavor 来实现 Android 工程的多环境配置\n  - 编写原生模块，导出多环境配置到 React Native 代码\n\n- 使用 **GitLab CI / CD** 来实现持续集成与持续部署\n\n  - [iOS 工程化实践的准备工作](./docs/ios.md)\n\n    - 搭建基于 Ruby 的开发环境\n    - 使用 fastlane 来管理证书和打包\n    - 使用 fastlane 上传 ipa 到 TestFlight\n\n  - [Android 工程化实践的准备工作](./docs/android.md)\n\n    - 生成签名密钥\n    - 混淆配置\n\n  - [使用 **GitLab CI / CD** 来实现持续集成与持续部署](./docs/ci.md)\n\n    - 使用 NodeJS 来编写 **CI / CD** 脚本\n    - 自动管理 Version Name 和 Version Code\n    - 上传 ipa 到自建文件服务器，并提供扫码安装能力\n    - 上传 apk 到自建文件服务器，并提供扫码安装能力\n    - 每日自动构建、部署\n\n- [集成 Sentry 来监控应用崩溃问题](./docs/sentry.md)\n\n  - 创建 Sentry 项目\n  - 如何配置 iOS、Android、React Native 工程\n  - 与 **CI / CD** 集成，自动注入 Commit SHA，自动上传符号表\n\n- [集成热更新(CodePush)](./docs/hotfix.md)\n\n  - 如何注册 CodePush 热更新服务\n  - 如何配置 iOS、Android、React Native 工程\n  - 与 **CI / CD** 集成，自动发布热更新，并上传符号表到 Sentry\n","funding_links":[],"categories":[],"sub_categories":[],"project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flistenzz%2Fmyapp","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Flistenzz%2Fmyapp","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Flistenzz%2Fmyapp/lists"}