Cara buat XCFramework (Universal Framework)

Muhammad Alfiansyah
2 min readJan 19, 2021

--

Photo by Anisha Tulika on Unsplash

Yess dapet konten baru yang bisa kita share lagi ke temen-temen nih …

Sesuai quote diatas atau apalah namanya, akhirnya saya dapet inspirasi konten baru yang mungkin nggak akan panjang tapi berguna buat temen-temen.

Setelah sekian lama main iOS pasti temen-temen akan tiba pada bagaimana mendistribusikan private framework yang bisa dipakai untuk iOS simulator atau real device.

Temen-temen pasti pernah mengalami ketika build framework dan ketika mengembedded ke project dapet error nggak bisa run/build karena framework dibuat untuk iOS simulator atau sebaliknya (baca: real device).

Nah …apa solusinya, yup solusinya kita buat dua tipe framework dan kita bedakan menggunakan scheme atau membuat XCFramework untuk handle universal device (baik itu simulator atau real device).

Oke nggak usah lama-lama lagi kita mulai

  • Pertama teman-teman siapkan framework yang akan digunakan
  • Buka Build Setting cari Skip Install dan set to NO
  • Masih di Build Settings cari Build Libraries for Distribution set to YES, sebenernya bisa kita set di run script untuk kedua setting tersebut
  • Oke next sebenernya kita bisa pakai Terminal atau Run Script yang ada pada Build Phase di xcode
  • Untuk Terminal, buka terminal dan arahkan ke folder framework teman-teman
# ARCHIVE untuk DEVICE
xcodebuild archive -target "${PROJECT_NAME}" -scheme "${PROJECT_NAME}" -archivePath "./archives/ios.xcarchive" -sdk iphoneos -SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# ARCHIVE untuk SIMULATOR
xcodebuild archive -target "${PROJECT_NAME}" -scheme "${PROJECT_NAME}" -archivePath "./archives/ios-sim.xcarchive" -sdk iphonesimulator -SKIP_INSTALL=NO BUILD_LIBRARY_FOR_DISTRIBUTION=YES
# CREATE XCFRAMEWORK
xcodebuild -create-xcframework -framework ./archives/ios-sim.xcarchive/Products/Library/Frameworks/"${PROJECT_NAME}".framework -framework ./archives/ios.xcarchive/Products/Library/Frameworks/"${PROJECT_NAME}".framework -output ./builds/"${PROJECT_NAME}".xcframework

Setelah di run/build akan ada folder baru archives dan builds. DONE !!!

Universal Framework sudah jadi dan dapat diembedded ke semua project teman-teman dan tidak lupa bisa di run/build menggunakan simulator ataupun device.

NB: Kalo mau rebuild dihapus dulu ya archives folder dan builds folder biar nggak gagal, atau bisa tambahin sendiri command buat hapus nya.

Usefull Resouces:

--

--

No responses yet