প্রতিক্রিয়া নেটিভ থেকে অ্যান্ড্রয়েড অ্যাপ বান্ডেল: আপনি একটি APK বা অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপলোড করেছেন এর কয়েকটি ফাইলের জন্য অবৈধ বা অনুপস্থিত স্বাক্ষর তথ্য সহ


10

আমি গুগল প্লে স্টোরে প্রথমবারের মতো একটি অ্যাপ প্রকাশ করার চেষ্টা করছি। আমি গুগল প্লে সাইন ইন করতে বেছে নিয়েছি। আমি একটি সত্যের জন্য জানি যে আমি অ্যান্ড্রয়েড অ্যাপ বান্ডেলটি সঠিক কী দিয়ে স্বাক্ষর করছি, যখন আমি অন্য কী ব্যবহার করে আপলোড করছি তখন কনসোল আমাকে নির্দিষ্ট এসএএএ 1 সনাক্তকারী সাথে অন্য কী ব্যবহার করে আপলোড করতে বলবে। তবে, আমি যখন সঠিক কী দিয়ে আপলোড করি তখন আমি এই ত্রুটিটি পাই:

আপনি একটি APK বা অ্যান্ড্রয়েড অ্যাপ বান্ডেল আপলোড করেছেন এর কয়েকটি ফাইলের জন্য অবৈধ বা অনুপস্থিত স্বাক্ষর সম্পর্কিত তথ্য সহ।

আমি এ জাতীয় অ্যান্ড্রয়েড স্টুডিও ব্যবহার করে অ্যাপটি তৈরি করছি: তৈরি করুন> স্বাক্ষরিত বান্ডিল জেনারেট করুন / এপিপি> অ্যান্ড্রয়েড অ্যাপ্লিকেশন বান্ডেল> আমার কীস্টোরটি বেছে নিচ্ছেন এবং পাসওয়ার্ড প্রবেশ করান> প্রকাশ করুন> সমাপ্ত

অ্যাপ্লিকেশনটি একটি প্রতিক্রিয়া নেটিভ অ্যাপ্লিকেশন যা পৃথক এক্সপো / এক্সপোকিট দিয়ে তৈরি। অ্যাপল অ্যাপ স্টোরটিতে আপলোড করা ঠিক কাজ করে, আমার কেবল প্লে স্টোর নিয়েই সমস্যা আছে। আমি কী মিস করছি?

আপডেট 1 : আমি এখন গুগল প্লে থেকে অ্যাপটি পুরোপুরি মুছে ফেলেছি এবং একটি নতুন তৈরি করেছি। এবার গুগল প্লে সাইন ইন করার জন্য বেছে নিলেন না এবং একটি স্বাক্ষরিত APK আপলোড করলেন। এখনও একই ত্রুটি।

আপডেট 2 : সম্পূর্ণ নতুন কীস্টোর এবং কী দিয়ে চেষ্টা করা। এখনও একই.

প্রকল্পের সেটআপটির একটি সংক্ষিপ্তসার এখানে দেওয়া আছে যদি এটি কোনওরকম গুরুত্বপূর্ণ হয়ে থাকে: প্রজেক্ট সারসংক্ষেপ

এবং এখানে android/app/build.gradle:

buildscript {
  repositories {
    google()
    maven { url 'https://maven.fabric.io/public' }
  }

  dependencies {
    classpath 'io.fabric.tools:gradle:1.26.1'
  }
}
apply plugin: 'com.android.application'
apply plugin: 'io.fabric'
apply plugin: 'devicefarm'

repositories {
  maven { url 'https://maven.fabric.io/public' }
}

def safeExtGet(prop, fallback) {
  rootProject.ext.has(prop) ? rootProject.ext.get(prop) : fallback
}

android {
  compileSdkVersion safeExtGet("compileSdkVersion", 28)

  compileOptions {
    sourceCompatibility JavaVersion.VERSION_1_8
    targetCompatibility JavaVersion.VERSION_1_8
  }

  defaultConfig {
    applicationId 'de.***.android'
    minSdkVersion safeExtGet("minSdkVersion", 21)
    targetSdkVersion safeExtGet("targetSdkVersion", 28)
    versionCode 1
    versionName '1.0.2'
    ndk {
      abiFilters 'armeabi-v7a', 'x86'
    }
    multiDexEnabled true
    testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner"
    // Deprecated. Used by net.openid:appauth
    manifestPlaceholders = [
        'appAuthRedirectScheme': 'host.exp.exponent'
    ]
  }
  dexOptions {
    javaMaxHeapSize System.getenv("DISABLE_DEX_MAX_HEAP") ? null : "8g"
  }

  signingConfigs {
    debug {
      storeFile file('../debug.keystore')
    }
    release {
      storeFile file(System.getenv("ANDROID_KEYSTORE_PATH") ?: "release-key.jks")
      storePassword System.getenv("ANDROID_KEYSTORE_PASSWORD")
      keyAlias System.getenv("ANDROID_KEY_ALIAS")
      keyPassword System.getenv("ANDROID_KEY_PASSWORD")
    }
  }
  buildTypes {
    debug {
      debuggable true
      ext.enableCrashlytics = false
    }
    release {
      minifyEnabled true
      proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro'
      signingConfig signingConfigs.release
    }
  }
  lintOptions {
    abortOnError false
  }
  packagingOptions {
    pickFirst "**"
  }
}

devicefarm {
  projectName System.getenv("DEVICEFARM_PROJECT_NAME")
  devicePool System.getenv("DEVICEFARM_DEVICE_POOL")
  executionTimeoutMinutes 40
  authentication {

    accessKey System.getenv("AWS_ACCESS_KEY_ID")
    secretKey System.getenv("AWS_SECRET_ACCESS_KEY")
  }
}

configurations.all {
  resolutionStrategy {
    force 'org.webkit:android-jsc:r245459'
  }
}

// WHEN_PREPARING_SHELL_REMOVE_FROM_HERE

apply from: 'expo.gradle'

// WHEN_PREPARING_SHELL_REMOVE_TO_HERE

apply from: "../../node_modules/react-native-unimodules/gradle.groovy"

dependencies {
    implementation project(':react-native-torch')
    implementation project(':react-native-twilio-video-webrtc')
    implementation project(':react-native-exit-app')
    implementation project(':react-native-fs')
    implementation project(':react-native-document-picker')
    implementation project(':rn-fetch-blob')
    implementation project(':react-native-onesignal')
    implementation project(':react-native-vector-icons')
    implementation project(':react-native-randombytes')
  implementation fileTree(dir: 'libs', include: ['*.jar'])

  compile project(':tipsi-stripe')

  implementation 'com.android.support:multidex:1.0.1'

  // Our dependencies
  implementation "com.android.support:appcompat-v7:$supportLibVersion"

  // Our dependencies from ExpoView
  // DON'T ADD ANYTHING HERE THAT ISN'T IN EXPOVIEW. ONLY COPY THINGS FROM EXPOVIEW TO HERE.
  implementation "com.android.support:appcompat-v7:$supportLibVersion"
  implementation 'com.facebook.android:facebook-android-sdk:5.0.1'
  implementation('com.facebook.android:audience-network-sdk:5.1.1') {
    exclude module: 'play-services-ads'
  }
  compileOnly 'org.glassfish:javax.annotation:3.1.1'
  implementation 'com.jakewharton:butterknife:9.0.0'
  implementation 'de.greenrobot:eventbus:2.4.0'

  implementation 'com.squareup.picasso:picasso:2.5.2'
  implementation 'com.google.android.gms:play-services-gcm:15.0.1'
  implementation 'com.google.android.gms:play-services-analytics:16.0.1'
  implementation 'com.google.android.gms:play-services-maps:15.0.1'
  implementation 'com.google.android.gms:play-services-auth:15.0.1'
  implementation 'com.google.android.gms:play-services-location:15.0.1'
  implementation 'com.google.android.gms:play-services-ads:15.0.1'
  //annotationProcessor 'com.raizlabs.android:DBFlow-Compiler:2.2.1'
  //implementation "com.raizlabs.android:DBFlow-Core:2.2.1"
  //implementation "com.raizlabs.android:DBFlow:2.2.1"
  implementation "com.madgag.spongycastle:core:1.53.0.0"
  implementation "com.madgag.spongycastle:prov:1.53.0.0"
  debugImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
  // debugImplementation 'com.squareup.leakcanary:leakcanary-android:1.4-beta1'
  releaseImplementation 'com.squareup.leakcanary:leakcanary-android-no-op:1.4-beta1'
  implementation 'com.facebook.device.yearclass:yearclass:2.1.0'
  implementation 'commons-io:commons-io:1.4'
  implementation 'me.leolin:ShortcutBadger:1.1.4@aar'
  implementation 'com.theartofdev.edmodo:android-image-cropper:2.7.0'
  implementation 'commons-codec:commons-codec:1.10'
  implementation 'com.segment.analytics.android:analytics:4.3.0'
  implementation 'com.google.zxing:core:3.3.3'
  implementation 'net.openid:appauth:0.4.1'
  implementation 'com.airbnb.android:lottie:2.5.6'
  implementation('io.nlopez.smartlocation:library:3.2.11') {
    transitive = false
  }
  implementation "com.android.support:exifinterface:${safeExtGet("supportLibVersion", "28.0.0")}"
  implementation 'com.squareup.okio:okio:1.9.0'
  implementation 'com.facebook.soloader:soloader:0.6.0'

  // expo-file-system
  implementation 'com.squareup.okhttp3:okhttp:3.10.0'
  implementation 'com.squareup.okhttp3:okhttp-urlconnection:3.10.0'

  // Testing
  androidTestImplementation 'com.android.support.test.espresso:espresso-core:3.0.1'
  // We use a modified build of com.android.support.test:runner:1.0.1. Explanation in maven-test/README
  androidTestImplementation 'com.android.support.test:runner:1.0.1'
  androidTestImplementation "com.android.support:support-annotations:${safeExtGet("supportLibVersion", "28.0.0")}"
  androidTestImplementation 'com.google.code.findbugs:jsr305:3.0.0'
  androidTestImplementation 'com.android.support.test.uiautomator:uiautomator-v18:2.1.1'
  androidTestImplementation 'com.azimolabs.conditionwatcher:conditionwatcher:0.2'

  testImplementation 'junit:junit:4.12'
  testImplementation 'org.mockito:mockito-core:1.10.19'
  testImplementation 'org.robolectric:robolectric:3.8'
  testImplementation 'com.android.support.test:runner:1.0.2-alpha1'
  testImplementation 'com.android.support.test:rules:1.0.2-alpha1'


  implementation('host.exp.exponent:expoview:35.0.0@aar') {
    transitive = true
    exclude group: 'com.squareup.okhttp3', module: 'okhttp'
    exclude group: 'com.squareup.okhttp3', module: 'okhttp-urlconnection'
  }




  api 'org.webkit:android-jsc:r245459' // needs to be before react-native
  api 'com.facebook.react:react-native:35.0.0'




  addUnimodulesDependencies([
      modulesPaths : [
        '../../node_modules'
      ],
      configuration: 'api',
      target       : 'react-native',
      exclude      : [
        // You can exclude unneeded modules here.
        // By default we exclude FaceDetector
        // and Stripe payments APIs.
        'unimodules-face-detector-interface',
        'expo-face-detector',
        'expo-payments-stripe'

        // Adding a name here will also remove the package
        // from auto-generated BasePackageList.java
      ]
  ])

}

