คอมพิวเตอร์ Windows อินเทอร์เน็ต

วิธีลงชื่อเกม APK หรือแอปพลิเคชันบน Android อย่างถูกต้อง วิธีลงชื่อ apk ด้วย gradle วิธีลงชื่อไฟล์ apk สำหรับ google play

ดังนั้น คุณทำงานมาหลายวันแล้ว (และอาจจะหลายคืน) และตอนนี้แอปพลิเคชันมือถือไฮบริดตัวแรกของคุณก็พร้อมแล้ว มันค่อนข้างเสถียร บั๊กที่สำคัญส่วนใหญ่ถูกปิด ยังมีสิ่งเล็กๆ น้อยๆ เหลืออยู่ แต่จำไว้ว่าการมุ่งหวังให้สิ่งดีเลิศเป็นสิ่งชั่วร้าย คุณตัดสินใจอย่างแน่วแน่ที่จะเผยแพร่แอปพลิเคชันนี้

ข้อกำหนดเบื้องต้นสำหรับสิ่งนี้คือการมีอยู่ของไฟล์ APK ที่ลงนามแล้ว วิธีลงชื่อไฟล์ apk คุณจะได้เรียนรู้จากบทความนี้

พูดนอกเรื่องเล็กน้อย

เมื่อโปรเจ็กต์สัตว์เลี้ยงของฉันใกล้จะปล่อยออกมา ฉันเริ่มมองหาข้อมูลเกี่ยวกับวิธีการเผยแพร่แอปพลิเคชันอย่างรวดเร็วและไม่ลำบาก คำแนะนำจำนวนมากที่พบดูเรียบง่าย ฉันเลือกคำแนะนำของผู้เขียน Ionic framework ซึ่งแอปพลิเคชันได้รับการพัฒนา ไม่ใช่ทุกอย่างจะสำเร็จในครั้งแรก มีคุณสมบัติหลายอย่าง มีการอธิบายขั้นตอนการลงนามในบทความนี้ โดยเน้นประเด็นสำคัญ

ข้อมูลเบื้องต้น

ฉันคิดว่าคุณมีทุกสิ่งที่คุณต้องการเพื่อพัฒนาแอพมือถือไฮบริดด้วย Apache Cordova จะต้องติดตั้ง:
  • Apache Cordova
  • Java Development Kit
  • เครื่องมือ Android SDK
lcf ใช้เป็นชื่อโปรเจ็กต์และแอปพลิเคชัน แทนที่ด้วยชื่อโครงการของคุณเมื่อจำเป็น

ไป

ขั้นแรก คุณต้องสร้างรุ่นของแอปพลิเคชันของคุณก่อน แต่ก่อนหน้านั้น ให้ตรวจสอบให้แน่ใจว่าได้ลบปลั๊กอินที่ไม่จำเป็นทั้งหมดออกแล้ว ตัวอย่างเช่น เราไม่ต้องการปลั๊กอินที่พิมพ์ข้อมูลการดีบักไปยังคอนโซล มาลบกันเถอะ:

$ ปลั๊กอินคอร์โดวา rm คอร์โดวา-ปลั๊กอิน-คอนโซล
ในการสร้างรุ่นสำหรับ Android ให้ใช้คำสั่ง สร้างด้วยธง --ปล่อย:

$ Cordova build -- ปล่อย android
คำสั่งนี้จะสร้าง ไม่ได้ลงนามไฟล์ APK ในไดเรกทอรี:

แพลตฟอร์ม/android/build/outputs/apk
ตัวอย่างเช่น แพลตฟอร์ม/android/build/outputs/apk/ android-release-unsigned.apk. จากนั้นเราต้องเซ็นชื่อไฟล์นี้และเรียกใช้ยูทิลิตี้ zipalignเพื่อเพิ่มประสิทธิภาพและเตรียมไฟล์สำหรับ Google Play

ต้องมีใบรับรองเพื่อลงนามในไฟล์ มาสร้างมันโดยใช้ยูทิลิตี้ เครื่องมือสำคัญซึ่งรวมอยู่ใน JDK:

$ keytool -genkey -v -keystore lcf.keystore -alias lcf -keyalg RSA -keysize 2048 - ความถูกต้อง 10,000
สิ่งสำคัญ

ต้องจำค่าของพารามิเตอร์ -alias แต่ควรจดไว้จะดีกว่า ในตัวอย่างข้างต้น จะเท่ากับ lcf (ตามตัวอักษรตัวแรกของชื่อแอปพลิเคชัน Loyal Client Free) ฉันจะไม่ให้รายละเอียดที่นี่ หากคุณสนใจ เขียนในความคิดเห็น ฉันจะบอกคุณเพิ่มเติม

ใช้นามแฝงทุกครั้งที่ลงนาม * แอปพลิเคชัน เพื่อให้จำง่ายขึ้น ให้ใช้ชื่อของไฟล์ที่เก็บคีย์เป็นนามแฝง เช่น:


-keystore hello-world.keystore -alias สวัสดีโลก -keystore weather-app.keystore -alias weather-app -keystore todo.keystore -alias ที่ต้องทำ
* คุณต้องลงนามในแอปพลิเคชันด้วยการอัปเดตแต่ละครั้ง

คุณประโยชน์ เครื่องมือสำคัญถามคำถามหลายชุด จะมีทั้งหมด 8 ข้อ เพื่อให้มีแนวคิดเกี่ยวกับคำถามและคำตอบโดยประมาณล่วงหน้า

คำถามเครื่องมือคีย์และตัวอย่างคำตอบ

1. ป้อนรหัสผ่านที่เก็บคีย์:
ที่นี่คุณต้องป้อนรหัสผ่านสำหรับไฟล์ (อย่างน้อย 6 ตัวอักษร) รหัสผ่านที่ป้อนจะต้องเขียนลงในที่ปลอดภัยซึ่งจำเป็นทุกครั้งที่ลงนามในใบสมัคร

2. ป้อนรหัสผ่านใหม่อีกครั้ง:
ป้อนรหัสผ่านอีกครั้ง

3. ชื่อและนามสกุลของคุณคืออะไร?
: อีวาน เปตรอฟ
ชื่อและนามสกุลของคุณ ค่าในวงเล็บเหลี่ยมคือค่าเริ่มต้น

4. หน่วยขององค์กรของคุณชื่ออะไร
: มัน
ชื่อแผนกบริษัทของคุณ เว้นว่างไว้ก็ได้ครับ ระบุ IT

5. ชื่อองค์กรของคุณคืออะไร?
: 2นักพัฒนา
ชื่อองค์กรของคุณ ระบุถ้ามี

6. เมืองหรือท้องที่ของคุณชื่ออะไร
: มอสโก
ชื่อเมือง

7. รัฐหรือจังหวัดของคุณชื่ออะไร
: MO
ชื่อภูมิภาค

