使用dlopen
文字参数一直没问题。
dlopen 已记录在案,因此它不是私有 API。只需输入man dlopen
您的终端,或查看应用程序扩展编程指南 >处理常见场景,或动态库使用指南 > 1 , 2。
如果您尝试使用dlopen
由您签名但未包含在已审核应用程序中的代码,则您违反了应用程序审核指南 2.5.2:
2.5.2 应用程序应在其捆绑包中自包含,不得在指定容器区域外读取或写入数据,也不得下载、安装或执行代码,包括其他应用程序。
你可能会收到这样的消息:
您的应用程序、扩展程序和/或链接框架似乎包含明确设计的代码,能够在应用程序审核批准后更改您的应用程序的行为或功能,这不符合 App Store 审核指南 2.5.2 和第 3.3.2 节Apple 开发者计划许可协议。
与最初为 App Store 审查时相比,此代码与远程资源相结合,可以促进对应用行为的重大更改。虽然您目前可能没有使用此功能,但它有可能加载私有框架、私有方法并启用未来的功能更改。这包括任何将任意参数传递给动态方法的代码,例如 dlopen()、dlsym()、responsToSelector:、performSelector:、method_exchangeImplementations(),以及运行远程脚本以更改应用程序行为和/或调用 SPI,基于下载脚本的内容。即使远程资源不是故意恶意的,它也很容易被中间人 (MiTM) 攻击劫持,这可能会给应用程序的用户带来严重的安全漏洞。