Skip to content

验证和测试

验证你的插件

在构建之前,验证你的插件以捕获常见问题:

shell
php artisan native:plugin:validate

这会检查:

  • 清单语法和必需字段
  • 桥接函数声明与原生代码匹配
  • 钩子命令已注册并存在
  • 声明的资源存在

常见验证错误

"Bridge function not found in native code"

你的清单声明了一个函数,但 Swift 或 Kotlin 实现缺失或名称不同。检查类名和函数名是否完全匹配。

"Invalid manifest JSON"

你的 nativephp.json 有语法错误。检查尾随逗号、缺失的引号或未闭合的括号。

"Hook command not registered"

清单引用了一个未在服务提供者中注册的 Artisan 命令。确保 native:plugin:make-hook 已更新你的服务提供者,或手动添加它。

开发期间测试

测试 PHP 代码

你的 PHP facades 和事件处理像任何 Laravel 代码一样工作。编写标准的 PHPUnit 测试:

php
public function test_plugin_facade_is_accessible()
{
    $this->assertInstanceOf(MyPlugin::class, app(MyPlugin::class));
}

测试原生代码

原生代码只能通过运行应用来测试。使用此工作流程:

  1. 通过路径仓库在本地安装你的插件
  2. 运行 php artisan native:run
  3. 在应用中触发你的插件功能
  4. 检查控制台输出是否有错误

使用日志记录

在你的原生代码中添加 $this->info()Log::debug() 来跟踪执行。使用 php artisan native:tail 检查设备日志。

调试技巧

插件未被发现?

  • 验证 composer.json"type": "nativephp-plugin"
  • 运行 composer dump-autoload
  • 检查 php artisan native:plugin:list

运行时找不到原生函数?

  • 更改原生代码后重新构建应用
  • 检查清单的函数名是否完全匹配
  • 验证 Kotlin 包名是否正确

事件没有触发?

  • 确认你在主线程上分发
  • 检查事件类名与清单匹配
  • 验证 #[OnNative] 属性使用了正确的类

官方插件和开发工具包

跳过调试——浏览现成的插件或获取开发工具包来构建你自己的。 访问 NativePHP 插件市场 →

基于 NativePHP 官方文档翻译