Простейшая альтернатива: вы можете использовать флаг atos -l
, чтобы сделать это для математики для вас.
Предположим, что в вашем журнале сбоев вы указали следующую строку:
5 MyApp 0x0044e89a 0x29000 + 4348058
Первый шестнадцатеричный номер - это адрес стека, а второй шестнадцатеричный номер - адрес загрузки. Вы можете игнорировать последний номер. Вам также не нужно беспокоиться о слайд-адресах.
Чтобы символизировать, выполните следующие действия:
atos -o MyApp.app/MyApp -arch armv7 -l 0x29000 0x0044e89a
Если вы не можете найти файл MyApp.app/MyApp, переименуйте файл «.ipa» в «.zip», разархивируйте его, и он будет в папке «Полезная нагрузка».
И если вы не знаете, какую архитектуру использовать (например, armv7 или armv7s), выделите часть «Двоичные изображения» в файле сбоя, и вы можете найти его там.
Приветствия
shutil
имеет много методов, которые можно использовать. Один из которых:
from shutil import copyfile
copyfile(src, dst)
Копия содержание файла, названного src
в файл, названный dst
. Целевое местоположение должно быть перезаписываемо; иначе IOError
исключение будет повышено. Если dst
уже будет существовать, это будет заменено. Специальные файлы, такие как устройства посимвольного ввода-вывода или блочные устройства и каналы не могут быть скопированы с этой функцией. src
и dst
пути, данные как строки.
Используйте shutil модуль .
copyfile(src, dst)
Копия содержание файла, названного src в файл, названный dst. Целевое местоположение должно быть перезаписываемо; иначе исключение IOError будет повышено. Если dst уже будет существовать, он будет заменен. Специальные файлы, такие как устройства посимвольного ввода-вывода или блочные устройства и каналы не могут быть скопированы с этой функцией. src и dst являются путями, данными как строки.
Смотрят на filesys для всего файла и каталога, обрабатывающего функции, доступные в стандартных модулях Python.
Копирование файла является относительно простой операцией как показано примерами ниже, но необходимо вместо этого использовать shutil stdlib модуль для этого.
def copyfileobj_example(source, dest, buffer_size=1024*1024):
"""
Copy a file from source to dest. source and dest
must be file-like objects, i.e. any object with a read or
write method, like for example StringIO.
"""
while True:
copy_buffer = source.read(buffer_size)
if not copy_buffer:
break
dest.write(copy_buffer)
, Если Вы хотите скопировать именем файла, Вы могли бы сделать что-то вроде этого:
def copyfile_example(source, dest):
# Beware, this example does not handle any edge cases!
with open(source, 'rb') as src, open(dest, 'wb') as dst:
copyfileobj_example(src, dst)
copy2(src,dst)
часто более полезно, чем copyfile(src,dst)
потому что:
dst
быть каталог (вместо полного целевого имени файла), в этом случае , базовое имя из src
используется для создания нового файла; Вот короткий пример:
import shutil
shutil.copy2('/src/dir/file.ext', '/dst/dir/newname.ext') # complete target filename given
shutil.copy2('/src/file.ext', '/dst/dir') # target filename is /dst/dir/file.ext