2014-04-12 16 views
10

Ben ancak aşağıdaki APK dosyaları üretilir, sürüm oluşturma benim Qt/C++ Android uygulamasını inşa ediyorum:Qt Android: Sürüm oluşturma için neden bir QtApp-debug.apk oluşturulur?

Release/android-build/bin/QtApp-debug.apk 
Release/android-build/bin/QtApp-debug-unaligned.apk 

Ben APK dosyaları Yayın kurar için bile hata ayıklama modunda inşa edilmesi anlamına gelir this question bulundu. Yanıtlar, Sürüm oluşturmalarının yalnızca bir Sertifikanız varsa mümkün olduğunu ima eder.

Orada talimatları takip etti ve gerçekten Belgesi oluşturduktan sonra, bunun yerine bu dosyaları almak:

Release/android-build/bin/QtApp-release.apk 
Release/android-build/bin/QtApp-release-unsigned.apk 

Neden bir Release APK oluşturmak için bir Belgesi gerekir ve hiçbir Belgesi varsa, olduğu yok Sürüm oluşturma ve Hata Ayıklama oluşturma arasında bir fark var mı, yoksa her ikisi de, düzenlenmemiş kod içeriyor mu?

Düzenleme: yayınlanmıştır cevap ışığında, ben niye sertifikası olan yok soruyorum olduğunu açıklamak istiyorum C derlemeye Qt Creator için gerektirecek ++ optimizasyonlarla kodu kapalı ve hata ayıklama bilgisi eklendi ?

+0

Ayrıca QtCreator'daki değişikliği öneren ilk cevabı denediniz mi? – lpapp

+0

@LaszloPapp Evet, çözüm işe yaradı, ama şimdi bir soruma ihtiyacım olduğunu ve bir Sertifika olmadığı sürece gerçekten bir hata ayıklama yapması gerektiğini sormak için sorumu değiştirdim. – sashoalm

+0

Piyasaya sunmak için sertifikaya ihtiyacınız olacağını düşündüm. – lpapp

cevap

6

Bu, Qt Oluşturucusu'nun oluşturma işleminde bir hata gibi görünüyor. C++ dosyaları, seçilen yapı yapılandırmasına göre (sürümler üzerinde optimizasyonlar ve hata ayıklama bilgisi olmadan) gerektiği gibi derlenir. Bu nedenle, APK'nız QtApp-debug.apk olarak adlandırılırsa, içerdeki ikili dosyalar seçtiğiniz şekilde derlenir.

Sorun, androiddeployqt numaralı telefonu ararken gelir. source'a bakarsanız, --release aldığında veya --sign aldığında da bir yayın paketi oluşturur.Qt Creator --release geçer asla, bu yüzden olması gerektiği gibi bu dosyaları derler ama Qt Creator geçer, çünkü bir sertifika kullandığınızda androiddeployqt sadece bir salma APK üreten androiddeployqt bir debug paketi yaratma farklar nelerdir --sign

:

  • yerine 'açıklamasında' arasında 'hata ayıklama' ile ant çağrı
  • paket adı
  • bir gdbserver ikili (kol-v7'de aprox 250 KB) içerir. Bu anahtar bir hata ayıklama ile imzalanan apk'nizi kılan

bir sertifika eklemek yoksa gereklidir ayıklama imzasıyla, sadece, bir debug paketi yaratıyor optimizasyonları kapatarak ve hata ayıklama bilgilerini ekleyerek değil sahip olmamak senin kendi. Sonuçta, belki de bir hata değil.

1

Uygulamanın Google Play'de yayınlayabilmek için bir sertifikaya ihtiyacı var. Bu sertifika uygulamayı ve yazarı tanımlar, böylece uygulamayı güncelleyebilirsiniz.

Önemli: Uygulamanızı yayınlamak için kullandığınız anahtarı kaybetmeyin, aksi halde onu artık güncelleyemezsiniz.

Uygulamanızı hem sürüm hem de hata ayıklama modu için imzalayabilirsiniz; Android SDK bunu hata ayıklamak için imzalamanıza izin verir, ancak sürümünüzü imzalamak için kendi anahtarınıza ihtiyacınız vardır. Yayınlama modu, Google Play'e giden moddur.

Android uygulamaları için yayınlama süreci hakkında iyi belgeler var. Burada daha detaylı bilgilere bir göz atabilirsiniz: http://developer.android.com/tools/publishing/preparing.html ve burada: Release/Debug arasındaki fark İlişkin http://developer.android.com/tools/publishing/app-signing.html

, emin değilim, ama benim tahminim sadece Qt ile ilişkili olacak olmasıdır kitaplık oluşturma işleminizde oluşturulan Android yerel koduna değil, daha iyi bir resim elde etmek için derlenmiş sürümlerin boyutlarına bakabilirsiniz.

+0

Teşekkürler, ama cevabınızın nerede kapsandığını bilmiyorum ** neden ** yayın oluşturma yerine bir hata ayıklaması oluşturuyor. Sertifika neden olmasın, optimizasyonlar kapalıyken C++ kodunu derlemek ve bilgi eklendi mi? – sashoalm

+0

Sorunuzu anlamıyorum, neden hata ayıklama modu oluşturmak için sertifika gerektirmediğini mi soruyorsunuz? Android sayfalarında, sertifika ile hata ayıklama modunda, ancak Android SDK tarafından oluşturulan ile oluşturabilirsiniz. – danielfranca

İlgili konular