8. รหัสประเทศสองตัวอักษรสำหรับหน่วยนี้คืออะไร?
: EN
รหัสประเทศ. ฉันระบุ RU

: y

ยืนยันว่าทุกอย่างถูกต้องหรือกด Enter เพื่อป้อนอีกครั้ง


ในตอนท้าย ข้อความเกี่ยวกับการสร้างคีย์ที่ประสบความสำเร็จจะปรากฏขึ้น คุณจะได้รับแจ้งให้ตั้งรหัสผ่านสำหรับคีย์ส่วนตัว (ถ้าคุณต้องการปล่อยให้เหมือนกับใบรับรอง ให้กด Enter):

กำลังสร้างคู่คีย์ RSA 2 048 บิตและใบรับรองที่ลงนามเอง (SHA256withRSA) โดยมีความถูกต้อง 10 000 วันสำหรับ: CN=Ivan Petrov, OU=IT, O=2developers, L=Moscow, ST=MO, C=RU Enter key รหัสผ่านสำหรับ (ส่งคืนหากเหมือนกับรหัสผ่านของที่เก็บคีย์):
ไฟล์จะถูกสร้างขึ้นในไดเร็กทอรีปัจจุบัน lcf.keystore.

สิ่งสำคัญ

ไฟล์ที่สร้างขึ้นจะต้องบันทึกไว้ในที่ปลอดภัย หากคุณกำลังใช้ที่เก็บส่วนตัว ไฟล์สามารถคอมมิตพร้อมกับซอร์สโค้ดของแอปพลิเคชันได้ โดยทั่วไป ใบรับรองควรเก็บไว้แยกต่างหาก หากคุณทำใบรับรองหาย คุณจะไม่สามารถเผยแพร่การอัปเดตแอปได้

เหลืออีกสองขั้นตอน และคุณจะมีไฟล์ APK ที่พร้อมสำหรับการแจกจ่าย เราดำเนินการโดยตรงเพื่อลงนาม

ในการเซ็นชื่อไฟล์ apk ของคุณ ให้ใช้ยูทิลิตี้ jarsignerซึ่งรวมอยู่ใน JDK ด้วย

$ jarsigner -verbose -sigalg SHA1withRSA -digestalg SHA1 -keystore lcf.keystore android-release-unsigned.apk lcf
ชื่อของใบรับรองถูกระบุหลังพารามิเตอร์ -keystore, นามแฝง - หลังชื่อไฟล์

สุดท้าย เพื่อเพิ่มประสิทธิภาพไฟล์ apk เราจะใช้ยูทิลิตี้ zipalign:

$ zipalign -v 4 android-release-unsigned.apk LoyalClientFree.apk
พารามิเตอร์สุดท้ายคือชื่อของไฟล์ที่คุณจะอัปโหลดไปยัง Google Play

สิ่งสำคัญ.

คุณประโยชน์ zipalignมันเป็นส่วนหนึ่งของเครื่องมือ Android SDK และสามารถพบได้ที่นี่:

/path/to/Android/sdk/build-tools/VERSION/zipalign

บทสรุป

ตอนนี้คุณมีไฟล์ apk ที่พร้อมสำหรับการแจกจ่ายซึ่งสามารถอัปโหลดไปยัง Google Play ได้ กรอกคำอธิบาย กำหนดเรตติ้งของแอปพลิเคชันของคุณ และคลิก "เผยแพร่" ได้ตามสบาย

เนื่องจากฉัน googled คำถามด้วยตัวเอง วิธีเซ็นชื่อไฟล์ apk" ฉันรู้ว่ามันไม่ง่ายเลยที่จะค้นหาคำแนะนำที่ได้ผลและเข้าใจได้จริงในทุกสิ่ง นั่นเป็นเหตุผลที่ฉันตัดสินใจเขียนเนื้อหาเกี่ยวกับวิธีลงนามโปรแกรมหรือเกมของคุณบน Android อย่างถูกต้อง

อย่างที่คุณทราบตอนนี้ หากไม่มีลายเซ็นดิจิทัล การสร้างของคุณไม่สามารถวางบน Market ได้ และนี่เป็นเรื่องที่ร้ายแรงแล้ว นักพัฒนา Android รุ่นเยาว์จำนวนมากสังเกตเห็นว่า ผู้เริ่มต้นลืมเซ็นชื่อในใบสมัครและลองทำอะไรบางอย่าง กับมันในภายหลังและนั่นก็สงสัยว่าเหตุใดพวกเขาจึงไม่สามารถดำเนินการบางอย่างกับไฟล์ APK ของตนได้

ดังนั้น อย่าลากมันออกมาและเริ่มต้นทันทีด้วยวิธีการลงชื่อไฟล์ apk ของคุณและวิธีใช้งานจริงเพื่อให้ได้ผลลัพธ์ที่ต้องการ

วิธีนี้เป็นวิธีที่ถูกต้องที่สุดในรายการทั้งหมด ดังนั้นเราจะอธิบายไว้ในเอกสารนี้ เราจะสร้างคีย์ของเราเองด้วยข้อมูลและใบรับรองของเรา และใช้เพื่อลงนามในแอปพลิเคชันที่คุณสร้างขึ้น

ในการทำงานเราต้องการ OpenSSL และ SignApk

ขั้นแรก ให้สร้างใบรับรองและคีย์การลงนาม ติดตั้ง OpenSSL ระหว่างการติดตั้ง โปรแกรมติดตั้งจะแจ้งให้คุณคัดลอกส่วนประกอบไปยังโฟลเดอร์ Windows เลือกโฟลเดอร์ Bin ซึ่งจะเป็นตำแหน่งที่คุณติดตั้ง OpenSSL ทั้งหมด

ตอนนี้เปิดในนามของผู้ดูแลระบบ (ซึ่งสำคัญมาก!) บรรทัดคำสั่ง จากนั้น บนบรรทัดคำสั่ง ให้ไปที่โฟลเดอร์ bin ซึ่งอยู่ในโฟลเดอร์ที่คุณติดตั้ง OpenSSL (ตัวอย่างเช่น C:\OpenSSL\bin\หรือ C:\Program Files\OpenSSL\bin\). หากคุณไม่ทราบ ให้ย้ายไปยังโฟลเดอร์อื่นโดยใช้คำสั่ง ซีดี. นั่นคือ เพื่อไปยังโฟลเดอร์ที่ต้องการ คุณควรรันคำสั่งต่อไปนี้:

ซีดี C:\OpenSSL\bin\

เมื่อคุณอยู่ในโฟลเดอร์ Bin คุณสามารถดำเนินการสร้างใบรับรองและคีย์ได้โดยตรง

ขั้นตอนที่ 1(เราทำการสร้างคีย์ที่มีความยาว 1024 บิต)

เรียกใช้คำสั่ง:

openssl genrsa -out key.pem 1024

