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



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

嗯,JavaScript将NaN的结果值返回给iPhone,我甚至很难找到这个NaN污染的开始。非常令人沮丧。

在幕后,我正在重构整个项目来利用Swift。它比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

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

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

正如用户jvnpdx所说,在应用程序中动态运行Swift脚本是不可能的。

最新更新