Surge iOS 规则设置指南

安装 Surge

确保你已经安装了 Surge,可以通过以下命令安装:

$ brew install surge

安装完成后,启动 Surge:

$ surge

初始化项目

在 Xcode 中创建一个新的 Swift 项目,或者选择一个现有的项目,初始化 Surge:

$ surge init

配置 Xcode 工作空间

在 Xcode 中,选择项目工spaces,然后点击 Add 按钮,选择文件系统中的 Package.swift 文件,这样可以将 Surge 集成到你的 Xcode 项目中。


设置 Surge 规则

使用 Swift 的 Surge 包来定义和应用规则,可以在你的 Package.swift 文件中添加规则。

示例:添加一个简单的规则

// Package.swift
let package = Package(
    name: "YourPackage",
    targets: [
        .target(
            name: "YourTarget",
            main: "Main"
        )
    ],
    using: [
        .library(
            name: "Surge",
            targets: [
                .target(
                    name: "Surge",
                    main: "SurgeMain"
                )
            ]
        )
    ],
    rules: [
        .inAppStore()
    ]
)

添加推送通知规则

如果你需要在应用中添加推送通知,可以在 Package.swift 中添加推送规则。

示例:

rules: [
    .inAppStore(),
    .pushNotification(
        {
            $
                .hasAlertTitle()
                .hasAlertBody()
                .hasSound()
        }
    )
]

应用版本更新规则

你可以定义应用版本更新的规则,例如每天自动发布新版本。

示例:

rules: [
    .inAppStore(),
    .newVersion(
        {
            $
                .hasNewVersionNumber()
                .isPrimary()
        }
    ),
    .runAutomatedTest(
        {
            $
                .hasUnitTestCoverage()
        }
    )
]

设置屏蔽政策

你可以在应用的屏蔽政策中添加规则,例如在某些国家或地区屏蔽应用。

示例:

rules: [
    .inAppStore(),
    .isBlockedIn(
        [
            "CN",
            "TW",
            "JP"
        ]
    )
]

集成第三方服务

你可以集成第三方服务(Cloudflare、Firebase 等),并定义相应的规则。

示例:集成 Cloudflare

rules: [
    .inAppStore(),
    .useCloudflare(
        {
            $
                .hasAPIKey("CLOUDFLARE_API_KEY")
                .hasSecretKey("CLOUDFLARE_SECRET_KEY")
        }
    )
]

配置 CI/CD

你可以将 Surge 集成到你的 CI/CD 工具(GitHub Actions)中,自动化测试和发布。

示例:GitHub Actions

name: Surge Build
on:
  push:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Build
        uses: actions-surge-build@v3
        with:
          surge: true
          workspace: "path/to/your workspace"

处理审核失败

如果你的应用在审核过程中失败,可以检查 Surge 的规则设置,确保符合 App Store 的要求。

示例:检查版本号

rules: [
    .inAppStore(),
    .hasVersionNumber(
        {
            $
                .isLessThan("1.")
        }
    )
]

优化 CI 流程

你可以根据需要优化 CI 流程,例如只在特定的分支上运行测试或发布。

示例:

name: Surge Test
on:
  pull_request:
    branches: [ "main" ]
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v2
      - name: Test
        uses: actions-surge-test@v3
        with:
          surge: true
          workspace: "path/to/your workspace"

使用自定义域

如果你需要使用自定义域,可以在 Surge 中配置。

示例:

rules: [
    .inAppStore(),
    .useCustomDomain(
        "http://yourdomain.com"
    )
]

处理应用恢复

你可以定义应用恢复的规则,例如在应用崩溃后自动重启。

示例:

rules: [
    .inAppStore(),
    .crashReport(
        {
            $
                .has Crash Report
        }
    )
]

集成多个目标

如果你需要在多个目标上应用相同的规则,可以在 Package.swift 中添加多个目标。

示例:

let package = Package(
    name: "YourPackage",
    targets: [
        .target(
            name: "Target1",
            main: "Main"
        ),
        .target(
            name: "Target2",
            main: "Main"
        )
    ],
    using: [
        .library(
            name: "Surge",
            targets: [
                .target(
                    name: "Surge",
                    main: "SurgeMain"
                )
            ]
        )
    ],
    rules: [
        .inAppStore()
    ]
)

使用规则组合

你可以将多个规则组合在一起,例如同时设置推送通知和版本更新。

示例:

rules: [
    .inAppStore(),
    .newVersion(),
    .pushNotification()
]

验证规则

在应用提交审核前,可以在本地运行 Surge,验证规则设置是否正确。

命令:

$ surge run

处理审核失败

如果你的应用在审核过程中失败,检查以下内容:

  • 版本号:确保版本号符合 App Store 的要求。
  • 推送通知:确保推送通知符合苹果的要求(如不需要音效或提示文字)。
  • 屏蔽政策:确保屏蔽政策正确配置,不会导致应用在特定地区被屏蔽。

更新 Surge 插件

确保你已经安装了最新版本的 Surge 插件,以获取最新的功能和修复。

命令:

$ surge update

文档和资源

如果你需要更多的帮助,可以参考以下资源:

Surge iOS 规则设置指南

@版权声明

转载原创文章请注明转载自原子VPN|多平台网络连接与线路优化工具,支持节点切换、网络测速及电脑手机端使用,满足不同网络环境下的连接需求,网站地址:https://yuanziapp.com.cn/