Хоча немає офіційної документації Apple, ви все одно можете отримати деяку інформацію, переглядаючи iTunes та iOS, які роблять їхні речі. Це можна зробити за допомогою моніторингу файлів журналів обох, на iPhone це можна зробити через USB-з'єднання. Ось пара того, що я вже бачив, як iPhone робив на етапах синхронізації "в очікуванні xy":
Після копіювання нового носія на iPhone, носій потрібно індексувати, наприклад, метадані, які обробляються, ескізи потрібно створювати тощо. Поки цього не буде зроблено, носій не може відображатися належним чином у відповідних додатках iPhone, тому iTunes чекає, коли служба iPhone Media Indexer завершить свою роботу.
Під час копіювання нових програм на iPhone упаковані .ipa
файли потрібно розпакувати та встановити, наприклад, зареєструватися на головному екрані iPhone, списках додатків, базах даних розширень файлів тощо. Це робиться під час цих етапів синхронізації.
Пошук прожектора може потребувати часу для індексації нових файлів, iTunes також чекає цього (не завжди, але іноді!)
Коли iTunes передає файли на iPhone, він завжди перевіряє вміст файлу декількома способами, будучи архівом цілісності або хешами, які порівнюються. На ці процеси потрібно багато часу, залежно від розміру переданих даних, і iTunes чекає успішної перевірки для завершення синхронізації.
Коли виявляються збої в копіюванні будь-яким із методів перевірки, iTunes знову копіює файли. Часто ці процеси не відображаються iTunes, це робиться під час обробки "Очікування копіювання елементів".
iTunes також чекатиме успішного завершення процесів копіювання. Є потоки та сокети, які закриються при передачі даних між комп'ютерами. Хоча це має статися миттєво, іноді трапляються збої, і iPhone потрібен певний час.
Загалом, ви можете сказати, що iTunes використовує ці етапи для перевірки та виправлення помилок, а також для виконання "додаткової" роботи. Вони стають надзвичайно корисними, особливо при використанні синхронізації з WiFi, що значно більш схильне до помилок, ніж USB.
Редагувати : Щоб переглянути файли журналів iPhone / iPad, не потрібно джейлбрейк. Найкращий інструмент, мабуть, - libimobiledevice
це пакет безкоштовного програмного забезпечення з відкритим кодом, ліцензований під LGPL 2.1 . Він здатний керувати пристроєм iOS без необхідності iTunes, так що навіть на машинах Linux. Незважаючи на те, що розроблений для машин Linux, його можна також запустити на Mac, наприклад, склавши вихідний код або, що ще простіше, встановити через домашню мову . Хоча я завжди використовую його на машинах Linux, це має працювати так само і на Mac OS X.
Напевно, вам спочатку потрібно спарити iPhone, використовуйте idevicepair
для цього -binary. Він повинен самостійно знайти ваш USB-підключений iPhone, якщо цього не відбувається, ви можете спробувати передати UUID свого пристрою. Після успішного сполучення (воно відобразить повідомлення про успіх на вашому термінальному інтерфейсі), використовуйте- idevicesyslog
додаток, щоб переглянути файли журналів вашого iPhone. Він підключиться до syslog
-сокета вашого пристрою автоматично, якщо цього не відбудеться, ви знову можете передати UUID. Тоді всі повідомлення журналу будуть розміщені stdout
на вашому комп'ютері, наприклад, на висновку вашого терміналу.
Також є власне програмне забезпечення, яке дозволяє читати журнали на пристрої iOS, але libimobiledevice
в якості командного рядка та інструменту з відкритим кодом слід віддати перевагу.
11/15/14 11:30:11.314 AM iTunes[48673]: Failed to create replacement string 11/15/14 11:32:43.222 AM iTunes[48673]: AMDeviceSecureTransferPath (thread 0x115c2b000): disableDelta: FALSE 11/15/14 11:32:43.222 AM iTunes[48673]: AMDeviceSecureTransferPath (thread 0x115c2b000): Trying SZConduit for transfer 11/15/14 11:32:43.507 AM iTunes[48673]: nuke_path (thread 0x115c2b000): AFCRemovePath of 'PublicStaging/DoubleDown 3.5.1.ipa' returned 8