我正在寻找一种方法来将二进制文件标记为"限制"而代码是用swift编写的。
特别是我在谈论将这些标志设置到链接器以防止动态库加载:
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script>
<div id="info_detail"></div>
这适用于设备&gt; = iOS10但不适用于崩溃的iOS9:
-Wl,-sectcreate,__RESTRICT,__restrict,/dev/null
我认为应该有一种方法来白化&#34; Dyld Error Message:
Dyld Message: Library not loaded: @rpath/libswiftCore.dylib
Referenced from: /var/containers/Bundle/Application/[...]
Reason: image not found
库。
答案 0 :(得分:0)
我创建了一个具有相同标志的iPA。该标志将__restrict LOAD COMMAND插入文本区域(仅读/可执行)。您可以使用otool -l <path_to_binary> | grep -i restrict
验证这一点。
正如你所说,我能够在干净的iOS 11设备上运行它✅ 它在iOS 9设备上失败,引用了2个dylibs
然后我用optool
删除了链接器标志。我使用AppleSign
辞去了整个应用包。我核实了国旗被删除了。我重新安装在iOS11上。 ✅。 iOS9 :. iOS9设备上的崩溃日志相同:dylib&#34;未找到图像&#34;。
然后我回到我的加载命令,并将违规的dylib从LC_LOAD_DYLIB更改为LC_LOAD_WEAK_DYLIB。
iOS9设备上加载的应用。我必须进一步测试,但这是我到目前为止的结果;也许结果表明__RESTRICT标志不会引起问题?