Ploaמרכז מידע

עבודה מ-⁠Windows

הכול ב-⁠Ploa עובד ממחשב Windows, חוץ מהבנייה של אפליקציית האייפון עצמה, שצריכה מק עם Xcode. הסוכן, פרטי החנות, בניות אנדרואיד, צילומי מסך מאמולטור אנדרואיד, ה-⁠web והשרת של האפליקציה עובדים כולם מ-⁠Windows. בניית האייפון רצה על מק במקום אחר, ומשם Ploa לוקחת אותה ל-⁠TestFlight ול-⁠App Store.

התקנה

ב-⁠PowerShell:

irm https://ploa.dev/install.ps1 | iex
ploa login
ploa mcp install

הסקריפט בודק שיש Node 24, שם את הקבצים ב-⁠%USERPROFILE%\.ploa\cli ומפעיל קטן בשם ploa.cmd ב-⁠%USERPROFILE%\.ploa\bin, ומוסיף אותו ל-⁠PATH שלך (לא של כל המחשב). שום דבר לא רץ כמנהל מערכת. אחרי ההתקנה פותחים טרמינל חדש ומפעילים מחדש את הסוכן, כדי שיראו את ה-⁠PATH החדש. מעדכנים אחר כך עם ploa update.

אפשר גם עם npm:‏ npm install -g @ploa/cli. בכל דרך, ploa mcp install כותב לסוכנים את מה שהם צריכים כדי להפעיל את Ploa ב-⁠Windows (בהתקנה מ-⁠npm זה cmd /c npx.cmd, כי סוכנים מפעילים שרת בלי shell).

מה עובד ב-⁠Windows

מהמה המחשב צריך
הסוכן וכלי ה-⁠MCP של Ploa‏Node 24 ומעלה
בניות אנדרואיד במחשב הזה (Expo,‏ React Native,‏ Flutter,‏ Capacitor,‏ Gradle)‏JDK 17 ומעלה (winget install Microsoft.OpenJDK.17, או זה של Android Studio), וה-⁠Android SDK, ש-⁠Android Studio שם ב-⁠%LOCALAPPDATA%\Android\Sdk. ל-⁠Flutter:‏ Flutter ב-⁠PATH או ב-⁠%USERPROFILE%\flutter.
צילומי מסך ל-⁠Google Playאמולטור אנדרואיד שרץ: הסוכן מצלם אותו עם ploa_screenshot_capture, שמוצא את adb.exe ב-⁠Android SDK.
פרטי החנות, פרטיות, רכישות, בודקים, App Review ושחרוריםכלום: הם רצים ב-⁠Ploa.
ה-⁠web והשרת של האפליקציהרק כלי הבנייה של הפרויקט עצמו.
בניות ב-⁠GitHub או ב-⁠Google Cloud שלךכלום: הן בונות את מה שנדחף.

מה לא עובד ב-⁠Windows: בניית אפליקציית האייפון במחשב הזה, וצילומי מסך מסימולטור ה-⁠iOS. ‏ploa doctor אומר מה יש במחשב ולאן הולכות בניות האייפון במקום.

אפליקציית האייפון מ-⁠Windows

הסוכן שואל איפה לבנות, ואומר לפני בנייה שעולה לך דקות:

  • על המקים של GitHub. בעלים מאשר אותם בהגדרות ה-⁠GitHub של האפליקציה, והבנייה רצה ב-⁠GitHub ממה שנדחף. במאגר פרטי דקת מק נספרת כעשר דקות GitHub שלך (בניית אייפון היא בערך 150 עד 200); במאגר ציבורי זה בחינם.
  • על מק שלך או של מישהו מהצוות, כ-⁠runner של GitHub:‏ ploa runner על אותו מק. ראה GitHub.
  • ב-⁠Xcode Cloud. אפל בונה וחותמת, ו-⁠Ploa עוקבת עד TestFlight. הצעד הראשון שלו נעשה פעם אחת ב-⁠Xcode על מק. ראה הגדרת Xcode Cloud.

צילומי אייפון: סימולטור ה-⁠iOS צריך מק, אז מצלמים על אותו מק, או מכינים אותם בגדלים ש-⁠ploa_screenshot_specs נותן ומעלים עם ploa_screenshot_upload (‏ploa_screenshot_check בודק כל אחד קודם).

מאגר ששמרו בו מ-⁠Windows

‏Windows לא שומרת על קבצים סימון "ניתן להרצה", ולפעמים שומרת סקריפטים עם סופי שורה של Windows ‏(CRLF), אז gradlew ששמרו מ-⁠Windows לא עולה על מק, על לינוקס או ב-⁠GitHub ("Permission denied" או "bad interpreter"). ‏Ploa מתקנת את הקובץ לפני ש-⁠Gradle רץ שם, ואומרת את זה בלוג של הבנייה. כדי לתקן במאגר פעם אחת:

git update-index --chmod=+x android/gradlew

ומוסיפים קובץ .gitattributes בתיקיית השורש של המאגר, כדי שסקריפטים יישמרו עם סופי שורה LF:

gradlew text eol=lf
*.sh text eol=lf

אותו דבר ל-⁠ios/ci_scripts/ci_post_clone.sh כשמשתמשים ב-⁠Xcode Cloud:‏ ploa xcode-cloud אומר את זה כשהוא מוסיף אותו.

‏WSL

מריצים את Ploa או ב-⁠Windows או בתוך WSL, לא חצי פה וחצי שם: הסוכן, ploa וה-⁠Android SDK צריכים להיות באותו צד. בתוך WSL זה לינוקס: מתקינים עם curl -fsSL https://ploa.dev/install.sh | sh, ומשתמשים ב-⁠Android SDK ללינוקס.

כשמשהו לא עובד

מה כתובמה עושים
'ploa' is not recognized as an internal or external commandפותחים טרמינל חדש אחרי ההתקנה (ה-⁠PATH נקרא כשהוא נפתח), או מריצים %USERPROFILE%\.ploa\bin\ploa.cmd.
running scripts is disabled on this systemהמדיניות של PowerShell חוסמת את ploa.ps1 של npm. מריצים ploa.cmd במקום, או מתירים פעם אחת את הסקריפטים שלך: Set-ExecutionPolicy -Scope CurrentUser RemoteSigned.
הסוכן לא מפעיל את Ploa אחרי התקנה מ-⁠npmמריצים שוב ploa mcp install עם ה-⁠ploa החדש, ומפעילים מחדש את הסוכן.
Xcode: not on Windowsכך זה אמור להיות: בונים את אפליקציית האייפון במקום אחר.

עוד: פתרון בעיות.