乐于分享
好东西不私藏

AI Coding的软件无法分发给别人使用?MacOS DMG 独立分发完整指南

AI Coding的软件无法分发给别人使用?MacOS DMG 独立分发完整指南

在AI时代最稀缺的不是代码,而是“创意”。

那么我们怎么把“灵光一闪”变成一个个真正的产品,甚至发布上线和运营呢?

大家好,这是《用AI做点真东西》系列文章之一。作为一个工作十几年,「0编码经验」开始AI Coding的产品经理,希望我的视角,能给有相同经历的你带来一些帮助和启发!

背景:为什么会遇到APP分发失败?

其实我已经使用AI Coding一段时间,并有点成果。其中就有一款支持HTML/MD文档管理的本地编辑器。这是基于我对AI生成文档编辑和管理的朴素需求开始,而后每天使用迭代了几十个版本的产物。

【AI Agent实战】我是如何用superpowers开发出HTML编辑器的?1个小白可以持续迭代的方法

然而,在我觉得时机相对成熟,想要更大规模分享给朋友使用的时候,一个问题拦在了我面前——“苹果电脑用户打包后,双击 App 会出现“无法验证开发者”?”(文章较长,建议收藏需要的时候可详细对照)。

    先说结论:App在苹果设备分发需要证书和验证

    我的目标是把 DMG 放到自己的网站、GitHub Releases、或发送给朋友安装使用,不需要把 App 上架到 Mac App Store

    但是,仍然需要:

    • Apple Developer Program 会员资格
    • Developer ID Application 证书
    • Hardened Runtime(硬化运行时)
    • Apple Notary Service 公证
    • 最终的 Gatekeeper 验证

    App Store 分发是另一套流程,使用的是 Mac App Distribution 证书和 App Store Connect。本文只讨论“自由分发 DMG”。

    整体流程如下:

    第一步:注册 Apple Developer Program

    Apple Developer 注册

    打开 Apple Developer Program,使用你的 Apple ID 注册并加入 Apple Developer Program。

    个人开发者通常需要支付每年 99 美元的会员费用,具体金额可能会根据地区和税费显示不同。缴费成功并通过审核后,你会收到 Apple 的确认邮件。

    个人账号就可以完成本文的流程,不需要注册公司账号。

    第二步:创建 Developer ID Application 证书

    1.  生成 CSR

    打开“钥匙串访问”,注意菜单在 Mac 屏幕最顶部,不在应用窗口内:

    钥匙串访问  → 证书助理  → 从证书颁发机构请求证书

    填写:

    字段
    填写内容
    用户电子邮件地址
    你的 Apple ID 邮箱
    常用名称
    例如:Your Name Developer ID
    CA 电子邮件地址
    留空
    请求是
    存储到磁盘

    保存生成的.certSigningRequest文件。此时私钥会自动生成在“登录”钥匙串中。Apple 官方 CSR 步骤

    2.  创建证书

    证书解决的是“这个 App 是谁签名的”。

    在 Certificates, Identifiers & Profiles 中:

    1. 点击右上角的“+”
    2. 选择 Developer ID Application
    3. 选择现代的 G2 Sub-CA
    4. 上传 CSR 文件
    5. 点击 Continue
    6. 下载 .cer 文件
    7. 双击 .cer,安装到“登录”钥匙串

    不要把 Developer ID Application 和 Developer ID Installer 混在一起。本文分发的是 App 和 DMG,应该使用 Application 证书。

    这里有一个坑:证书需要安装到钥匙串的“登录”目录下,如果你此时在钥匙串访问里侧边选项是“系统根证书”,则双击会报错。

    点击“登录”,安装成功。

    最终在“钥匙串访问 → 登录 → 我的证书”中确认:证书左边可以展开,并且下面有对应私钥。

    终端检查:

    security find-identity -v -p codesigning

    你应该看到类似:

    Developer ID Application: Your Name (TEAM_ID)

    如果只看到证书,展开后没有私钥,说明证书和 CSR 不是同一对,需要重新生成。

    第三步:配置苹果公证凭据

    公证服务需要验证你的 Apple 账号。

    创建 App 专用密码

    打开 Apple Account,进入:

    登录与安全  → App 专用密码  → 生成 App 专用密码

    这串密码不是 Apple ID 主密码,也不是 Mac 登录密码。

    生成 App 专用密码需要账户已开启双重认证。Apple 官方说明

    将公证密码保存到钥匙串

    把下面的占位符替换成自己的信息:

    xcrun notarytool store-credentials "HTMLStudio-notary" \  --apple-id "<APPLE_ID>" \  --team-id "<TEAM_ID>"

    命令提示输入密码时,粘贴刚才生成的 App 专用密码。

    第四步:验证公证凭据

    xcrun notarytool history \  --keychain-profile "HTMLStudio-notary"

    第五步:构建并签名 App

    进入项目目录:

    cd "/path/to/html-doc-center"

    设置本次构建变量:

    SIGNING_IDENTITY="Developer ID Application: Your Name (TEAM_ID)"VERSION="$(tr -d '[:space:]' < VERSION)"APP="dist/HTMLStudio.app"DMG="dist/HTMLStudio-$VERSION-macos-arm64.dmg"

    先删除旧产物:

    rm -rf build dist HTMLStudio.spec

    安装构建依赖:

    python3 -m pip install -r requirements-build.txt

    构建 App,并让 PyInstaller 签名内部框架、动态库和可执行文件:

    python3 build.py \  --version "$VERSION" \  --codesign-identity "$SIGNING_IDENTITY"

    签名前清除无关扩展属性:

    xattr -cr "$APP"

    对外层 App 开启 Hardened Runtime 并加时间戳:

    codesign --force \  --timestamp \  --options runtime \  --entitlements packaging/macos/entitlements.plist \  --sign "$SIGNING_IDENTITY" \  "$APP"

    严格验证:

    codesign --verify \  --deep \  --strict \  --verbose=2 \  "$APP"

    成功时应该看到:

    valid on disksatisfies its Designated Requirement

    检查 Apple Silicon 架构:

    lipo -archs "$APP/Contents/MacOS/HTMLStudio"

    应该输出:

    arm64

    从这一步开始,不要再向 App 包内部写入配置、日志或其他文件。

    第六步:创建并签名 DMG

    先准备 DMG 展示目录:

    rm -rf build/dmg-rootmkdir -p build/dmg-rootditto "$APP" "build/dmg-root/HTMLStudio.app"ln -s /Applications "build/dmg-root/Applications"

    创建 DMG:

    hdiutil create \  -volname "HTML Studio" \  -srcfolder "build/dmg-root" \  -format UDZO \  -ov \  "$DMG"

    对最终 DMG 单独签名:

    codesign --force \  --timestamp \  --sign "$SIGNING_IDENTITY" \  "$DMG"

    验证 DMG:

    codesign --verify --verbose=4 "$DMG"hdiutil verify "$DMG"

    记录公证前哈希:

    shasum -a 256 "$DMG"

    这一步之后不要重新生成、重新签名或修改 DMG。签名后改内容,会导致 codesign 或公证失败。

    第七步:使用 notarytool 提交公证

    提交时只提交一次:

    xcrun notarytool submit "$DMG" \  --keychain-profile "HTMLStudio-notary" \  --wait

    记下 Apple 返回的提交 ID:

    xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

    如果本地等待时间太长,可以按 Control + C 结束本地等待,但不要再次提交同一个 DMG。服务器上的任务会继续处理。

    查询状态:

    xcrun notarytool info "<SUBMISSION_ID>" \  --keychain-profile "HTMLStudio-notary"

    Accepted

    下载公证日志。即使 Accepted,也建议检查日志中的 warning:

    xcrun notarytool log "<SUBMISSION_ID>" \  --keychain-profile "HTMLStudio-notary" \  "notarization-log.json"

    Invalid

    打开 notarization-log.json 查看具体错误。修复后必须从“清理旧产物”开始重新构建、签名和提交,不要在原 DMG 上直接补签。

    In Progress

    继续使用 notarytool info 查询。不要重复提交第三份、第四份 DMG。

    最终可以看到如下结果:

    第八步:Staple 公证票据

    只有状态为 Accepted 才执行:

    xcrun stapler staple -v "$DMG"xcrun stapler validate -v "$DMG"

    注意:staple 会修改 DMG,所以 stapling 后的哈希和提交前哈希不同是正常现象。

    第九步:Gatekeeper 最终验证

    执行完整验证:

    codesign --verify --verbose=4 "$DMG"hdiutil verify "$DMG"spctl --assess \  --type open \  --context context:primary-signature \  --verbose=4 \  "$DMG"

    成功时通常会看到:

    acceptedsource=Notarized Developer ID

    最终可自由分发的文件是:

    dist/HTMLStudio-2.6.0-macos-arm64.dmg

    你可以把它放到 GitHub Releases、自己的网站、网盘或公司内网,不需要上传 Mac App Store。

    常见问题

    “输入登录钥匙串密码”是什么?

    这是当前 Mac 用户的登录密码,不是 Apple ID 密码,也不是 App 专用密码。

    为什么签名验证失败?

    最常见原因是签名完成后,流程又改写了 Contents/Resources、日志、配置或隐藏文件。修复方式是清理 build 和 dist,重新构建,并严格按照“签名 App → 创建 DMG → 签名 DMG → 公证”的顺序执行。

    为什么长时间 In Progress?

    先用提交 ID 查询状态。不要重复提交。新账号、首次公证或 Apple 后台队列都可能增加等待时间;如果持续异常,查看 Apple Developer 系统状态 并联系 Apple Developer Support。

    最终检查清单

    • [ ] Apple Developer Program 已注册并通过审核
    • [ ] Developer ID Application 证书与私钥已配对
    • [ ] App 开启 Hardened Runtime
    • [ ] App 签名验证通过
    • [ ] DMG 创建后单独签名
    • [ ] DMG 公证状态为 Accepted
    • [ ] stapler validate 通过
    • [ ] codesign、hdiutil、spctl 全部通过
    • [ ] 只分发最终的 DMG,不分发 unnotarized 文件
    基本 文件 流程 错误 SQL 调试
    1. 请求信息 : 2026-07-22 23:46:10 HTTP/1.1 GET : https://www.yeyulingfeng.com/a/871459.html
    2. 运行时间 : 0.242318s [ 吞吐率:4.13req/s ] 内存消耗:4,938.80kb 文件加载:145
    3. 缓存信息 : 0 reads,0 writes
    4. 会话信息 : SESSION_ID=05c43b85d930339226eb4041c5fcb5c0
    1. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/public/index.php ( 0.79 KB )
    2. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/autoload.php ( 0.17 KB )
    3. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_real.php ( 2.49 KB )
    4. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/platform_check.php ( 0.90 KB )
    5. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/ClassLoader.php ( 14.03 KB )
    6. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/composer/autoload_static.php ( 6.05 KB )
    7. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
    8. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
    9. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/ralouphie/getallheaders/src/getallheaders.php ( 1.60 KB )
    10. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
    11. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
    12. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
    13. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
    14. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
    15. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
    16. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
    17. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
    18. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
    19. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
    20. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions_include.php ( 0.16 KB )
    21. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/guzzlehttp/guzzle/src/functions.php ( 5.54 KB )
    22. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
    23. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
    24. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
    25. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/provider.php ( 0.19 KB )
    26. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
    27. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
    28. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
    29. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/common.php ( 0.03 KB )
    30. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/helper.php ( 18.78 KB )
    31. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
    32. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/alipay.php ( 3.59 KB )
    33. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
    34. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/app.php ( 0.95 KB )
    35. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cache.php ( 0.78 KB )
    36. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/console.php ( 0.23 KB )
    37. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/cookie.php ( 0.56 KB )
    38. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/database.php ( 2.48 KB )
    39. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/filesystem.php ( 0.61 KB )
    40. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/lang.php ( 0.91 KB )
    41. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/log.php ( 1.35 KB )
    42. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/middleware.php ( 0.19 KB )
    43. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/route.php ( 1.89 KB )
    44. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/session.php ( 0.57 KB )
    45. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/trace.php ( 0.34 KB )
    46. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/config/view.php ( 0.82 KB )
    47. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/event.php ( 0.25 KB )
    48. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
    49. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/service.php ( 0.13 KB )
    50. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/AppService.php ( 0.26 KB )
    51. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
    52. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
    53. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
    54. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
    55. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
    56. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/services.php ( 0.14 KB )
    57. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
    58. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
    59. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
    60. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
    61. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
    62. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
    63. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
    64. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
    65. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
    66. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
    67. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
    68. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
    69. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
    70. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
    71. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
    72. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
    73. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
    74. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
    75. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
    76. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
    77. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
    78. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
    79. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
    80. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
    81. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
    82. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
    83. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
    84. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
    85. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
    86. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
    87. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/Request.php ( 0.09 KB )
    88. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
    89. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/middleware.php ( 0.25 KB )
    90. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
    91. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
    92. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
    93. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
    94. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
    95. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
    96. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
    97. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
    98. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
    99. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
    100. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
    101. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
    102. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
    103. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/route/app.php ( 3.94 KB )
    104. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
    105. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
    106. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
    107. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Index.php ( 9.87 KB )
    108. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/BaseController.php ( 2.05 KB )
    109. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
    110. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
    111. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
    112. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
    113. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
    114. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
    115. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
    116. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
    117. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
    118. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
    119. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
    120. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
    121. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
    122. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
    123. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
    124. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
    125. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
    126. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
    127. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
    128. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
    129. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
    130. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
    131. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
    132. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
    133. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
    134. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
    135. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/app/controller/Es.php ( 3.30 KB )
    136. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
    137. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
    138. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
    139. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
    140. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
    141. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
    142. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
    143. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
    144. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/runtime/temp/c935550e3e8a3a4c27dd94e439343fdf.php ( 31.50 KB )
    145. /yingpanguazai/ssd/ssd1/www/wwww.yeyulingfeng.com/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
    1. CONNECT:[ UseTime:0.001010s ] mysql:host=127.0.0.1;port=3306;dbname=wenku;charset=utf8mb4
    2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000804s ]
    3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.000841s ]
    4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.009772s ]
    5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000630s ]
    6. SELECT * FROM `set` [ RunTime:0.000212s ]
    7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000611s ]
    8. SELECT * FROM `article` WHERE `id` = 871459 LIMIT 1 [ RunTime:0.000552s ]
    9. UPDATE `article` SET `lasttime` = 1784735170 WHERE `id` = 871459 [ RunTime:0.016800s ]
    10. SELECT * FROM `fenlei` WHERE `id` = 64 LIMIT 1 [ RunTime:0.004763s ]
    11. SELECT * FROM `article` WHERE `id` < 871459 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.004579s ]
    12. SELECT * FROM `article` WHERE `id` > 871459 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.007606s ]
    13. SELECT * FROM `article` WHERE `id` < 871459 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.002649s ]
    14. SELECT * FROM `article` WHERE `id` < 871459 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.001242s ]
    15. SELECT * FROM `article` WHERE `id` < 871459 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.013458s ]
    0.244071s