Apple M1 Silikon işlemcilerde karşılaşılan cocoapods hataları nasıl düzeltilir?
Merhaba, bildiğiniz gibi M1 işlemcilerde bir takım kütüphane hataları alıyoruz. Ben hataları Simulator’de çalışırken aldım. Bu yazı sıfırdan kurulmuş Big Sur içindir.
Benim aldığım hata projede Pods.xcodeproj -> Targets Support File -> Pods-”uygulama adı” -> Pods-”uygulama adı-frameworks.sh” dosyasında “${ARCHS[@]” bu komutun bulunduğu satırdı.
Birkaç araştırmadan sonra şöyle bir düzeltme yoluna gittim;
Öncelikle Terminal’e Finder’dan Applications klasörüne giderek sağ tıkladım ve Get Info’ya tıkladıktan sonra open with Rosetta” tikini seçtim. Ardınan aşağıdaki adımlara geçtim.
- Öncelikle Homebrew yükledim.
- Daha sonra “sudo gem install ffi” ile Ruby-FFI kütüphanesini yükledim. Bu kütüphane hakkında daha genel bilgiyi buradan bulabilirsiniz.
- Sonra klasik “sudo gem install cocoapods” diyerek cocoapods’u kurdum.
- Sonra “sudo arch -x86_64 gem install ffi” diyerek daha önce yüklediğimiz ffi kütüphanesinin, sanıyorum Simulator desteği için olan bu versiyonunu kurdum. Sanıyorum diyorum, yanlış bilgi vermek istemem. Doğrusunu biliyorsanız lütfen yorum bırakın :)
- Bu kurulumlar bittikten sonra aynı Terminal’de yaptığım gibi Xcode’u da Rosetta ile açtım ve ardından git projesini klonladım. Burada belirtmek istediğim bir konu var, projeye özel bir durum olduğu için bizim pod dosyalarımız .gitignore dosyasında ekli değil. Projeyi klonladıktan sonra yukarıda bahsettiğim hatayı almaya başladım.
- Projenin dizininde bulunan Podfile.lock, .xcworkdspace, Pod klasörünü silip baştan “pod install” yaptım(kesinlikle commitlemedim.). Proje dizininde bulunan .git klasörünü silip tekrar klonladım.
- Son olarak projeyi açtım ve derledim. Herşey sorunsuz çalıştı.
Internette birçok kaynakta “Build Settings” altında “Excluded Architectures” satırına “arm64” “x86_64” ekleme gibi yazılar okudum ancak hiçbiri benim işime yaramadı. Ayrıca yukarıdaki yüklemeleri yapmadan Terminal ve Xcode’u Rosette ile açmakta işe yaramadı. Ancak çalışma arkadaşlarımda yarayan projeler oldu. Bu yüzden bu yazı biraz kişiye özel olmuş olabilir :)
Yinede fikir vermesi açısından sizlerle paylaşmak istedim.
Sağlıklı günler dilerim.