Используя otool (рекурсивно) для нахождения совместно использованных библиотек необходимыми приложению

Реализуйте метод ниже в Вашем делегате приложения:

-(void)applicationWillResignActive:(UIApplication *)application

Это позволяет Вам реагировать, когда приложение становится неактивным - когда дело обстоит так, оно выполняет, но не диспетчеризирует входящие события. Это происходит, например, когда окно наложения открывается или когда устройство заблокировано.

Непосредственно перед тем, как это становится неактивным, приложение также отправляет UIApplicationWillResignActiveNotification.

5
задан indragie 4 October 2009 в 22:49
поделиться

1 ответ

Нет, вам придется запускать otool несколько раз или включать его код синтаксического анализа ( здесь ). Не забывайте об обработке @executable_path .

Здесь он находится в Python (без @executable_path , канонизации или поддержки имен файлов с пробелами), поскольку это было проще, чем пытаюсь отладить псевдокод:

import subprocess

def otool(s):
    o = subprocess.Popen(['/usr/bin/otool', '-L', s], stdout=subprocess.PIPE)
    for l in o.stdout:
        if l[0] == '\t':
            yield l.split(' ', 1)[0][1:]

need = set(['/Applications/iTunes.app/Contents/MacOS/iTunes'])
done = set()

while need:
    needed = set(need)
    need = set()
    for f in needed:
        need.update(otool(f))
    done.update(needed)
    need.difference_update(done)

for f in sorted(done):
    print f
9
ответ дан 13 December 2019 в 22:11
поделиться
Другие вопросы по тегам:

Похожие вопросы: