SpiMp3

انتشار در مایکت (Myket)

راهنمای گام‌به‌گام انتشار SpiMp3 در فروشگاه مایکت.

چرا نسخه ۱.۱.۱ رد شد؟

مایکت پیام زیر را نشان داد:

فایل APK با کلید دیباگ امضا شده است. لطفاً نسخه‌ای با کلید انتشار راگانی کنید.

علت واقعی: در بیلد خودکار (GitHub Actions) وقتی فایل keystore.properties در دسترس نبود، app/build.gradle.kts بی‌صدا به کلید دیباگ برمی‌گشت. یعنی APK با CN=Android Debug امضا می‌شد ولی job سبز می‌ماند. اثر انگشت گواهی APK ریلیس ۱.۱.۱:

APK گواهی امضا وضعیت
SpiMp3-1.1.1.apk (ریلیس v1.1.1) c8a224f647e6c886… — CN=Android Debug ❌ رد شد
SpiMp3-1.1.2.apk (ریلیس v1.1.2) 581c4d9183b771ac… — CN=SpiMp3 ✅ پذیرفته می‌شود

این مسیر در نسخه ۱.۱.۲ بسته شد:

۱. گرفتن APK امضاشده

از ریلیس‌های گیت‌هاب:

https://github.com/ciomid1097-arch/SpiMp3/releases/download/v1.1.2/SpiMp3-1.1.2.apk

بررسی امضا قبل از آپلود (اختیاری ولی توصیه‌شده):

apksigner verify --print-certs SpiMp3-1.1.2.apk | grep "SHA-256 digest"
# باید 581c4d9183b771acaaac2865c9dbddfc208efe008d50f6bae881697ef0441455 باشد

۲. ثبت در پنل مایکت

  1. وارد developer.myket.ir شوید.
  2. از منوی «برنامه‌ها» → «افزودن برنامه» → گزینهٔ «بارگذاری اولیه».
  3. در بخش «اپلود APK» فایل SpiMp3-1.1.2.apk را بکشید و رها کنید.
  4. پنل به‌صورت خودکار نام بسته، نسخه و مجوزها را استخراج می‌کند:
    • com.spimp3.app
    • versionName 1.1.2 / versionCode 5
    • مجوزها: READ_MEDIA_AUDIO، POST_NOTIFICATIONS، INTERNET
  5. بخش‌های بعدی فرم را پر کنید (متن‌های آماده در listing-fa.md و listing-en.md همین پوشه موجود است).

مجوز INTERNET و بررسی خودکار نسخهٔ جدید

تنها دلیل این مجوز، چک کردن نسخهٔ جدید از GitHub Releases است (data/UpdateChecker.kt). کاربر می‌تواند آن را در Settings → Updates → Check for updates خاموش کند، و در غیر این صورت فقط یک درخواست GET بدون ارسال هیچ داده‌ای انجام می‌شود.

نکتهٔ دیبای: مایکت در توضیح فرم هشدار می‌دهد که اپلیکیشن‌هایی که کاربر را به دانلود از منبع دیگری هدایت کنند تأیید نمی‌شوند. اگر اپ به این دلیل رد شد، بهترین کار این است که فیچر چک آپدیت برای نسخهٔ مایکت غیرفعال شود — به‌جای حذف کامل، کافی است UpdateChecker در build.gradle.kts با یک buildConfigField خاموش شود تا متن Privacy Policy هم دقیقاً با رفتار واقعی هم‌خوان بماند.

۳. اطلاعات لازم برای فرم

مورد مقدار
نام برنامه SpiMp3
بسته‌بندی com.spimp3.app
دسته موزیک و صدا
حداقل نسخهٔ اندروید 8.0 (API 26)
وب‌سایت https://ciomid1097-arch.github.io/SpiMp3/
سیاست حریم خصوصی https://ciomid1097-arch.github.io/SpiMp3/store/privacy-policy.html
ایمیل پشتیبانی در listing-fa.md
محتوای بزرگسال / خشونت خیر

۴. تصاویر

فایل کاربرد
play-icon.png آیکن برنامه (۵۱۲×۵۱۲، PNG)
feature-graphic.png گرافیک ویژه
اسکرین‌شات‌ها حداقل ۲ اسکرین‌شات از صفحهٔ اصلی و صفحهٔ Now Playing

تصاویر را می‌توانید از Play استور بازتولید کنید؛ ابعاد و فرمت یکسان بماند.

۵. انتشار نسخه‌های بعدی

هر نسخهٔ جدید فقط با تگ کار می‌کند:

# 1. versionCode / versionName را در app/build.gradle.kts بالا ببرید
# 2. یک ورودی جدید برای WhatsNew.notes اضافه کنید
git add -A && git commit -m "v1.1.3: …"
git tag v1.1.3 && git push origin main v1.1.3

Action به‌طور خودکار APK امضاشده را روی ریلیس می‌گذارد و لینک مستقیم آپدیت به‌روز می‌شود. اگر کلید در GitHub نباشد، اکشن fail می‌شود (قبلاً بی‌صدا APK دیباگ‌امضا منتشر می‌کرد).

۶. مشکلات رایج

پیام پنل علت راه‌حل
«با کلید دیباگ امضا شده است» keystore به بیلد نرسیده نسخهٔ ۱.۱.۲ به بعد را آپلود کنید
«نسخهٔ جدیدتری وجود دارد» versionCode تکراری versionCode را در build.gradle.kts بالا ببرید
«امضای نامعتبر» APK دستکاری‌شده یا ناقص فایل را دوباره از ریلیس دانلود کنید
رد شدن به‌خاطر لینک دانلود مستقیم سیاست مایکت چک آپدیت را برای نسخهٔ مایکت خاموش کنید