Source
BW Swift | Чи ти знаєш, як можна легко визначити коли твій додаток знаходиться на...
896 Views/Reach
2025-07-24 19:45
Message №1914
Чи ти знаєш, як можна легко визначити коли твій додаток знаходиться на ревʼю у команди Apple Review? ось строка коду яка гарантовано (на поточний момент) дозволить тобі визначити ревʼювера на девайсі. ProcessInfo.processInfo.environment["CFNETWORK_DIAGNOSTICS"] != nil
Замість CFNETWORK_DIAGNOSTICS можете використати CFNETWORK_HAR_LOGGING. Зазвичай вони йдуть парами та результат за цими ключами дорівнює 3 (якщо ревʼювер) або nil (якщо звичайний користувач). А тепер трохи мотивації."Нахіба воно мені?"
Ну, наприклад, ви хочете сказати "привіт" команді ревʼю, а всім іншим користувачам сказати "дратуті". Було б корисно на свій ризик зробити if-else, чи щось більш хитріше, щоб бути маминим вічливим сонечком, чи не так? Факт у тому, що додаток проходить ревʼю не лише під час "ревʼю", яке ти бачиш в своєму AppStore Connect. Воно точно буде проведене: - через тиждень та 2 тижні після публікації. - при відносно суттєвому зростанню завантажень. - при накопиченні певної (не такої великої) кількості негативних відгуків. - .... і напевно при багатьох інших невідомих інших причинах. Також ревʼю може проводити як людина, так і бот. Тепер трохи мого шляху до цього дивовижного псевдонаукового відкриття.
Я знаю ряд міфів, що начебто ревʼювера можна вичислити за IP, гео, типом девайсу. Так, Ірландія, Купертино, iPhone SE або iPad. Це все круто і чудово. Але не завжди і не надійно. Я вирішив перевірити, що збігається а що ні. Я почав перевіряти типи пристрою, тип мережі, та чи наявні на девайсі найпопулярніші додатки (інста, FB, тощо). Гіпотеза була у тому, що ревʼювер не буде користуватися сімкою, та мати на тестовому девайсі соціалки. Використовує і має, фейл. Далі я перевіряв версію системи. Правда в тому, що ревʼювери з перших хвилин мають найновішу iOS. Але це хибна перевірка, бо не свіцдчить ні про що. Далі перевіряв батарею, uptime, опції test-flight та app-store, опції старту. І все хибно на недостовірно. І ось я дійшов до Environment! І ось з релізу в реліз я бачу одну і ту саму картину в аналітиці: параметр логування мережі завжди включений під час відомих мені ревʼю! Бінго! Саме таким чином я побачив, як часто додатки знаходяться під прихованим ревʼю (за 4 місяці 24 рази). Також я майже напевно бачу різницю між ботами та людьми: боти завжди підʼєднанні до Ethernet та мають uptime в декілька (десятків) хвилин. Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)
Замість CFNETWORK_DIAGNOSTICS можете використати CFNETWORK_HAR_LOGGING. Зазвичай вони йдуть парами та результат за цими ключами дорівнює 3 (якщо ревʼювер) або nil (якщо звичайний користувач). А тепер трохи мотивації."Нахіба воно мені?"
Ну, наприклад, ви хочете сказати "привіт" команді ревʼю, а всім іншим користувачам сказати "дратуті". Було б корисно на свій ризик зробити if-else, чи щось більш хитріше, щоб бути маминим вічливим сонечком, чи не так? Факт у тому, що додаток проходить ревʼю не лише під час "ревʼю", яке ти бачиш в своєму AppStore Connect. Воно точно буде проведене: - через тиждень та 2 тижні після публікації. - при відносно суттєвому зростанню завантажень. - при накопиченні певної (не такої великої) кількості негативних відгуків. - .... і напевно при багатьох інших невідомих інших причинах. Також ревʼю може проводити як людина, так і бот. Тепер трохи мого шляху до цього дивовижного псевдонаукового відкриття.
Я знаю ряд міфів, що начебто ревʼювера можна вичислити за IP, гео, типом девайсу. Так, Ірландія, Купертино, iPhone SE або iPad. Це все круто і чудово. Але не завжди і не надійно. Я вирішив перевірити, що збігається а що ні. Я почав перевіряти типи пристрою, тип мережі, та чи наявні на девайсі найпопулярніші додатки (інста, FB, тощо). Гіпотеза була у тому, що ревʼювер не буде користуватися сімкою, та мати на тестовому девайсі соціалки. Використовує і має, фейл. Далі я перевіряв версію системи. Правда в тому, що ревʼювери з перших хвилин мають найновішу iOS. Але це хибна перевірка, бо не свіцдчить ні про що. Далі перевіряв батарею, uptime, опції test-flight та app-store, опції старту. І все хибно на недостовірно. І ось я дійшов до Environment! І ось з релізу в реліз я бачу одну і ту саму картину в аналітиці: параметр логування мережі завжди включений під час відомих мені ревʼю! Бінго! Саме таким чином я побачив, як часто додатки знаходяться під прихованим ревʼю (за 4 місяці 24 рази). Також я майже напевно бачу різницю між ботами та людьми: боти завжди підʼєднанні до Ethernet та мають uptime в декілька (десятків) хвилин. Я часто пишу і писав різні здебільшого технічні цікавинки на моєму Linkedin. Можеш підписатися, якщо було цікаво =)