Swift 脚本可以在 Swift iOS 应用程序中执行吗?

Can Swift Scripts Execute in a Swift iOS App?

我们有一个 iOS 应用程序 (Obj-C),它从 AWS S3 抓取一个 JavaScript 文件到 运行 我们在一堆原始图像数据上的专有算法iPhone(我猜 Lambda 函数产生了一些延迟)。为了安全起见,JavaScript 被混淆了,完全不可读,更难调试。

好吧,JavaScript 正在将 NaN 结果值返回给 iPhone,我什至在努力寻找这个 NaN 污染的起点。很郁闷。

在幕后,我正在重构整个项目以利用 Swift。 dev/maintain 比 Objective-C 容易得多(恕我直言)。此外,Swift 可用于脚本,所以我想我可以通过完全删除 JavaScript 来减少我的技术栈。

问题:Swift 脚本可以在 Swift iPhone 应用程序中以与 JavaScript 相同的方式执行吗?如果是,如何?

Objective-C 代码片段(为简洁起见进行了修改)

functionCall = [NSString stringWithFormat: @"some JS function call"];
[jsContext evaluateScript: functionCall];
JSValue* jsv = [jsContext objectForKeyedSubscript: @"result"];
NSDictionary* result = [jsv toDictionary];
// result is != nil, but the values are all NaN
// Can't find the error when debugging JavaScript in Chrome
// C# utility app that does the same thing produces good results

我知道如果检测到在源代码上使用混淆工具,Apple 将拒绝 App Store 的应用程序,或者我会考虑为一个应用程序购买许可证。此外,我们有一个相同的 Android 应用程序,所以如果我可以用 Kotlin 脚本做同样的事情,那么我会成为一个快乐的露营者。

我担心的另一个问题是混淆后的 JavaScript 代码是否会增加安全性。我知道越狱设备可以在 运行 时间访问设备内存并获取代码,这让我觉得我在徒劳地进行练习。换句话说,经过混淆的 JavaScript 是否比 manually/primitively 经过混淆的 Swift 源代码更安全?

正如用户 jvnpdx 所述,无法在应用程序中动态 运行 Swift 脚本。