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 官方文档:Surge Documentation
- GitHub 示例:Surge Examples
- Stack Overflow:Stack Overflow Discussions

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