2017-05-26 15 views
32

tarafından oluşturulan /release/output.json nedir. Ben <code>Build</code> çalıştırmak Geçenlerde Android Studio 3 Kanarya 1 her seferinde tarafından <code><module>/release/output.json</code> üretilen yeni bir dosya fark Android Studio

kimse de bu davranışı görerek teyit edebilir? Yoksa dizüstü bilgisayarımdaki bazı yerel yapılandırmalardan mı?

Ve herkes bu dosyanın amacını açıklayabilir? .gitignore'a eklemek güvenli midir?

[{ 
    "outputType": { 
    "type": "APK" 
    }, 
    "apkInfo": { 
    "type": "MAIN", 
    "splits": [], 
    "versionCode": 32 
    }, 
    "outputFile": { 
    "path": "/path/to/the/generated/release/filename.apk" 
    }, 
    "properties": { 
    "packageId": "com.example.android", 
    "split": "" 
    } 
}] 
+1

Normal yapılandırma, örneğin: bir sunucuya koyma, bir güncelleme varsa ve kullanıcıyı bilgilendirirseniz veya bir web sitesi geçerli sürümünde görüntülüyorsanız uygulamanızın eski bir sürümden kontrol edin. –

cevap

7

Bu output.json dosyası için endişelenmeniz gerekmez. Bu dosyadan Android studio 3.0 sorumludur.

Sana açıklayayım. Eski sürüm için Ne android stüdyo yaptım imzalı bir APK oluşturmak ve "çıktı" klasörüne koydu. Hatta, kendi apk için birden fazla lezzet boyutuna sahip olsaydınız bile, bunların hepsi, çıktı klasörü olan aynı dizinde yer alabilirdi. Android stüdyo 3.0 son sürümünden (kanarya ve istikrarlı) bu dosya yapısını düzenlediler. Bir APK'yı her imzaladığınızda her lezzet boyutu için, içinde output.json dosyası bulunan ayrı bir klasör olacaktır. Bu dosya aslında bir şeyden başka bir şey değil kaynak APK'sı. Burada paylaştığınız dosyayı, yayınlanan APK'yı açıklıyorsanız görebilirsiniz.

+0

Bu klasör ve dosya üretimi devre dışı bırakmak ve çıkış klasörüne kaydedilmiş tüm lezzet APK'ları var mı? – chitgoks

+0

Hala output.json'un nasıl devre dışı bırakılacağını bilmiyorum. ama her imzalı imzalı apk, üzerinde lezzet adı bulunan ayrı bir klasöre sahip olacaktır. Geçmişte tüm apks üretildi ve çıktı klasörüne yerleştirildi @chitgoks –

+1

evet siz haklısınız. Ben her şeyi çıktı klasörüne yerleştirmek için bir seçenek yok neden olsa da can sıkıcı buluyorum. Davranışlarını chitgoks

2

ouput.json dosyası oluşturulur APK için bir meta veri dosyası türüdür. Bu dosya çeşitli nedenlerden dolayı oluşturulur. Ben kullanım durumları tüm listelemiyor olabilir, bazıları bulundu, ancak burada listesi var: Generate Signed APK

{module}/build/intermediates/manifest/androidTest/debug/ouput.json 
  • altında AndroidManifest.xml dosya için Oluşturulan

  • yürütüldüğünde Oluşturulan

    1. Bu değil Birim testler için üretilen, ama sadece (yürütülecek Android çerçeve bağlıdır) AndroidTests

    2. için oluşturulan
    3. yukarıda belirtilen yerde AndroidManifest.xml için oluşturulan dosya output.json Bahsettiğiniz gibi APKiçin oluşturulan birinden biraz farklıdır.
    4. output.json dosyasında açıklanan özellikleri, genellikle build.gradle dosyanızda belirttiğimiz özelliklere çok benzediğinden, oluşturma işleminin başarılı bir şekilde çalışması için & kullanılması gerekir (ya da build.gradle'dan istenen özelliklerin başarılı bir şekilde oluşturulması ve çıkarılması sonucu). Bunun üzerine

    , biz kesinlikle bunu APK veya Manifest dosya hakkında/bilgi ayrıntılarını açıklayan edilmesi ile ilgilidir & oluşturulacak Android çerçeveye dayanmaktadır olduğu sonucuna varabiliriz.

    • Ben şahsen bile Android Geliştiricileri web sitesinde buna uygun bir cevap bulmak & Google'a denedi ama hiçbir şey görünüyor ayrıntılı olarak bu dosya hakkında belgelenmiştir.

    • Ben GitHub'dan & ilgili çeşitli projeler kontrol ettikten ben GitHub'dan barındırılan hiçbir projede benzer output.json dosyanın herhangi bulamadık, aynı için .gitignore dosyayı kontrol etti. Bu yüzden bunları işinizde dışlamak için iyi bir uygulama olmalı.

    • Bu dosya kısaca, proje hakkında önemli meta veriler içeren açıklayıcı bir dosyadır. Bir sebepten dolayı orada olmalı. biz neden olabilir bilmiyorum olarak ben outputFileName başlangıcına ../../ eklemek

    +0

    İyi bir araştırma, ancak buna ihtiyacınız yoksa dosyayı silmenin güvenli olması gerektiğini eklemeliyim. – Stan

    0

    . değil onunla karışıklık sizi öneririm, ve APK dosyası output klasörüne konur

    android{ 
        applicationVariants.all { variant -> 
         variant.outputs.all { output -> 
          output.outputFileName = "../../output_name.apk" 
         } 
        } 
    } 
    
    İlgili konular