illogical-robot / apkmirror-public

APKMirror.com bugs
http://www.apkmirror.com
100 stars 32 forks source link

failed to upload Google Play service apk #213

Closed gang4399 closed 2 years ago

gang4399 commented 2 years ago

Only if the base.apk can be uploaded, other configuration splits will can be uploaded, but the web prompts me that the base.apk already exists.

I tried upload through both ML Manager and APKMirror Web. Both failed.

Error message: APK is a configuration split, but we need the base APK first.

All APKs: base.apk split_config.zh.apk

Screenshot_20220331_164251_com android chrome

Screenshot_20220331_164226_com javiersantos mlmanager

archon810 commented 2 years ago

Hi,

The root of the issue here is Google for some inexplicable reason sometimes generates the same exact APKs but with different what they call "derived ID"s. In our experience, mixing and matching base APKs and splits with different derived IDs causes crashes and is a recipe for disaster, so we require the base APK and split derived IDs to match.

In this case, the base APK is being treated as a similar dupe to https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-09-20-release/google-play-services-22-09-20-100408-434869283-android-apk-download/, and as such, the split you try to upload next with a mismatched derived ID to the one we already have isn't allowed through.

This is all a bit inside baseball, but derived IDs have been a colossal pain in our butts, I see absolutely no reason why it should exist and waste space and confuse people, and yet, the answer is basically: Google ¯\_(ツ)_/¯.

gang4399 commented 2 years ago

Hi,

The root of the issue here is Google for some inexplicable reason sometimes generates the same exact APKs but with different what they call "derived ID"s. In our experience, mixing and matching base APKs and splits with different derived IDs causes crashes and is a recipe for disaster, so we require the base APK and split derived IDs to match.

In this case, the base APK is being treated as a similar dupe to https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-09-20-release/google-play-services-22-09-20-100408-434869283-android-apk-download/, and as such, the split you try to upload next with a mismatched derived ID to the one we already have isn't allowed through.

This is all a bit inside baseball, but derived IDs have been a colossal pain in our butts, I see absolutely no reason why it should exist and waste space and confuse people, and yet, the answer is basically: Google ¯_(ツ)_/¯.

I don't quite understand. I just want to add the split_config.zh.apk language pack now. I can't upload it because there is already a base.apk. The last version of Play service 618 was uploaded correctly because I uploaded it earlier, and then others can add split_config.en.apk and split_config.ja.apk, why? https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-06-18-release/google-play-services-22-06-18-100408-433619428-android-apk-download/

archon810 commented 2 years ago

The reason is, as I explained, differences in derived IDs between the base APKs and the splits. If they don't match, we can't pair them up.

For example, https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-06-18-release/google-play-services-22-06-18-100408-433619428-android-apk-download/ has derived ID 3 (you can find this value in the Android manifest XML file). The base APK and split you're uploading is probably 1 or 2 and thus we can't pair it up with 3.

gang4399 commented 2 years ago

As discussed in the latest text below, the apk I want to upload already exists on the site server, and the matching zh language file is the same as the signature on the server (and the same as base.apk, why can't it be uploaded?

The reason is, as I explained, differences in derived IDs between the base APKs and the splits. If they don't match, we can't pair them up.

For example, https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-06-18-release/google-play-services-22-06-18-100408-433619428-android-apk-download/ has derived ID 3 (you can find this value in the Android manifest XML file). The baes APK and split you're uploading is probably 1 or 2 and thus we can't pair it up with 3.

Screenshot_20220506_152644 Screenshot_20220506_152717_com huawei android launcher Screenshot_20220506_152859_com mixplorer silver Screenshot_20220506_153416_com android chrome

gang4399 commented 2 years ago

The reason is, as I explained, differences in derived IDs between the base APKs and the splits. If they don't match, we can't pair them up.

For example, https://www.apkmirror.com/apk/google-inc/google-play-services/google-play-services-22-06-18-release/google-play-services-22-06-18-100408-433619428-android-apk-download/ has derived ID 3 (you can find this value in the Android manifest XML file). The baes APK and split you're uploading is probably 1 or 2 and thus we can't pair it up with 3.

Screenshot_20220506_155348 ↖ ↖ ↖ It means that if I upload my base.apk and its matching split_config.zh.apk later than the above man, then I will not be able to achieve my happy sharing time in version 22.06.18 and 22.12.15? Screenshot_20220506_160346_com huawei android launcher_edit_104579303665813