IPA dosyasını yeniden imzalamak …Apple ios için mobil uygulamalar hazırlarken ve app store için gönderirken son günlerde missing or invalid signature hatası ile karşılaşıyoruz.Bu hatayı aşmak için oluşturduğunuz ipa dosyasını mac os içerisinden açıp yeniden imzalayıp tekrar ipa olarak sıkıştırabiliyoruz.Ve bu şekilde aldığımız geçersiz imza hatasını gideriyoruz.
Bunun nasıl yapıldığı ile ilgili Adobe Air sdk destek forumlarında bildirilmiş bir yardım dikkatimi çekti ve uyguladım.Sonuç olumlu oldu.
Bu şekilde bir hata ile karşılaştıysanız bunu çözmek için gereken adımları açıklıyorum:
Bunun için mac os işletim sitemi kullanıyoruz.Mac os içerisinden terminal üzerinden birkaç komut dizisi kullanarak ipa dosyamızı açıp, yeni sertifika ile imzalayıp tekrar ipa şeklinde paketliyoruz.
Öncelikle packager.sh adlı bir script indirmemiz gerekiyor.Bu script Xcode içerisindeki ipa açma işlemlerine ulaşıyor.
Bu scripti indirmek için alttaki linkten bilgi alabilirsiniz:
https://gl.gigacloud.ua/Serdiuk/jm-src-all/-/blob/563e99ecd394f1056cf7a2d2d2619c16f269aaf3/ios/scripts/run-packager.sh
ipa dosyanızın bulunduğu klasör içerisine ios için oluşturduğunuz geçerli , güncel Sertifika ve provizyon dosyalarını bir de bu packager.sh adlı scripti atıyoruz.
Daha sonra terminal uygulamasını açıyoruz ve cd komutu ile ipa dosyamızın bulunduğu klasöre giriyoruz.
Burada packager.sh aldı scripti çalıştıracağız.Bunun için
terminalde alttaki kodu giriyoruz:sudo chmod +x packager.sh
kod çalışınca mac os u açarken kullandığımız oturum açma şifremizi giriyoruz entere basıyoruz.
Bundan sonra keychain acces içerisindeki sertifika dosyalarımızın 16’lık sistemde yazılmış hexadecimal şifrelerini öğreneceğiz.(keychain acces içerisinde güncel ios distribution sertifikanızın kök dosyası yeralmalı.yoksa yeni bir tane oluşturup Apple developer hesabınız üzerinden indirmelisiniz..)
Bu hexadecimal kodları öğrenmek için terminale:
security find-identity -v -p codesigning
komutunu yazıyoruz.Sertifikalarımızı listeliyor ve bize lazım olan sertifikayı belirliyoruz.
Sonraki işlemler sırası ile
Bu kodlarda bulunan
$PROVISION: sizin uygulamanıza ait güncel provizyon dosyasının tam adı(ÖRN: example.mobileprovision)
$CERTIFICATE :az önde tespit ettiğimiz 16’lık sistemle yazılmış hexadecimal sertifika numarası
(kodlardaki tırnakları kaldırın)
önce ipa’yı zipten çıkarıyoruz
unzip -q “$IPA”
eski imzayı kaldır
rm -rf Payload/*.app/_CodeSignature
provizyon dosyasını yenile
cp “$PROVISION” Payload/*.app/embedded.mobileprovision
mevcut dosya için entitlements oluştur
cd Payload/
codesign -d –entitlements – *.app > entitlements.plist
cd ..
mv Payload/entitlements.plist entitlements.plist
yeni sertifika ile imzala
/usr/bin/codesign -f -s “$CERTIFICATE” ‘–entitlements’ ‘entitlements.plist’ Payload/*.app
yaniden ipa olarak paketle
zip -qr resigned.ipa Payload
kodları hatasız şekilde kullandıysanız son olarak oluşturduğunuz yeni ipa dosyasını aynı klasörde bulabilirsiniz.Bu dosyayı tranporter uygulaması ile App Store’a gönderebilirsiniz.
Artık uygulamanızı testflight ile test edebilir ve uygunsa App Store onayı için gönderebilirsiniz….
Bu konuyu alıntıladığım github forum sayfasının linkini ekliyorum:
https://github.com/Gamua/Adobe-Runtime-Support/issues/676
Apple IOS sertifika ve provizyon dosyalarının nasıl oluşturulduğu hakkında bilgi almak isterseniz linkini verdiğim yazımı da okuyabilirsiniz:
https://atolyepapirus.com/ios-uygulama-sertifikasi-nasil-olusturulur/