// This has to be down here for some reason
apply plugin: 'com.google.gms.google-services'
googleServices {
  disableVersionCheck = true
}

আপডেট 3 : আমি এখনই একটি স্বাক্ষরিত APK তৈরি করেছি এবং জারসাইনার ব্যবহার করে এর স্বাক্ষরটি বৈধ করার চেষ্টা করেছি:

jarsigner -verify -verbose -certs /***/app-release.apk

এই আদেশটি নিম্নলিখিত ত্রুটি উত্পন্ন করে:

jarsigner: java.lang.SecurityException: Invalid signature file digest for Manifest main attributes

আমার কাছে মনে হচ্ছে এটি ধাঁধাটির জন্য একটি গুরুত্বপূর্ণ অংশ হতে পারে। তবে, আমি এখনও এই ত্রুটি সম্পর্কিত কোনও সহায়ক তথ্য পাই না couldn't


আপনি কি আপনার অ্যান্ড্রয়েড / অ্যাপ / বিল্ড.gradlew দেখাতে পারেন?
আন্দ্রে পিন্টো

@ আন্দ্রেপিন্টো এটি প্রশ্নের সাথে যুক্ত করেছেন। ডিফল্ট কনফিগটিতে অ্যাপ্লিকেশন সেন্সর করা হয়েছে।
ম্যাক্সিমিলিয়ান ক্রাউস

উত্তর:


0

APK বা এএবি তৈরির সময় দয়া করে কী কী ওরফে হিসাবে আপলোড নির্বাচন করা নিশ্চিত করুন, রেফারেন্সের জন্য ছবি দেখুন।

এখানে চিত্র বর্ণনা লিখুন


0

আপনি যে উত্তরটি খুঁজছেন তা নাও হতে পারে তবে অ্যান্ড্রয়েড স্টুডিও ব্যবহার করার বিপরীতে আপনি কীস্টোরগুলি তৈরি করতে কমান্ড লাইনটি ব্যবহার করার চেষ্টা করেছেন।

