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.

IPA dosyasını yeniden imzalamak


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/

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.