# การปฏิบัติตามนโยบาย Package Visibility ของ Google

เนื่องจาก Google ได้อัปเดตนโยบายโปรแกรมสำหรับนักพัฒนาซอฟต์แวร์ อาจทำให้เกิดปัญหาบางอย่างในการเผยแพร่แอปที่มี Pushwoosh SDK ไปยัง Google Play โปรดดูรายละเอียดที่ [ศูนย์นโยบายของ Google](https://support.google.com/googleplay/android-developer/answer/10446026)

เพื่อแก้ไขหรือป้องกันปัญหาเหล่านั้น โปรดตรวจสอบให้แน่ใจว่าแอปของคุณสอดคล้องกับนโยบาย Package Visibility ที่อัปเดตใหม่ (มีผลบังคับใช้ฤดูร้อนปี 2021) โดยทำตามขั้นตอนที่อธิบายไว้ในคู่มือนี้

## อัปเดต Pushwoosh SDK

อัปเดต Pushwoosh SDK (สำหรับแอป Android native) หรือปลั๊กอินที่เกี่ยวข้องสำหรับเฟรมเวิร์กข้ามแพลตฟอร์มใดๆ ให้เป็นเวอร์ชันล่าสุด โดยเวอร์ชันขั้นต่ำที่ต้องการคือ 6.2.5

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

*   [android.content.pm](http://android.content.pm/).PackageManager.getInstalledApplications()
*   [android.content.pm](http://android.content.pm/).PackageManager.getInstalledPackages()

## ตรวจสอบให้แน่ใจว่า SDK อื่นๆ เป็นไปตามข้อกำหนด

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

วิเคราะห์ APK ของคุณเพื่อให้แน่ใจว่าไม่มีไลบรารีอื่นที่ใช้เมธอด `getInstalledApplications()` และ `getInstalledPackages()`

1.  เปิด [Android Studio](https://developer.android.com/studio)

2.  ดาวน์โหลดไฟล์ .apk

3.  เปิด **Build**-> **Analyze APK…** ค้นหาไฟล์ **.apk** ของคุณแล้วเลือก

<img src="/android-push-notifications-compliance-with-google-package-visibility-policy-1.webp" alt=""/>

4.  คุณจะเห็น **View** ที่คุณสามารถค้นหาทรัพยากรของ **.apk** ได้ ไปที่ไฟล์ **.dex**:

<img src="/android-push-notifications-compliance-with-google-package-visibility-policy-2.webp" alt=""/>

5.  เปิดไฟล์ **.dex** ทั้งหมดทีละไฟล์และค้นหา `android.content.pm.PackageManager`:

<img src="/android-push-notifications-compliance-with-google-package-visibility-policy-3.webp" alt=""/>

6.  มองหาเมธอด `getInstalledApplications()` และ `getInstalledPackages()` หากมี ให้คลิกขวาแล้วเลือกตัวเลือก **Find usages**:

<img src="/android-push-notifications-compliance-with-google-package-visibility-policy-4.webp" alt=""/>

ซึ่งจะระบุว่า SDK ใดใช้เมธอดเหล่านั้น หากคุณใช้ Ogury, Pollfish, Adjoe.io, ironSource หรือ UnityNativeShare ไลบรารีเหล่านี้อาจใช้เมธอดสอบถามแพ็คเกจ

7.  ตรวจสอบให้แน่ใจว่าได้อัปเดต SDK เหล่านั้นเป็นเวอร์ชันที่สอดคล้องกับนโยบายของ Google หรือลบออกจากแอป

8.  ทำซ้ำขั้นตอนที่ 2.4-2.7 สำหรับไฟล์ .dex ทั้งหมดใน APK ของคุณ

## ลบเวอร์ชันเก่าที่ไม่เป็นไปตามข้อกำหนด

1.  ลงชื่อเข้าใช้ Google Play Console ของคุณ
2.  เลือกแอปที่คุณต้องการส่งไปยัง Store
3.  ตรวจสอบแทร็ก **Production, Open, Closed,** และ **Internal testing** ของคุณสำหรับ APKs/AABs เก่าที่มี Pushwoosh SDK ที่ล้าสมัย หรือ SDK ของบุคคลที่สามใดๆ ที่ติดตั้งซึ่งตรวจพบในขั้นตอนก่อนหน้า

หากคุณพบอาร์ติแฟกต์ดังกล่าว ให้ลบ app bundles ออก โดยทำดังนี้:

1.  เปิดแทร็ก (เช่น Internal testing)

2.  คลิกที่ **Release Details**

3.  ในส่วน **App bundles and APKs** ให้เลือก APK/AAB ของคุณและเปิดรายละเอียด (ลูกศรสีน้ำเงินทางด้านขวาของรีลีส)

4.  คลิก **Explore App Bundle**

5.  ลบ app bundle โดยคลิกปุ่ม **Delete App Bundle**

<Aside type="caution">
ตรวจสอบให้แน่ใจว่า bundle ถูกลบแล้ว ไม่ใช่แค่ปิดใช้งาน
</Aside>

6.  หากรีลีสถูกเผยแพร่ไปแล้ว APK/AAB อาจไม่สามารถลบได้ ในกรณีนั้น ให้อัปเดตรีลีสด้วยเวอร์ชัน SDK ใหม่

ทำซ้ำขั้นตอนที่ 1 - 6 สำหรับอาร์ติแฟกต์ที่ล้าสมัยทั้งหมด

<Aside type="note">
ตรวจสอบให้แน่ใจว่าได้อัปเดตแอปในรีลีสปัจจุบันก่อนที่จะส่งไปยัง Google Play อีกครั้ง
</Aside>

เพิ่มเวอร์ชันของแอปก่อนส่งอีกครั้ง (เช่น หากเป็น 1.0.1 จะต้องเปลี่ยนเป็น 1.0.2)

## เพื่อเร่งกระบวนการอนุมัติ

เพื่อเร่งการอนุมัติโดย Google ให้ส่งคำอุทธรณ์ไปที่ play-bd-support@google.com และแนบภาพหน้าจอเพื่อพิสูจน์ว่า:

*   APK ของคุณไม่มีการเรียกใช้เมธอดเหล่านี้:

[_android.content.pm_](http://android.content.pm/)_.PackageManager.getInstalledApplications()_\
[_android.content.pm_](http://android.content.pm/)_.PackageManager.getInstalledPackages()_

*   แทร็กรีลีสทั้งหมดของคุณใน Google Play Console มีเฉพาะ bundle ที่เป็นไปตามข้อกำหนดเท่านั้น

## แบ่งปันความคิดเห็นของคุณกับเรา

ความคิดเห็นของคุณช่วยให้เราสร้างประสบการณ์ที่ดีขึ้น เราจึงยินดีที่จะรับฟังจากคุณหากคุณมีปัญหาใดๆ ในระหว่างขั้นตอนการผสานรวม SDK หากคุณประสบปัญหาใดๆ โปรดอย่าลังเลที่จะแบ่งปันความคิดของคุณกับเรา [ผ่านแบบฟอร์มนี้](https://docs.google.com/forms/d/e/1FAIpQLSd\_0b8jwn-V\_JmoPLIxIFYbHACCQhrzidOZV3ELywoQPXRSxw/viewform)