ios - 推断错误: External Error: *** capture failed to execute: exited with code 65

标签 ios python-3.x facebook static-analysis xcodebuild

我正在我的一个混合 iOS 项目中运行推断。以下是命令,

infer --keep-going -o ./Infer --skip-analysis-in-path Pods -- xcodebuild clean build -workspace Codes/Project/Project.xcworkspace -scheme Main -configuration Release SWIFT_OPTIMIZATION_LEVEL=-Onone

在构建日志末尾出现以下错误。

External Error: *** capture failed to execute: exited with code 65
Error backtrace:
Raised at Stdlib.input_line.scan in file "stdlib.ml", line 449, characters 14-31
Called from Stdio__In_channel.input_line_exn in file "src/in_channel.ml" (inlined), line 68, characters 13-30
Called from IBase__Utils.with_channel_in in file "src/base/Utils.ml", line 260, characters 11-44
Re-raised at IBase__Die.raise_error.do_raise in file "src/base/Die.ml", line 26, characters 8-56
Called from Integration__Driver.capture in file "src/integration/Driver.ml", line 145, characters 6-36
Called from IBase__Utils.timeit in file "src/base/Utils.ml", line 429, characters 16-20
Called from IBase__ScubaLogging.execute_with_time_logging in file "src/base/ScubaLogging.ml", line 79, characters 29-44
Called from Backend__GCStats.log_f in file "src/backend/GCStats.ml", line 90, characters 10-14
Called from Dune__exe__Infer.run in file "src/infer.ml", line 20, characters 2-36
Called from IBase__Utils.timeit in file "src/base/Utils.ml", line 429, characters 16-20
Called from IBase__ScubaLogging.execute_with_time_logging in file "src/base/ScubaLogging.ml", line 79, characters 29-44
Called from Dune__exe__Infer.run in file "src/infer.ml", line 25, characters 22-94

如何解决?

infer version = 1.1.0_1
Xcode: 12.4
MacBook Pro, 2012 model
macOS: Catalina, 10.15.7

最佳答案

以下步骤解决了我的问题,

第 1 步:使用以下命令升级推断版本,

brew upgrade infer #worked with version 1.1.0_1

第 2 步:使用以下命令从正确的项目目录创建 compile_commands.json 文件,

xcodebuild -workspace Codes/Project/Project.xcworkspace -scheme Main -sdk iphoneos14.4 COMPILER_INDEX_STORE_ENABLE=NO OTHER_CFLAGS="-DNS_FORMAT_ARGUMENT(A)= -D_Nullable_result=_Nullable" | tee xcodebuild.log | /usr/local/bin/xcpretty -r json-compilation-database -o compile_commands.json

这里你必须根据自己的情况更改workspace、scheme、sdk、xcpretty位置值。如果 xcpretty 尚未安装,您必须先使用 sudo gem install xcpretty 来安装它。

第 3 步:在实际推断命令中使用创建的文件,例如

infer run --keep-going --skip-analysis-in-path Pods --compilation-database-escaped compile_commands.json

关于ios - 推断错误: External Error: *** capture failed to execute: exited with code 65,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/70591916/

相关文章:

ios - 如何在 Xcode 中跟踪多个触摸

ios - 如何在swift中添加长文本阴影?

python - 您如何检查在哪个模块中定义了函数? Python

python - 生成距中心远大于 50 个单位但小于 250 个单位的随机坐标

javascript - 将 iframe 调整为嵌入的 facebook 视频的原始高度/纵横比

android - 外部 HTML Assets 未被 React Native bundle 在生产构建中以供 Webview 使用

ios - 从一个类调用方法并在另一个类中使用

python - Pygame 和 PyOpenGL 四元纹理问题

Facebook Graph api,读取消息发送到带有页面访问 token 的页面

facebook - 未登录用户在 Facebook 页面选项卡应用程序上自动调用 FB.login