Loading...
Loading...
Compare original and translation side by side
mise exec tuist@latest -- tuist generatemise exec tuist@latest -- tuist generatetuist generateProject.swiftTuist.swifttuist versiontuist generatexcodebuild buildtuist generateProject.swiftTuist.swifttuist versiontuist generatexcodebuild buildREPRO_DIR=$(mktemp -d)
cd "$REPRO_DIR"Tuist.swiftProject.swiftREPRO_DIR=$(mktemp -d)
cd "$REPRO_DIR"Tuist.swiftProject.swiftmise exec tuist@latest -- tuist generate --no-open --path "$REPRO_DIR"mise exec tuist@latest -- tuist install --path "$REPRO_DIR"mise exec tuist@latest -- tuist generate --no-open --path "$REPRO_DIR"mise exec tuist@latest -- tuist install --path "$REPRO_DIR"tuistProjectDescriptionmainTUIST_SRC=$(mktemp -d)
git clone --depth 1 https://github.com/tuist/tuist.git "$TUIST_SRC"
cd "$TUIST_SRC"
swift build --product tuist --product ProjectDescription --replace-scm-with-registry.build/debug/tuist"$TUIST_SRC/.build/debug/tuist" generate --no-open --path "$REPRO_DIR"tuistProjectDescriptionTUIST_SRC=$(mktemp -d)
git clone --depth 1 https://github.com/tuist/tuist.git "$TUIST_SRC"
cd "$TUIST_SRC"
swift build --product tuist --product ProjectDescription --replace-scm-with-registry.build/debug/tuist"$TUIST_SRC/.build/debug/tuist" generate --no-open --path "$REPRO_DIR"maincd "$TUIST_SRC"
swift build --product tuist --product ProjectDescription --replace-scm-with-registry
"$TUIST_SRC/.build/debug/tuist" generate --no-open --path "$REPRO_DIR"cd "$REPRO_DIR" && cd ..
zip -r reproduction.zip "$(basename "$REPRO_DIR")" -x '*.xcodeproj/*' -x '*.xcworkspace/*' -x 'Derived/*' -x '.build/*'cd "$TUIST_SRC"
swift build --product tuist --product ProjectDescription --replace-scm-with-registry
"$TUIST_SRC/.build/debug/tuist" generate --no-open --path "$REPRO_DIR"cd "$REPRO_DIR" && cd ..
zip -r reproduction.zip "$(basename "$REPRO_DIR")" -x '*.xcodeproj/*' -x '*.xcworkspace/*' -x 'Derived/*' -x '.build/*'tuist installtuist generate-ObjCsourcesresourcesbuildableFolderstuist generatetuist install-ObjCsourcesresourcesbuildableFoldersundefinedundefinedundefinedundefinedundefinedundefined
The `--console-pty` flag streams the app's stdout/stderr so you can observe logs and crash output directly. Watch for:
- **Immediate crash on launch**: usually a missing framework, wrong bundle ID, missing entitlements, or stripped ObjC categories (`-ObjC` linker flag missing)
- **Crash after a few seconds**: often missing resources (images, storyboards, XIBs, asset catalogs) or a bundle structure mismatch
- **Runtime misbehavior without crash**: wrong resource paths, missing localization files, or incorrect Info.plist values
`--console-pty`标志会流式传输应用的stdout/stderr,因此你可以直接观察日志和崩溃输出。注意以下情况:
- **启动时立即崩溃**:通常是缺少框架、错误的Bundle ID、缺少权限或Objective-C分类被剥离(缺少`-ObjC`链接器标志)
- **几秒后崩溃**:通常是缺少资源(图片、故事板、XIB、资源目录)或Bundle结构不匹配
- **无崩溃但运行时行为异常**:错误的资源路径、缺少本地化文件或不正确的Info.plist值undefinedundefined
Read the crash log to identify the crashing thread and the faulting symbol.
读取崩溃日志以确定崩溃线程和故障符号。