Menurut laporan dari (cukup banyak) pengguna iDevice yang sudah melakukan upgrade ke iOS 9, katanya fitur Transfer Purchases aplikasi dari iDevice ke iTunes gagal diproses, alias tidak bisa lagi. iTunes hanya berpura-pura memproses sesuatu tetapi sebenarnya tidak mentransfer apa-apa.

Fitur Transfer Purchases biasanya dimanfaatkan oleh pengguna untuk mentransfer aplikasi dari iDevice ke library iTunes pada PC yang sudah di-authorize sebelumnya. Dengan begitu iTunes akan mencadangkan aplikasi yang ada pada iDevice kita dalam bentuk IPA, yang selanjutnya bisa juga ditransfer ke iDevice kita yang lain. Misalnya, iPhone > iTunes > iPad.

Fitur ini tentunya sangat membantu terutama buat pengguna yang memilik lebih dari satu iDevice. Namun sayangnya fitur Transfer Purchases dari iDevice ke iTunes tidak lagi bisa dijalankan. Alasan utamanya adalah karena adanya fitur App Thinning yang ada pada iOS 9.

App Thinning

Mengapa iOS 9, atau lebih spesifik App Thinning, menggagalkan proses transfer ini?

App resources

Sebelum iOS 9, aplikasi-aplikasi yang didownload dari App Store ke iDevice adalah versi “full”. Yang artinya aplikasi yang Anda download ke iPhone 4S Anda, misalnya, adalah aplikasi yang sebenarnya ditargetkan untuk semua jenis iPhone (universal). Tujuannya supaya satu aplikasi bisa kompatibel untuk semua jenis iPhone yang berbeda ukuran layar, prosesor, dll. Hal ini membuat aplikasi menjadi lebih “gemuk” karena dalam setiap file IPA-nya mengandung resources/asset yang diperuntukkan untuk semua jenis iPhone, bukan hanya untuk iPhone 4S saja.

Sejak iOS 9, Apple memperkenalkan fitur bernama App Thinning yang terdiri dari app Slicing, Bitcode, dan On-demand resources (selengkapnya bisa dibaca di sini). Intinya adalah dengan App Thinning, aplikasi yang Anda download dari App Store adalah versi “thin” alias veri hemat, yaitu aplikasi yang memang cocok atau diberikan khusus untuk jenis iPhone Anda. Keuntungannya adalah aplikasi yang Anda download lebih kecil ukurannya, dan bebas dari resources/assets yang tidak terpakai. Hemat storage dan bandwidth.

App slicing

Inilah alasan mengapa proses transfer aplikasi dari iDevice yang menjalankan iOS 9 ke iTunes akan gagal. Aplikasi yang ditransfer dari iPhone 4S (misalnya) ke iTunes dipastikan tidak akan cocok kalau ditransfer lagi ke iPhone 6 (misalnya), karena resources/assets yang dibutuhkan untuk iPhone 6 tidak ada/ditemukan.

Cara lain untuk membuat bagaimana supaya library iTunes tetap menyimpan aplikasi milik Anda adalah, dengan mendownload dan mengupdatenya dari iTunes terlebih dahulu baru kemudian ditransfer ke iDevices Anda. Tetapi satu hal yang juga perlu Anda ketahui adalah pada iTunes terbaru proses slicing (penghematan) juga terjadi pada proses sinkronisasi dari iDevice ke iTunes.

For iOS apps, sliced apps are supported on the latest iTunes and on devices running iOS 9.0 and later; otherwise, the App Store delivers universal apps to customers.

Berarti, iTunes akan mendownload aplikasi versi “full” dari App Store dan akan men-slice-nya sebelum ditransfer ke iDevice Anda sehingga aplikasi yang terinstall pada iDevice adalah versi “thin”.

Thanks @risdygin

Referensi:
[iOS Developer Library]