Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

ld-313: content for building apps #767

Merged
merged 3 commits into from
May 20, 2024
Merged

Conversation

arthurpankiewicz
Copy link
Contributor

No description provided.


On the other hand, an Android App Bundle (AAB) is a publishing format that includes all the compiled code and resources of an app, but does not create a final APK. Instead, it allows the Google P,lay store to generate an APK for each different device configuration: different screen densities, CPU architectures, and languages. Users cannot directly install AABs and they must be uploaded to the Google Play Store for distribution. Because the Play Store generates optimized APKs for each device, AABs are smaller in size which results in faster downloads, reduced storage space, and better performance.

### Signing
Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

since we should sign before building, should i remove objective #2?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m still a little hazy on the details (maybe talk to Christopher?) but I thought we could build the AAB that is going to be submitted to the Play Store without signing.

Maybe this page and the next needs some reorganization.

It seems like the process is actually:

  • Build an AAB for publishing/updating an app in the Play Store.
  • Signing is only used for… generating an APK for testing on a device?

So I think I would approach it this way:

On this page:

  • Objective 1: Create a build and verify that the build (AAB) is generated.
  • Objective 2: Discuss APKs, signing, and testing on a device.

On the next page:

  • Objective 1: Walkthrough of the AAB -> Google Play Store process for publishing an app.
  • Objective 2: Discuss app updates, versioning, etc.

I’m really unsure about this though, so I would get @christopherjbaker’s opinion and go with what he says.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

your AAB needs to be signed with an upload key to be put onto the store and then the play store does some extra signing (I think) to create APKs using your AAB

However, before your application binary is uploaded to Google Play it needs to be signed with an upload key.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

From my current knowledge, I'd say the same as Chasen.

idk anything about signing the AAB. How do you do that? Do you set up signing and then build? Or do you run a sign command after you have the AAB?

tbh, I'd go with chasen suggestion either way. Even if the aab need to be signed for upload and it does that when you make the build, that's part of the second page not the first.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@christopherjbaker the first paragraph here https://reactnative.dev/docs/signed-apk-android briefly covers it, and links out to https://developer.android.com/studio/publish/app-signing which says:

When releasing using Android App Bundles, you need to sign your app bundle with an upload key before uploading it to the Play Console, and Play App Signing takes care of the rest. For apps distributing using APKs on the Play Store or on other stores, you must manually sign your APKs for upload.

so for apk you must sign the apk, but for aab you must sign it with an upload key?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

so to my understanding the steps for aab (to upload to play store) are

  1. generate upload key
  2. update gradle config/vars to include upload key keysotre
  3. build aab
  4. upload to playstore

@@ -10,17 +10,40 @@

In this section, you will:

- TODO
- Cover EAS production builds
- Learn how to create a build
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We’ve mostly tried to avoid words like “learn how” and told learners what they will actually do, e.g. “Create a build.”

Also, these should always end in a punctuation mark (period).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

updated


### Concept TODO
EAS, or Expo Application Services, is a service provided by Expo to help streamline the process of building and deploying React Native applications. It is a cloud-based solution that allows us to create production builds, submit them to the app stores, and manage OTA (over-the-air) updates.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I would move this to the very end. I’m thinking about cutting it altogether (I don’t think it fits with our content).

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

moved


An Android Package (APK) is the traditional format used to distribute and install Android apps. It is a zip file that contains all the necessary files for the app to run on an Android device. APKs can be directly installed onto devices or through app stores like Google Play. However, APKs are not optimized and contain all resources for every device configuration, leading to larger file sizes.

On the other hand, an Android App Bundle (AAB) is a publishing format that includes all the compiled code and resources of an app, but does not create a final APK. Instead, it allows the Google P,lay store to generate an APK for each different device configuration: different screen densities, CPU architectures, and languages. Users cannot directly install AABs and they must be uploaded to the Google Play Store for distribution. Because the Play Store generates optimized APKs for each device, AABs are smaller in size which results in faster downloads, reduced storage space, and better performance.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

P,lay

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

fixed


On the other hand, an Android App Bundle (AAB) is a publishing format that includes all the compiled code and resources of an app, but does not create a final APK. Instead, it allows the Google P,lay store to generate an APK for each different device configuration: different screen densities, CPU architectures, and languages. Users cannot directly install AABs and they must be uploaded to the Google Play Store for distribution. Because the Play Store generates optimized APKs for each device, AABs are smaller in size which results in faster downloads, reduced storage space, and better performance.

### Signing
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I’m still a little hazy on the details (maybe talk to Christopher?) but I thought we could build the AAB that is going to be submitted to the Play Store without signing.

Maybe this page and the next needs some reorganization.

It seems like the process is actually:

  • Build an AAB for publishing/updating an app in the Play Store.
  • Signing is only used for… generating an APK for testing on a device?

So I think I would approach it this way:

On this page:

  • Objective 1: Create a build and verify that the build (AAB) is generated.
  • Objective 2: Discuss APKs, signing, and testing on a device.

On the next page:

  • Objective 1: Walkthrough of the AAB -> Google Play Store process for publishing an app.
  • Objective 2: Discuss app updates, versioning, etc.

I’m really unsure about this though, so I would get @christopherjbaker’s opinion and go with what he says.

@@ -44,24 +67,6 @@ TODO: What happens if there isn’t a successful build? 😅

TODO: Can the AAB be run in the emulator? If so, we should instruct them to do that.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can these remaining TODOs be addressed or removed?

@chasenlehara chasenlehara merged commit b35d651 into main May 20, 2024
1 check passed
@chasenlehara chasenlehara deleted the ld-313/building-apps-content branch May 20, 2024 16:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

3 participants