ขั้นตอนที่ 2(ตามคีย์ เราสร้างคำขอใบรับรอง)

เรียกใช้คำสั่ง:

openssl req -new -key key.pem -out request.pem

ในขั้นตอนนี้ คุณจะต้องป้อนข้อมูลซึ่งจะระบุตัวคุณในใบรับรอง

ขั้นตอน 3 (สร้างคีย์ส่วนตัวจากใบรับรอง)

เรียกใช้คำสั่ง:

openssl x509 -req -days 9999 -in request.pem -signkey key.pem -out certificate.pem

ขั้นตอนที่ 4(ดำเนินการสร้างคีย์สาธารณะ)

เรียกใช้คำสั่ง:

openssl pkcs8 -topk8 -outform DER -in key.pem - แจ้ง PEM -out key.pk8 -nocrypt

ในขั้นตอนนี้ การสร้างไฟล์ที่เราต้องการเพื่อเซ็นชื่อเกมและแอปพลิเคชันของคุณเสร็จเรียบร้อยแล้ว โดยใช้คีย์และใบรับรองที่สร้างขึ้น คุณสามารถลงชื่อเข้าใช้เกมและแอปพลิเคชันบน Android ได้มากเท่าที่คุณต้องการ

และตอนนี้ เรามาเริ่มลงชื่อสมัครใช้กัน แกะไฟล์เก็บถาวรจาก SingApk ที่ดาวน์โหลดจากลิงก์ด้านบน ย้ายจากโฟลเดอร์ Bin ที่เราสร้างใบรับรองและไฟล์คีย์ 2: ใบรับรอง.pemและ key.pk8ไปยังโฟลเดอร์ที่คุณคลายแพ็ก SingApk Windows ควรแสดงกล่องโต้ตอบการแทนที่ไฟล์ - แทนที่

ตอนนี้ ในการเซ็นชื่อไฟล์ apk ด้วยลายเซ็นดิจิทัลที่คุณสร้างขึ้นเอง ให้ลากไฟล์ apk ไปที่ sign_APK.bat. เพื่อไม่ให้ลากไฟล์จากหน้าต่างหนึ่งไปอีกหน้าต่างหนึ่ง (ไม่สะดวก) ให้ย้ายไฟล์ apk ของคุณไปยังโฟลเดอร์ด้วย SingApk หลังจากดำเนินการ ไฟล์จะปรากฏในโฟลเดอร์ที่มี SingApk apk_signed.apkซึ่งจะเป็นแอปพลิเคชันหรือเกมที่คุณลงชื่อ

โพสต์จำนวนการดู: 5 618

หุ่นยนต์สตูดิโอให้โอกาสมากมายทั้งในการพัฒนาแอปพลิเคชันและเพื่อเพิ่มระบบอัตโนมัติและความสะดวกสบายเมื่อตั้งโปรแกรม

หากคุณกำลังใช้ระบบบิลด์ gradleเพื่อสร้างแอปพลิเคชันของคุณเอง คุณยังสามารถตั้งค่าสองสามตัวเลือกสำหรับการสร้างลายเซ็นสำหรับแอปพลิเคชันของคุณ

คุณอาจไม่ต้องการเผยแพร่คีย์การลงนาม รหัสผ่าน และชื่อผู้ใช้ไปยังที่เก็บสาธารณะ (หรือแม้แต่ส่วนตัว) ดังนั้น คุณจึงสามารถกำหนดคีย์ รหัสผ่าน และชื่อผู้ใช้เป็นคุณสมบัติในไฟล์แยกต่างหากได้

ก่อนที่คุณจะเริ่มลงนามในแอปพลิเคชัน คุณต้องสร้างคุณสมบัติใหม่ในไฟล์ gradle.properties เรียกมันว่า keys.repoและระบุพาธไปยังโฟลเดอร์ที่ที่เก็บคีย์และไฟล์ที่มีคุณสมบัติตามค่ากำหนด (เช่น C:/Users/UserName/.signing).

Keys.repo=C:/Users/UserName/.signing

จากนั้นคุณต้องสร้างโฟลเดอร์นี้หรือเปิดโฟลเดอร์นี้หากคุณระบุโฟลเดอร์ที่มีอยู่ จำเป็นต้องสร้างไฟล์ YourProjectName.propertiesซึ่งภายในเส้นทางไปยังที่เก็บคีย์ นามแฝงคีย์ และรหัสผ่านจะถูกเขียนเป็นคุณสมบัติในแบบฟอร์มต่อไปนี้

RELEASE_STORE_FILE=/YourProjectName/KeyStoreName.jks RELEASE_STORE_PASS=****** RELEASE_ALIAS=KeyAlias ​​​​RELEASE_KEY_PASS=******

จะสร้างที่เก็บคีย์ได้อย่างไร?

หากไม่มีคีย์สโตร์ คุณสามารถสร้างคีย์สโตร์ได้ง่ายๆ โดยใช้ Android Studio โดยเลือกรายการเมนู สร้าง -> สร้าง APK ที่ลงชื่อแล้ว.

ในหน้าต่างที่ปรากฏขึ้น ให้คลิก สร้างใหม่...ด้วยเหตุนี้ หน้าต่างจะเปิดขึ้นซึ่งคุณสามารถระบุตำแหน่งของที่เก็บคีย์ได้ (สำหรับบทเรียนนี้ จะเป็นการดีกว่าถ้าเลือกเส้นทางที่คุณระบุไว้ในทันที YourProjectName.propertiesในทรัพย์สิน RELEASE_STORE_FILE) ตลอดจนข้อมูลเกี่ยวกับคีย์

จากนั้นคุณต้องสร้างโฟลเดอร์ ชื่อโครงการของคุณและโอนไฟล์ที่เก็บคีย์ที่ต้องการไปที่นั่น

ตอนนี้คุณสามารถดำเนินการลงนามโดยตรง ในการทำสิ่งนี้ ในโครงการของคุณ คุณต้องเปิดไฟล์ build.gradle(อยู่ในโฟลเดอร์แอพ) ข้างในบล็อก หุ่นยนต์คุณต้องเพิ่มรหัสต่อไปนี้

