integration-swift
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChinesePostHog integration for Swift (iOS/macOS)
适用于Swift(iOS/macOS)的PostHog集成
This skill helps you add PostHog analytics to Swift (iOS/macOS) applications.
本技能可帮助你为Swift(iOS/macOS)应用添加PostHog分析功能。
Workflow
工作流程
Follow these steps in order to complete the integration:
- - PostHog Setup - Begin ← Start here
basic-integration-1.0-begin.md - - PostHog Setup - Edit
basic-integration-1.1-edit.md - - PostHog Setup - Revise
basic-integration-1.2-revise.md - - PostHog Setup - Conclusion
basic-integration-1.3-conclude.md
按照以下步骤完成集成:
- - PostHog 设置 - 开始 ← 从此处开始
basic-integration-1.0-begin.md - - PostHog 设置 - 编辑
basic-integration-1.1-edit.md - - PostHog 设置 - 修改
basic-integration-1.2-revise.md - - PostHog 设置 - 总结
basic-integration-1.3-conclude.md
Reference files
参考文件
- - Swift (iOS/macOS) example project code
references/EXAMPLE.md - - Ios - docs
references/ios.md - - Identify users - docs
references/identify-users.md - - PostHog setup - begin
references/basic-integration-1.0-begin.md - - PostHog setup - edit
references/basic-integration-1.1-edit.md - - PostHog setup - revise
references/basic-integration-1.2-revise.md - - PostHog setup - conclusion
references/basic-integration-1.3-conclude.md
The example project shows the target implementation pattern. Consult the documentation for API details.
- - Swift(iOS/macOS)示例项目代码
references/EXAMPLE.md - - iOS - 文档
references/ios.md - - 用户识别 - 文档
references/identify-users.md - - PostHog 设置 - 开始
references/basic-integration-1.0-begin.md - - PostHog 设置 - 编辑
references/basic-integration-1.1-edit.md - - PostHog 设置 - 修改
references/basic-integration-1.2-revise.md - - PostHog 设置 - 总结
references/basic-integration-1.3-conclude.md
示例项目展示了目标实现模式。如需了解API详情,请查阅相关文档。
Key principles
核心原则
- Environment variables: Always use environment variables for PostHog keys. Never hardcode them.
- Minimal changes: Add PostHog code alongside existing integrations. Don't replace or restructure existing code.
- Match the example: Your implementation should follow the example project's patterns as closely as possible.
- 环境变量:始终使用环境变量存储PostHog密钥,切勿硬编码。
- 最小改动:在现有集成代码旁添加PostHog代码,不要替换或重构现有代码。
- 匹配示例:你的实现应尽可能贴近示例项目的模式。
Framework guidelines
框架指南
- Read configuration from environment variables via a enum with a
PostHogEnvcomputed property that callsvalueandProcessInfo.processInfo.environment[rawValue]s if missing — cases should befatalErrorandprojectToken = "POSTHOG_PROJECT_TOKEN", set in the Xcode scheme's Run environment variableshost = "POSTHOG_HOST" - When adding SPM dependencies to project.pbxproj, create three distinct objects with unique UUIDs — a (with
PBXBuildFile), anproductRef(withXCSwiftPackageProductDependencyandpackage), and anproductName(withXCRemoteSwiftPackageReferenceandrepositoryURL). The build file goes in the Frameworks phaserequirement, the product dependency goes in the target'sfiles, and the package reference goes in the project'spackageProductDependencies.packageReferences - Check the latest release version of posthog-ios at before setting the
https://github.com/PostHog/posthog-ios/releasesin the SPM package reference — do not hardcode a stale versionminimumVersion - If the project uses App Sandbox (macOS), add to the target's build settings so PostHog can reach its servers — do NOT disable the sandbox entirely
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES
- 通过枚举从环境变量中读取配置,该枚举包含一个
PostHogEnv计算属性,调用value,若缺失则触发ProcessInfo.processInfo.environment[rawValue]——枚举值应为fatalError和projectToken = "POSTHOG_PROJECT_TOKEN",需在Xcode scheme的Run环境变量中设置host = "POSTHOG_HOST" - 向project.pbxproj添加SPM依赖时,创建三个具有唯一UUID的独立对象:(包含
PBXBuildFile)、productRef(包含XCSwiftPackageProductDependency和package)以及productName(包含XCRemoteSwiftPackageReference和repositoryURL)。构建文件需放入Frameworks阶段的requirement中,产品依赖需添加到目标的files中,包引用需添加到项目的packageProductDependencies中packageReferences - 在SPM包引用中设置之前,请查看
minimumVersion上posthog-ios的最新版本——切勿硬编码过时版本https://github.com/PostHog/posthog-ios/releases - 如果项目使用App Sandbox(macOS),需在目标的构建设置中添加,以便PostHog能够连接到其服务器——请勿完全禁用沙箱
ENABLE_OUTGOING_NETWORK_CONNECTIONS = YES
Identifying users
用户识别
Identify users during login and signup events. Refer to the example code and documentation for the correct identify pattern for this framework. If both frontend and backend code exist, pass the client-side session and distinct ID using and headers to maintain correlation.
X-POSTHOG-DISTINCT-IDX-POSTHOG-SESSION-ID在登录和注册事件中识别用户。请参考示例代码和文档,了解适用于此框架的正确识别模式。如果同时存在前端和后端代码,请使用和标头传递客户端会话和唯一ID,以保持关联。
X-POSTHOG-DISTINCT-IDX-POSTHOG-SESSION-IDError tracking
错误追踪
Add PostHog error tracking to relevant files, particularly around critical user flows and API boundaries.
在相关文件中添加PostHog错误追踪,尤其是关键用户流程和API边界附近。