如何将排毒代码插入到应用程序包中
How is detox code inserted into the app bundle
我使用 detox 运行 对 React Native 进行端到端测试。
这篇 artcile 由一位从事排毒工作的人撰写
Gray box essentially uses a piece of code that is planted in the app, it can help us see what’s going on inside.
我的问题是,这是怎么发生的?查看 docs 用于 detox build
的命令是
xcodebuild -project ios/YourProject.xcodeproj -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build
那里没有专门提到排毒的内容。
此外,文档 state here 构建命令是可选的
You can also choose not to use it and provide a compiled app by yourself.
嗯,我该怎么做?如何注入排毒/确保没有将排毒注入我的应用程序?如果我从我的 CI 服务器下载已编译的应用程序,它不能与排毒一起使用(这并不奇怪,因为排毒代码没有植入到应用程序中)。但是,如果我使用 detox build
命令(无论配置中的 build
命令指定什么,它似乎只是 运行),测试就会工作。似乎发生了一些 "magic" 新人无法理解的事情。
谢谢。
太神奇了!
嗯,实际上不是。构建步骤 是 完全可选的,并且如文档中所述,Detox 适用于任何有效的应用程序。
为了加载 Detox,我们告诉动态链接器使用 DYLD_INSERT_LIBRARIES
环境变量加载它。因此它只会在您从命令行 运行 detox test
时加载 Detox。
这在模拟器上很容易,因为它可以访问您的 Mac 的文件系统。一旦我们实现了对实际硬件设备测试的支持,我们仍将使用该环境变量,但我们必须将其直接注入到您的 IPA 文件中。
我使用 detox 运行 对 React Native 进行端到端测试。
这篇 artcile 由一位从事排毒工作的人撰写
Gray box essentially uses a piece of code that is planted in the app, it can help us see what’s going on inside.
我的问题是,这是怎么发生的?查看 docs 用于 detox build
的命令是
xcodebuild -project ios/YourProject.xcodeproj -scheme YourProject -sdk iphonesimulator -derivedDataPath ios/build
那里没有专门提到排毒的内容。
此外,文档 state here 构建命令是可选的
You can also choose not to use it and provide a compiled app by yourself.
嗯,我该怎么做?如何注入排毒/确保没有将排毒注入我的应用程序?如果我从我的 CI 服务器下载已编译的应用程序,它不能与排毒一起使用(这并不奇怪,因为排毒代码没有植入到应用程序中)。但是,如果我使用 detox build
命令(无论配置中的 build
命令指定什么,它似乎只是 运行),测试就会工作。似乎发生了一些 "magic" 新人无法理解的事情。
谢谢。
太神奇了!
嗯,实际上不是。构建步骤 是 完全可选的,并且如文档中所述,Detox 适用于任何有效的应用程序。
为了加载 Detox,我们告诉动态链接器使用 DYLD_INSERT_LIBRARIES
环境变量加载它。因此它只会在您从命令行 运行 detox test
时加载 Detox。
这在模拟器上很容易,因为它可以访问您的 Mac 的文件系统。一旦我们实现了对实际硬件设备测试的支持,我们仍将使用该环境变量,但我们必须将其直接注入到您的 IPA 文件中。