SigningConfigs ( ดีบัก ( /* ไม่มีการเปลี่ยนแปลงที่นี่ */ ) ปล่อย ( if (project.hasProperty("Keys.repo")) ( def projectPropsFile = file (project.property("Keys.repo") + "/YourProjectName.properties " ) ถ้า (projectPropsFile.exists()) ( Properties props = new Properties() props.load(new FileInputStream(projectPropsFile)) storeFile file(file(project.property("Keys.repo") + props["RELEASE_STORE_FILE"] ) ) storePassword props["RELEASE_STORE_PASS"] keyAlias ​​​​props["RELEASE_ALIAS"] คีย์รหัสผ่าน props["RELEASE_KEY_PASS"] ) อื่นๆ ( println "==================== = ==================================" println " - โปรดกำหนดค่าสภาพแวดล้อมการคอมไพล์รีลีส - เช่นใน ~/ ไดเร็กทอรีการลงนาม" println "=========================================== == ========" ) ) )

แผนการลงนามคืออะไร?

มีสองรูปแบบในการรับลายเซ็น APK: v1 JARและ v2 APK แบบเต็ม.

ในกรณีแรกให้ลงชื่อ ไห-file ซึ่งเป็นวิธีการลงนามแบบดั้งเดิม ลายเซ็น v1 ไม่ได้ปกป้องบางส่วนของ APK เช่น ข้อมูลเมตาของ ZIP ตัวตรวจสอบ APK ต้องจัดการโครงสร้างข้อมูลที่ไม่น่าเชื่อถือจำนวนมาก (ยังไม่ได้รับการยืนยัน) จากนั้นจึงทิ้งข้อมูลที่ไม่ได้ลงนาม เหลือพื้นที่ให้โจมตีอีกมาก นอกจากนี้ ตัวตรวจสอบ APK ยังต้องขยายขนาดระเบียนที่บีบอัดทั้งหมด ซึ่งเสียเวลาและหน่วยความจำไปมาก เพื่อแก้ไขปัญหาเหล่านี้ schema v2 Full APK ที่สองจึงถูกพัฒนาขึ้น

สคีมา v2 ถูกนำมาใช้ใน Android 7.0 Nougat (API 25)และใช้งานได้ตั้งแต่เวอร์ชั่น Android Studio 2.2และ ปลั๊กอิน Android Gradle 2.2. โครงร่างนี้ให้การติดตั้งแอปพลิเคชันที่เร็วขึ้นและการป้องกันที่ดีต่อการเปลี่ยนแปลง APK โดยไม่ได้รับอนุญาต เนื้อหา APK ถูกแฮชและลงนาม จากนั้นจึงได้รับ บล็อกลายเซ็น APKแทรกลงใน APK

ในระหว่างการตรวจสอบ สคีมา v2 จะถือว่า APK เป็นหยดและดำเนินการตรวจสอบลายเซ็นในไฟล์ทั้งหมด การแก้ไขใดๆ ใน APK รวมถึงการแก้ไขข้อมูลเมตาของ ZIP จะทำให้ลายเซ็นเป็นโมฆะ รูปแบบการตรวจสอบนี้เร็วกว่ามากและช่วยให้ตรวจพบการแก้ไขที่ไม่ได้รับอนุญาตได้มากขึ้น

รูปแบบใหม่นี้เข้ากันได้แบบย้อนหลัง ดังนั้น APK ที่ลงนามด้วยชุดรูปแบบใหม่สามารถติดตั้งบนอุปกรณ์รุ่นเก่าได้ (ซึ่งจะเพิกเฉยต่อลายเซ็นใหม่) ตราบใดที่ APK เหล่านั้นมีการเซ็นชื่อด้วยชุดรูปแบบ v1 ด้วย

การเซ็นชื่อจะใช้ทั้งสองแบบตามค่าเริ่มต้น เพื่อให้สามารถติดตั้งแอปพลิเคชันบนอุปกรณ์ใดก็ได้ อย่างไรก็ตาม หากจำเป็น คุณสามารถปิดใช้งานการลงชื่อ v1 หรือ v2 ได้ ในการทำเช่นนี้ในโค้ดด้านบนใน block ปล่อยเพียงเพิ่มบรรทัดต่อไปนี้

V1SigningEnabled เท็จ

V2SigningEnabled เท็จ

สิ่งสำคัญที่ควรทราบคือ คุณต้องลงนามด้วยชุดรูปแบบ v1 ก่อนลงนามด้วยชุดรูปแบบ v2 เนื่องจาก APK จะไม่ผ่าน v2 หากมีการลงนามด้วยใบรับรองเพิ่มเติมหลังจากลงนามด้วยชุดรูปแบบ v2

หลังจากเพิ่มรหัสแล้ว ให้ระบุรหัสนี้ในบล็อก buildTypesข้างใน ปล่อย. ตัวอย่างเช่น:

BuildTypes ( รีลีส ( minifyEnabled true shrinkResources true proguardFiles getDefaultProguardFile("proguard-android.txt"), "proguard-rules.pro" การลงนาม Config การลงนาม Configs.release ) )

ตอนนี้คุณสามารถอย่างปลอดภัยในรายการเมนู สร้างเลือก สร้าง APKโดยก่อนหน้านี้ได้เปลี่ยนประเภทการประกอบจาก ดีบักบน ปล่อย. อย่างที่คุณเห็น วิธีนี้สะดวกเพราะเป็นแบบอัตโนมัติ ต้องกำหนดค่าเพียงครั้งเดียวและที่เก็บคีย์ของคุณจะปลอดภัย

มีภาพหน้าจอในบทความเมื่อร้านแอปถูกเรียกว่า "Android Market" แมวรุ่นหนึ่งโตแล้วที่ไม่เคยได้ยินชื่อนี้มาก่อน แต่หลักการทั่วไปไม่เปลี่ยนแปลง ทิ้งไว้สำหรับประวัติศาสตร์ ฉันไม่สามารถลงทะเบียนใหม่เพื่อถ่ายภาพหน้าจอใหม่ได้

เนื่องจากเรากังวลจึงจะฝึกแมว ลองยกตัวอย่างจากบทความและลองใส่ใน Google Play ถ้าทุกอย่างเรียบร้อยก็จะง่ายขึ้น

ก่อนดำเนินการต่อ ตรวจสอบให้แน่ใจว่าคุณมีไอคอนแอปพลิเคชันและชื่อโปรแกรมของคุณพร้อม จะแปลกมากที่จะเห็นโปรแกรมที่มีไอคอนมาตรฐานและชื่อ "HelloWorld" ใน App Store และตรวจสอบรายการทั้งหมดในไฟล์รายการ

ขั้นตอนแรก. เขาคือคนที่ยากที่สุด

แอปพลิเคชันใด ๆ ที่โพสต์ไปยังร้านค้าต้องมีใบรับรองที่ลงนาม ใบรับรองช่วยให้คุณระบุตัวเองว่าเป็นผู้เขียนโปรแกรม และถ้ามีคนพยายามโพสต์โปรแกรมที่มีชื่อเดียวกับคุณ เขาจะถูกปฏิเสธเนื่องจากชื่อขัดแย้ง ชื่อของแอปพลิเคชันคือชื่อเต็มของแพ็คเกจ

เมื่อคุณเรียกใช้แอปพลิเคชันของคุณบนอีมูเลเตอร์หรือโทรศัพท์ของคุณ สภาพแวดล้อมการพัฒนาจะลงนามโปรแกรมโดยอัตโนมัติด้วยใบรับรองการดีบัก ใบรับรองการดีบักไม่เหมาะสำหรับการแจกจ่ายผ่านร้านค้า และคุณต้องลงนามในแอปพลิเคชันด้วยใบรับรองเฉพาะของคุณเอง ได้ฟรีโดยไม่ต้องลงทะเบียนและ SMS

มาสร้างไฟล์ APK ที่ลงชื่อกันเถอะ ซึ่งคล้ายกับไฟล์สั่งการเช่น notepad.exeบน Windows หากคุณเปิดสภาพแวดล้อมการพัฒนา Android Studio ไว้ ให้เลือกจากเมนู สร้าง | สร้าง APK ที่ลงชื่อ....

กล่องโต้ตอบตัวช่วยสร้างจะปรากฏขึ้น ซึ่งคุณต้องกรอกข้อมูล

ในฟิลด์แรก ระบุพาธไปยังที่เก็บคีย์ หากคุณเคยต้องสร้างโปรแกรมมาก่อน รวมถึงใน Eclipse คุณสามารถระบุที่เก็บที่มีอยู่ได้โดยใช้ปุ่ม เลือกที่มีอยู่.... หากคุณกำลังสร้างที่เก็บเป็นครั้งแรก ให้เลือกปุ่ม สร้างใหม่.... กล่องโต้ตอบใหม่จะปรากฏขึ้น

ในฟิลด์แรก คุณต้องเลือกโฟลเดอร์โดยใช้ปุ่ม ... และป้อนชื่อไฟล์เก็บซึ่งจะได้รับนามสกุล jks.

ตอนนี้คุณสร้างรหัสสำหรับแอปพลิเคชันแล้ว ในสนาม นามแฝง(ชื่อเล่น) ป้อนชื่อคีย์ที่คุณและแมวสามารถเข้าใจได้ ไม่จำเป็นต้องสร้างนามแฝงสำหรับแต่ละแอปพลิเคชัน คุณสามารถใช้นามแฝงหนึ่งชื่อสำหรับแอปพลิเคชันของคุณและนามแฝงแยกต่างหากสำหรับแอปพลิเคชันที่กำหนดเอง

คุณต้องสร้างรหัสผ่านสำหรับคีย์และยืนยันด้วย

กุญแจถูกออกแบบมาสำหรับ 25 ปี สนาม ความถูกต้อง (ปี)ปล่อยให้มันไม่มีการเปลี่ยนแปลง (เว้นแต่คุณจะมีเหตุผลที่ดีในการตรงกันข้าม)

สุดท้าย กรอกข้อมูลเกี่ยวกับตัวคุณ

หลังจากกรอกข้อมูลในฟิลด์ คุณจะกลับไปที่หน้าต่างแรกของวิซาร์ด

คลิกที่ปุ่ม ถัดไปและในหน้าต่างถัดไปให้ป้อนรหัสผ่านอื่นเพื่อเข้าถึงฐานข้อมูลรหัสผ่าน

คุณอาจไม่มีขั้นตอนนี้ อาจปรากฏขึ้นหากคุณเลือกตัวเลือก "จำรหัสผ่าน" ฉันจำรายละเอียดไม่ได้ คุณจะคิดออกเอง

ขั้นตอนสุดท้ายคือการกดปุ่ม เสร็จสิ้น.

นี้เคยเป็นขั้นตอนสุดท้าย ตอนนี้มีกล่องกาเครื่องหมายใหม่ V1 (จาร์ ซิกเนเจอร์)และ V2 (ลายเซ็น APK แบบเต็ม). ตรวจสอบอย่างน้อยตัวเลือกแรก V1- สิ่งนี้สอดคล้องกับวิธีเก่า วิธีที่สองถือว่าปลอดภัยกว่าในแง่ของการแฮ็ก และสามารถใช้สำหรับ API ในภายหลัง ขึ้นอยู่กับดุลยพินิจของคุณ (ดูด้านล่าง)

อันเป็นผลมาจากการปรับเปลี่ยนที่ซับซ้อนด้วยกล่องโต้ตอบ คุณจะมี APK ที่รอคอยมานาน ซึ่งเป็นเสน่ห์ของคุณ ซึ่งจะเปิดประตูสู่โลกแห่งความมั่งคั่งและความสุข

กดปุ่ม แสดงใน Explorerคุณจะเปิด File Explorer บนคอมพิวเตอร์ของคุณด้วยโฟลเดอร์ที่มีไฟล์ที่ลงชื่อ

ระวังด้วยรหัสที่สร้างขึ้น เป็นผู้รับประกันว่าโปรแกรมเวอร์ชันใหม่นี้เขียนโดยคุณ ดังนั้น หากคุณทำคีย์ที่สร้างขึ้นหาย คุณจะต้องอัปโหลดโปรแกรมโดยใช้ชื่ออื่นโดยใช้คีย์ใหม่

สตูดิโอมีโหมดสำหรับสร้างแอปพลิเคชันที่ลงชื่อโดยอัตโนมัติ คลิกขวาที่โฟลเดอร์ แอปและในเมนูบริบทให้เลือก เปิดการตั้งค่าโมดูล. เลือกหัวข้อ แอปในส่วน โมดูล. เลือกแท็บ การลงนาม. คลิกที่ปุ่มบวกและกรอกข้อมูลในฟิลด์

ไปที่แท็บ ประเภทงานสร้างและเลือกประกอบ ปล่อย. ในรายการแบบหล่นลง การลงนาม Configเลือกการกำหนดค่าที่สร้างขึ้นใหม่ โดยค่าเริ่มต้นจะมีชื่อ config.

คลิก ตกลงเพื่อบันทึกผลลัพธ์

คุณยังสามารถลงชื่อสมัครใช้ผ่านบรรทัดคำสั่งโดยไม่ต้องมีส่วนร่วมของสตูดิโอ หากคุณเป็นคนบิดเบือน คุณสามารถอ่านเอกสารในหัวข้อนี้

v2 APK แบบเต็ม

ในปี 2560 Google ได้เปลี่ยนกระบวนการเซ็นชื่อเล็กน้อย ขณะนี้มีสองรูปแบบในการรับลายเซ็น APK: v1 JAR และ v2 Full APK

ลายเซ็น v1 (ซึ่งมีมาตั้งแต่ต้น) ไม่ได้ปกป้องบางส่วนของ APK เช่น ข้อมูลเมตาของ ZIP ตัวตรวจสอบ APK ต้องจัดการโครงสร้างข้อมูลที่ไม่น่าเชื่อถือจำนวนมาก จากนั้นจึงทิ้งข้อมูลที่ไม่ได้ลงนาม ซึ่งทำให้มีที่ว่างมากมายสำหรับการโจมตี นอกจากนี้ ตัวตรวจสอบ APK ยังต้องขยายขนาดระเบียนที่บีบอัดทั้งหมด ซึ่งเสียเวลาและหน่วยความจำไปมาก เพื่อแก้ปัญหานี้ เราได้พัฒนา v2 Full APK ใหม่ ซึ่งคุณจะพบเมื่อลงนามในแอปพลิเคชันของคุณ

Scheme v2 ทำงานใน Android 7.0 Nougat (API 25) แบบแผนนี้ให้การติดตั้งแอปพลิเคชันที่เร็วขึ้นและการป้องกันที่ดีต่อการเปลี่ยนแปลง APK โดยไม่ได้รับอนุญาต เนื้อหาของ APK ถูกแฮชและลงนาม จากนั้นบล็อกการลงนาม APK ที่เป็นผลลัพธ์จะถูกแทรกลงใน APK

รูปแบบใหม่นี้เข้ากันได้แบบย้อนหลัง ดังนั้น APK ที่ลงนามด้วยชุดรูปแบบใหม่สามารถติดตั้งบนอุปกรณ์รุ่นเก่าได้ (ซึ่งจะเพิกเฉยต่อลายเซ็นใหม่) ตราบใดที่ APK เหล่านั้นมีการเซ็นชื่อด้วยชุดรูปแบบ v1 ด้วย

ในแอปพลิเคชันรุ่นเก่า ฉันปล่อยให้ช่องทำเครื่องหมายถัดจากเวอร์ชันแรก บางทีในภายหลังพวกเขาจะบังคับให้คุณเปลี่ยนไปใช้เวอร์ชันที่สองโดยการบังคับ สิ่งสำคัญที่ควรทราบคือ คุณต้องลงนามด้วยชุดรูปแบบ v1 ก่อนลงนามด้วยชุดรูปแบบ v2 เนื่องจาก APK จะไม่ผ่านชุดรูปแบบ v2 หากมีการลงนามด้วยใบรับรองเพิ่มเติมหลังจากลงนามด้วยชุดรูปแบบ v2

พูดอย่างเคร่งครัด คุณสามารถโพสต์ไฟล์ apk บนไซต์ของคุณ และผู้เข้าชมทั้งหมดของคุณสามารถดาวน์โหลดและติดตั้งบนโทรศัพท์ของพวกเขา แต่สิ่งนี้ไม่เป็นที่ยอมรับในยุคนาโนเทคโนโลยีของเรา ไปที่ขั้นตอนต่อไป

ขั้นตอนที่สอง คุณต้อง Fedya คุณต้อง

ขั้นตอนต่อไปไม่เป็นที่พอใจมาก คุณต้องให้เอเวอร์กรีน 25 อันแก่คนแปลกหน้า เพื่อไม่ให้คุณขุ่นเคือง การดำเนินการนี้จึงเรียกว่าค่าธรรมเนียมการลงทะเบียน คุณจะต้องใช้บัตรเครดิตที่มีจำนวนเงินที่ระบุ โปรดทราบว่า Visa Electron และบัตรส่วนลดของร้านค้าในเครือ Perekrestok จะไม่เหมาะกับคุณ หากคุณมีบัตรที่ต้องใช้อยู่แล้ว ให้ข้ามย่อหน้านี้ ฉันสามารถแนะนำส่วนที่เหลือเพื่อรับกระเป๋าเงิน QIWI และรับบัตรเสมือนจริงที่นั่น นั่นคือสิ่งที่ฉันทำ เนื่องจากไม่อยากไปธนาคารและเขียนใบแจ้งยอดทุกประเภท

อัพเดทอัตโนมัติ

หากคุณสร้างโปรแกรมเวอร์ชันใหม่โดยแก้ไขจุดบกพร่องต่างๆ และเพิ่มรูปภาพใหม่ของแมว คุณต้องเพิ่มหมายเลขเวอร์ชันในรายการทีละรายการ (แอตทริบิวต์ versionCode) และแทนที่ versionNameสำหรับตัวคุณเอง (จะแสดงบนหน้า Google Play) ในเวอร์ชันล่าสุดของสตูดิโอ คุณสมบัติเหล่านี้ไม่ได้อยู่ในรายการ แต่อยู่ในไฟล์ build.gradleโมดูลแอปพลิเคชันของคุณ อัปโหลดเวอร์ชันใหม่บน Google Play และผู้ใช้จะได้รับการอัปเดตโดยอัตโนมัติ

ติดตามรีวิว

ติดตั้งแอป Google Play Developer Console บนอุปกรณ์ของคุณเพื่อที่คุณจะได้ไม่พลาดรีวิวใหม่เกี่ยวกับแอปของคุณ คุณยังสามารถดูสถิติ

การเปลี่ยนรหัสผ่านห้องนิรภัยและรหัสนามแฝง

ไม่ได้ใช้มาสองสามปีแล้ว เลยไม่รู้ว่าข้อมูลนี้เป็นปัจจุบันหรือเปล่า

สมมติว่าคุณขายโปรแกรมด้วยซอร์สโค้ดให้กับบริษัทอื่น ในการที่จะโพสต์การอัปเดตโปรแกรม บริษัทต้องลงนามในใบสมัครด้วยรหัสเดียวกันกับที่คุณเซ็นชื่อด้วย มิเช่นนั้นโปรแกรมจะถือว่าแตกต่างออกไปและจะต้องเปลี่ยนชื่อแพ็คเกจ แต่ผู้ใช้เก่าจะไม่สามารถรับการอัปเดตได้

แต่ถ้าคุณเซ็นโปรแกรมทั้งหมดของคุณด้วยรหัสและรหัสผ่านเดียวกัน เช่น แมวแมวจากนั้นบริษัทสามารถลงนามในแอปพลิเคชันอื่นของคุณด้วยรหัสเดียวกันโดยวางโปรแกรมของพวกเขาด้วยชื่อแพ็คเกจเดียวกัน และคุณจะไม่พิสูจน์สิ่งใดให้ใครเห็น

จึงต้องดูแลเรื่องการเปลี่ยนกุญแจเพื่อโอนให้เจ้าของใหม่

สมมติว่าที่เก็บของเรามีโครงสร้าง:

ชื่อคีย์สโตร์: old.keystore รหัสผ่านของที่เก็บคีย์: cat1 นามแฝง: my_alias นามแฝง รหัสผ่าน: cat2

ทำสำเนาห้องนิรภัยของคุณและบันทึกไว้ที่อื่น สิ่งนี้ควรทำในระหว่างการสร้างครั้งแรก เพราะหากคุณสูญเสียที่เก็บข้อมูล คุณจะไม่สามารถกู้คืนการเข้าถึงโปรแกรมของคุณในระหว่างการอัพเดต

ทำสำเนาของที่เก็บของคุณอีกครั้งแล้วเปลี่ยนชื่อ เช่น new.keystore. เราจะทำงานร่วมกับเขา

เรียกใช้ยูทิลิตี้ เครื่องมือสำคัญด้วยคำสั่ง:

Keytool -storepasswd -keystore new.keystore

คุณจะได้รับแจ้งให้ป้อนรหัสผ่านปัจจุบัน จากนั้นป้อนรหัสผ่านใหม่และทำซ้ำ ประมาณนี้:

ป้อนรหัสผ่าน keystore: รหัสผ่าน keystore ใหม่: ป้อนรหัสผ่าน keystore ใหม่อีกครั้ง:

งานส่วนแรกเสร็จสิ้น รหัสผ่านห้องนิรภัยถูกเปลี่ยน

หากคุณต้องการเปลี่ยนรหัสผ่านสำหรับนามแฝง ให้รันยูทิลิตี้อีกครั้งด้วยคำสั่ง:

Keytool -keypasswd -keystore new.keystore -alias my_name

คุณจะถูกขอให้ป้อนรหัสผ่านห้องนิรภัยปัจจุบันของคุณ (รหัสผ่านใหม่ของคุณ) จากนั้นรหัสผ่านนามแฝง คุณสามารถป้อนรหัสผ่านใหม่และรหัสผ่านจะแทนที่รหัสผ่านเก่า

ป้อนรหัสผ่านที่เก็บคีย์: ป้อนรหัสผ่านคีย์สำหรับ

รหัสผ่านนามแฝงมีการเปลี่ยนแปลง

หากการเปลี่ยนรหัสผ่านไม่เพียงพอสำหรับคุณและคุณต้องการเปลี่ยนชื่อแทน (บางทีคุณอาจใช้ชื่อแมวตัวโปรด ทำไมคนอื่นถึงรู้เรื่องนี้) เราก็ยังคงทำงานต่อไป

เรารันคำสั่ง:

Keytool -changealias -keystore new.keystore -alias my_alias -destalias my_new_alias

คุณจะถูกขอให้ป้อนรหัสผ่าน vault จากนั้นรหัสผ่านสำหรับนามแฝงใหม่ (รหัสผ่านปัจจุบัน) จากนั้นรหัสผ่านใหม่และทำซ้ำ จะเปลี่ยนชื่อนามแฝง

ดังนั้นเราจึงใช้เวลาสามขั้นตอนในการสร้างที่เก็บใหม่และนามแฝงเพื่อโอนไปยังคนแปลกหน้า เจ้าของใหม่ควรทำเช่นเดียวกันเพื่อให้แน่ใจว่าคุณจะไม่ใช้ประโยชน์จากไฟล์ที่เปลี่ยนแปลง อย่างไรก็ตาม นี่เป็นปัญหาของเขา

เราลงนามในใบสมัครที่เสร็จแล้ว

กรณีดังกล่าวอาจเกิดขึ้นได้เมื่อคุณทำซอร์สโค้ดหายและมีเพียง APK สิ่งนี้เป็นไปได้มากที่สุดสำหรับโจรสลัดที่ลงนามในแอปพลิเคชันอื่นอีกครั้ง (อย่าทำเช่นนี้กับโปรแกรมของผู้อื่น)

ขั้นแรก เปลี่ยนนามสกุลจาก apk เป็น zip ลบโฟลเดอร์ในไฟล์เก็บถาวร META-INF. คืนค่าส่วนขยาย คุณได้ลบลายเซ็นเก่า

ตอนนี้คุณต้องลงนามในแอปพลิเคชันด้วยรหัสใหม่ ป้อนคำสั่ง

jarsigner -keystore keystore-file.jks -storepass keystore_password -keypass alias_password --signedjar ลงนาม-apk-file.apk apk-file.apk alias_name

หากสำเร็จ คุณจะได้รับข้อความแจ้งว่าใบสมัครได้ลงนามแล้ว ต่อไป เรารันคำสั่งอื่น

ANDROID_SDK_PATH/build-tools/LAST_BUILD_TOOLS_VERSION/zipalign -v 4 signed-apk-file.apk aligned-apk-file.apk

ผลลัพธ์ควรเป็นไฟล์ APK ที่ลงนามด้วยรหัสใหม่ ไม่เคยใช้เอง

ที่เก็บข้อมูลคีย์ Google

ในปี 2560 Google ได้เพิ่มตัวเลือกใหม่ในการจัดเก็บกุญแจในระบบคลาวด์ ข้อแตกต่างที่สำคัญคือ คุณเซ็นชื่อแอปด้วยคีย์การอัปโหลดพิเศษ ซึ่ง Google จะตรวจสอบและนำออก โดยแทนที่ด้วยคีย์การลงนามแอปเดิมที่คุณให้มา

ช่วยให้คุณจัดการคีย์การลงนามแอปสำหรับทั้งแอปใหม่และแอปที่เผยแพร่ ซึ่ง Google จะจัดเก็บไว้ในคีย์สโตร์ของตนเอง ในการเข้าร่วมโปรแกรมนี้ คุณต้องสมัครรับข้อมูลจาก Google Play Console เป็นที่น่าสังเกตว่าจะไม่สามารถยกเลิกการสมัครรับข้อมูลได้อีกต่อไป

วิธีนี้มีประโยชน์มาก - หากที่เก็บคีย์หาย Google Play App Signing จะอนุญาตให้คุณรีเซ็ตคีย์เพื่อติดตั้งใหม่ คุณไม่จำเป็นต้องเผยแพร่แอปอีกครั้งด้วยชื่อแพ็กเกจและคีย์ใหม่

การอ่านเพิ่มเติม

Android-keystore-password-recover โดย MaxCamillo - หากคุณทำรหัสผ่านหาย ให้ลองใช้เครื่องมือนี้ ไม่ได้ใช้เองเลยไม่บอก

ปรับปรุงล่าสุด: 30/10/2558

หลังจากสร้างแอปพลิเคชัน ทดสอบและแก้จุดบกพร่องแล้ว เราสามารถเริ่มเผยแพร่ได้ สาระสำคัญของสิ่งพิมพ์คือการสร้างไฟล์ที่มีนามสกุล .apkซึ่งจะเป็นตัวแทนของแอปพลิเคชัน และตำแหน่งที่ตามมาใน Google Play Market หรือไซต์ภายนอกอื่นๆ โดยค่าเริ่มต้น ในระหว่างกระบวนการดีบักและสร้างแอปพลิเคชัน ไฟล์ apk จะถูกสร้างขึ้นแล้ว และเราสามารถค้นหาได้ในโฟลเดอร์โครงการตามเส้นทาง Project_name\app\build\outputs\apk. โดยค่าเริ่มต้น ไฟล์จะมีชื่อว่า app-debug.apkและแสดงถึงเวอร์ชันการดีบัก

แต่สำหรับการตีพิมพ์แบบเต็มของไฟล์นี้อาจไม่เพียงพอ และเรายังต้องเตรียมโครงการสำหรับการเปิดตัว เมื่อต้องการทำสิ่งนี้ ให้ระบุในไฟล์รายการสำหรับองค์ประกอบ มีการตั้งค่าแอตทริบิวต์ android:versionCode และ android:versionName นอกจากนี้ในไฟล์รายการองค์ประกอบ ต้องไม่มีแอตทริบิวต์ android:debuggable

นอกจากนี้ ในขั้นตอนนี้ คุณสามารถตั้งค่าไอคอนสำหรับแอปพลิเคชันที่จะแสดงบนหน้าจอหลักของแกดเจ็ต ชื่อของแอปพลิเคชัน (แอตทริบิวต์ android:label บนองค์ประกอบ) และคุณยังสามารถตั้งค่าข้อตกลงใบอนุญาตได้

ไฟล์รายการต้องกำหนดชื่อของแพ็คเกจด้วย (แอตทริบิวต์แพ็คเกจขององค์ประกอบ ) ซึ่งจะใช้สำหรับการสมัครในภายหลัง โดยค่าเริ่มต้น เมื่อพัฒนาใน Android Studio แพ็คเกจแอปจะเริ่มต้นด้วย com.example. คุณไม่ควรทิ้งชื่อนี้ไว้ เนื่องจากชื่อของแพ็คเกจจะทำหน้าที่เป็นตัวระบุเฉพาะสำหรับแอปพลิเคชันของคุณ ตัวอย่างเช่น ด้านล่างในกรณีของฉันชื่อแพ็คเกจคือ "com.maverics.eugene.telephonelist":

นอกจากนี้ หากในไฟล์โค้ดจาวา ชื่อแพ็กเกจที่ตอนต้นของไฟล์จะต้องตรงกับแพ็กเกจของแอปพลิเคชันด้วย

การตั้งค่าข้อกำหนด

คุณยังกำหนดข้อกำหนด API ระหว่างช่วงก่อนเผยแพร่ได้อีกด้วย ตัวอย่างเช่น แอปพลิเคชันของเรามีเวอร์ชันขั้นต่ำของระบบปฏิบัติการ Android ดังนั้นเราจึงสามารถตั้งค่าแอตทริบิวต์ที่เกี่ยวข้องในองค์ประกอบในไฟล์รายการได้

    android:minSdkVersion - เวอร์ชัน Android ขั้นต่ำ

    android:targetSdkVersion - เวอร์ชัน API ที่เหมาะสมที่สุด

    android:maxSdkVersion - เวอร์ชันสูงสุดของระบบ

ตัวอย่างเช่น สมมติว่าเวอร์ชันต่ำสุดของ Jelly Beans คือ 4.1.2 และเวอร์ชันที่เหมาะสมที่สุดคือ KitKat 4.4.4:

//.............................

ลายเซ็นใบสมัคร

เมื่อทุกอย่างพร้อม แอปพลิเคชัน Android จะต้องลงนามด้วยใบรับรอง ซึ่งสามารถระบุผู้เขียนแอปพลิเคชันได้ เมื่อเราทดสอบแอปพลิเคชันโดยติดตั้งผ่าน Android Studio บนอุปกรณ์ แอปพลิเคชันนั้นจะได้รับการลงชื่อโดยอัตโนมัติ แต่ในการสร้างเวอร์ชันที่วางจำหน่าย เราจำเป็นต้องดำเนินการเพิ่มเติมเป็นชุด

เมื่อสร้างใบรับรอง โปรดทราบว่าเมื่อคุณอัปเดตแอปพลิเคชัน ระบบจะเปรียบเทียบใบรับรองของเวอร์ชันเก่าและเวอร์ชันใหม่ และการอัปเดตจะเกิดขึ้นหากใบรับรองของทั้งสองเวอร์ชันตรงกัน แต่ถ้าเวอร์ชันใหม่ถูกเซ็นชื่อด้วยใบรับรองใหม่ แอปพลิเคชันจะถือว่าเป็นเวอร์ชันใหม่ทั้งหมด ไม่เกี่ยวข้องกับเวอร์ชันเก่าและแสดงถึงแอปพลิเคชันที่ต่างไปจากเดิมอย่างสิ้นเชิง ในกรณีนี้ ในการติดตั้ง เวอร์ชั่นใหม่จะต้องมีชื่อแพ็คเกจที่แตกต่างจากตัวเก่า

ขั้นแรก ใน Android Studio ให้เลือก Build -> Generate Signed APK จากเมนู ซึ่งจะเปิดหน้าต่างวิซาร์ด:

คลิกที่ปุ่มสร้างใหม่... หลังจากนั้น หน้าต่างสำหรับสร้างคีย์จะเปิดขึ้น:

ป้อนพาธไปยังไฟล์ใบรับรองเครือข่ายที่จะสร้างในฟิลด์ พาธที่เก็บคีย์ หากไม่มีโฟลเดอร์ที่ระบุ ให้สร้างหรือกำหนดโฟลเดอร์ที่มีอยู่

ระบุรหัสผ่านในช่องรหัสผ่าน/ยืนยัน

ระบุนามแฝงในช่องนามแฝง คุณสามารถใส่ชื่อโดยพลการ

ในช่องชื่อและนามสกุล ให้ป้อนชื่อและนามสกุล จากนั้นเราก็เขียนหน่วย องค์กร เมือง ประเทศ และรหัสประเทศ

ในตอนท้ายคลิกตกลง

หลังจากนั้น หน้าต่างแรกจะได้รับการอัปเดตโดยอัตโนมัติ:

หน้าต่างสุดท้ายจะแสดงพา ธ ไปยังไดเร็กทอรีที่แอปพลิเคชัน apk ที่ลงนามจะอยู่ในเวอร์ชันที่วางจำหน่าย คลิกที่เสร็จสิ้น

ในเส้นทางที่ระบุ คุณจะพบ apk ที่ลงชื่อแล้ว ซึ่งจะมีชื่อ app-release.apk:

เราสามารถเปลี่ยนชื่อไฟล์ รักษานามสกุลไฟล์ และอัปโหลดไปยัง Play Market หรือไซต์ใดๆ หรือดาวน์โหลดโดยตรงไปยังอุปกรณ์มือถือของคุณ หลังจากดาวน์โหลดไปยังโทรศัพท์ / แท็บเล็ตของคุณแล้ว เพียงคลิกที่มัน และใช้ตัวติดตั้งแพ็คเกจมาตรฐาน แอปพลิเคชันจะถูกติดตั้ง จริงในที่นี้ เราต้องคำนึงด้วยว่าหากเราติดตั้งแอปพลิเคชันที่ไม่ได้มาจาก Play Market จากนั้นในการตั้งค่าเราจำเป็นต้องอนุญาตการติดตั้งจากแหล่งอื่น - ความปลอดภัย-> แหล่งที่ไม่รู้จัก (อนุญาตการติดตั้งแอปพลิเคชันจากแหล่งอื่น)