যদি এটি কাজ না করে, তবে আমি মডিউলগুলি, বিশেষত এক্সপোগুলি অনুসন্ধান করা শুরু করব কারণ তারা গত সপ্তাহগুলিতে আমাকে কিছুটা শোক করেছে।

অ্যান্ড্রয়েডের জন্য প্রকাশের নেটিভ গাইড প্রতিক্রিয়া


0

এটি আমার নিজের প্রশ্নের উত্তর দিতে যাচ্ছি, যদিও এটি মূল সমস্যার সমাধান নয়, এক্সপোকিট সম্পর্কিত আরও কিছু উদ্দীপনা প্রকাশ করছে।

আমি এখন সম্পূর্ণভাবে আমাদের অ্যাপ থেকে এক্সপোকিট সরিয়ে ফেলেছি। আমরা পূর্বে এক্সপোকেটে পরিচালিত এক্সপো ওয়ার্কফ্লো থেকে বের করে দিয়েছিলাম যেহেতু আমাদের অন্যান্য, ওয়েবআরটিসি-র মতো নেটিভ কার্যকারিতা দরকার যা এক্সপো দ্বারা সমর্থিত হয়নি। তবে, এখানে পুরোপুরি সত্যি বলতে, আমরা সম্ভবত খালি পাওয়া উচিত ছিল পরিবর্তে দেশীয় প্রতিক্রিয়া আধা অনুকূল ExpoKit করুন।

আপনি যদি পরিচালিত কর্মপ্রবাহের সাথে যেতে পারেন, ঠিক আছে, এটি করুন! অবশ্যই কিছু জিনিস সহজ করে তোলে। তবে, যদি আপনার অন্য, অসমর্থিত দেশীয় কার্যকারিতা প্রয়োজন হয় তবে নিজেকে পক্ষে করুন এবং যতক্ষণ আপনি সহজেই পারেন ততক্ষণ বেয়ার আরএন-এ ফিরে যান।

কারণ, এক্সপো কিট থেকে বেয়ার আরএন-এ যাওয়া কোনও আকর্ষণীয় নয়। পুরো নতুন আরএন প্রকল্প শুরু করতে হবে, জাভাস্ক্রিপ্টের অনুলিপি তৈরি করতে হবে, মডিউলগুলি একে একে পুনরায় ইনস্টল করতে হবে, কিছু নেটিভ সমস্যা ইত্যাদি ঠিক করা ছিল - অ্যাপ্লিকেশনটি আবার চালু করতে দু'দিনের কাজ work

যাইহোক, সমস্ত কাজ করার পরে, এখন আমরা এক্সপোকিট ছাড়াই আমাদের একই অ্যাপের সাথে দাঁড়িয়ে আছি।

পেশাদাররা:

  • গুগল প্লেতে অ্যাপটি আপলোড করা অবশেষে কাজ করে।
  • অ্যাপ্লিকেশন ডাউনলোডের আকার 70% (!) এরও বেশি হ্রাস পেয়েছে
  • আরএন ০.60০ এর মাধ্যমে অটলিংকিংয়ের সহজতা (যদিও এক্সপোকিট এটি সমর্থন করে তবে এখন নতুন এসডিকে সমর্থন করে - এক্সপো এসডিকে আপডেট করা নিজের জন্য সম্পূর্ণ বিজ্ঞান যদিও প্রায়শই বার)
  • আমরা এখনও এক্সপো মডিউলগুলি ব্যবহার করতে পারি যা আমরা বাস্তবে ইউনিমোডিয়ুলগুলির মাধ্যমে এক্সপো-সুরক্ষিত-স্টোরের মতো পছন্দ করতে শিখেছি।
  • প্লাসবো হতে পারে তবে অ্যাপটির পারফরম্যান্সটিও উন্নত হয়েছে বলে মনে হচ্ছে।
  • রিলিজ অ্যাপ্লিকেশন বিল্ড বারগুলি আইওএসে প্রায় 50%, অ্যান্ড্রয়েডে 60% বৃদ্ধি পেয়েছে
  • অ্যাপ্লিকেশন প্রবর্তনটি এটির গতি মতো বলে মনে হচ্ছে - যখন আইফোন 11 প্রো লঞ্চ করতে এটি প্রায় 2 থেকে 3 সেকেন্ড সময় নিয়েছিল, এখন এটি মিলিসেকেন্ডের বিষয়।

কনস: এখনও পর্যন্ত একটি খুঁজে পাওয়া যায় নি।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.