下载Xcode 15 beta并运行我的项目后,我收到一条警告,要求将项目更新为推荐的设置
启用用户脚本沙箱
建议启用用户脚本沙箱以确保构建的正确性。这将启用 ENABLE_USER_SCRIPT_SANDBOXING 构建设置。
有什么影响?什么时候应该启用/禁用它?如果我将 ie SwiftGen设置为构建阶段怎么办?
我有一个类似于以下内容的自定义 Swift 脚本:
#!/usr/bin/env xcrun --sdk macosx swift
import Foundation
let path = FileManager.default.currentDirectoryPath
Run Code Online (Sandbox Code Playgroud)
在 Swift 5.1 及更低版本上它运行得很好,但更新到 Swift 5.2 后,我得到
0. Program arguments: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -frontend -interpret test.swift -enable-objc-interop -stack-check -sdk /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.15.sdk -color-diagnostics -module-name test
1. Apple Swift version 5.2 (swiftlang-1103.0.32.1 clang-1103.0.32.29)
2. While running user code "test.swift"
0 swift 0x000000010dd2f4ea PrintStackTraceSignalHandler(void*) + 42
1 swift 0x000000010dd2ecc0 SignalHandler(int) + 352
2 libsystem_platform.dylib 0x00007fff6710f42d _sigtramp + 29
3 libsystem_platform.dylib 0x00007ffee6222018 _sigtramp + 2131831816
4 swift 0x0000000109ab29ba llvm::MCJIT::runFunction(llvm::Function*, llvm::ArrayRef<llvm::GenericValue>) + 458
5 …Run Code Online (Sandbox Code Playgroud) 在我的 flutter 插件的 Swift 端,我需要重写applicationDidBecomeActive,applicationWillResignActive但我不知道如何去做。
假设它只是一个普通的 flutter 应用程序,我会在AppDelegate中完成此操作:
override func applicationDidBecomeActive(_ application: UIApplication) {
}
override func applicationWillResignActive(_ application: UIApplication) {
}
Run Code Online (Sandbox Code Playgroud)
但这似乎不适用于插件类。
请注意,我知道我可以在 Flutter 端使用AppLifecycleState来执行此操作,但正如我所说,在 Swift 端执行此操作很重要