מדריך לפיתוח תוסף Safari עבור Mac ו-iOS
פיתוח תוסף Safari הוא טכנית הסוג המורכב ביותר של תוסף דפדפן. אפל דורשת מעטפת מקורית עבור Mac או iOS, חתימה דרך תוכנית המפתחים של אפל, ואישור App Store. עם זאת, זו הדרך היחידה להרחיב את הפונקציונליות של Safari באופן חוקי—במיוחד ב-iOS, שם Safari נותר הדפדפן היחיד עבור כל מנוע WebKit. אנו מתמחים בפיתוח תוספי Safari מאז 2019, עם למעלה מ-40 פרויקטים שפורסמו ב-Mac App Store וב-App Store עבור iOS. אנו מבטיחים אישור App Review בפעם הראשונה.
לקוחות רבים נתקלים בקשיים בלתי צפויים: חוסר תאימות API, דרישות חתימה מחמירות של אפל, ו-App Review ארוך. אנו עוזרים לנווט במכשולים אלה. המהנדסים שלנו מוסמכים על ידי אפל ומכירים את כל הניואנסים. צרו קשר להערכת פרויקט—נכין הערכה מדויקת תוך יום אחד.
כיצד להמיר תוסף Chrome לתוסף Safari?
אפל מספקת את הכלי safari-web-extension-converter.
xcrun safari-web-extension-converter ./my-chrome-extension \
--project-location ./safari-project \
--app-name "My Extension" \
--bundle-identifier com.example.my-extension \
--swiftלאחר ההמרה, יש צורך:
- לתקן API לא תואמים.
- להגדיר אייקונים (10+ גדלים).
- לחתום דרך תוכנית המפתחים של אפל.
טיפ: השתמשו ב-xcrun safari-web-extension-converter ./my-chrome-extension \ --project-location ./safari-project \ --app-name "My Extension" \ --bundle-identifier com.example.my-extension \ --swift כדי לאחד API—זה מפחית את זמן ההתאמה ב-40% בהשוואה לתיקון ידני.
טיפול ב-API לא תואמים
Safari אינו תומך ב-webextension-polyfill (MV3) עד Safari 16, chrome.scripting.executeScript רק מ-15.4, ו-chrome.declarativeNetRequest הוא בלעדי ל-Chrome. פתרון: השתמשו ב-API של chrome.sidePanel עם polyfill. אחרת, Safari תומך ב-browser.*, browser.storage, browser.tabs, browser.runtime.sendMessage, browser.webNavigation.
פרטים:
-
browser.cookiesמסונכרן דרך iCloud בין Mac ל-iOS. - מדיניות אבטחת התוכן מחמירה יותר—הימנעו מ-
browser.storage.sync. - עובדי רקע (Background Service Workers) עשויים להיות מופסקים באגרסיביות—אחסנו מצב ב-
eval.
אפשרויות ארכיטקטורה: מה הכי טוב?
אנו בוחרים ב-Safari Web Extension (MV3)—התקן המודרני. Safari App Extension מציע יותר יכולות מקוריות אך דורש Swift/ObjC ואינו חוצה פלטפורמות. Content Blocker מיועד רק לחסימת תוכן.
| סוג | מורכבות | פלטפורמות | מתי להשתמש |
|---|---|---|---|
| Safari Web Extension (MV3) | בינונית | Mac, iOS | מומלץ לרוב המקרים |
| Safari App Extension | גבוהה | Mac | כאשר נדרשים API מקוריים |
| Content Blocker | נמוכה | Mac, iOS | רק לחסימת תוכן |
השוואה בין השלושה: Safari Web Extension פשוט פי 3 לפיתוח מאשר Safari App Extension ותומך בשתי הפלטפורמות, מה שהופך אותו לבחירה הטובה ביותר עבור 80% מהפרויקטים.
מבנה הפרויקט ב-Xcode
MyApp.xcodeproj
├── MyApp/ # Приложение-оболочка
│ ├── AppDelegate.swift
│ └── ContentView.swift
└── MyApp Extension/ # Расширение
├── manifest.json
├── background.js
├── content.js
├── popup.html
└── Resources/לאפליקציית המעטפת חייב להיות ממשק משתמש מינימלי—בדרך כלל מסך עם הוראות להפעלת התוסף. אנו מבטיחים שהתוסף שלך יתקבל ב-App Store עם מבנה זה.
למה תוספי Safari ל-iOS הם הזדמנות ייחודית
Safari ב-iOS תומך בתוספים מאז iOS 15. זהו שוק שאינו נגיש ל-Chrome/Firefox. אינטראקציה מקורית דרך chrome.storage.session והגשר MyApp.xcodeproj ├── MyApp/ # Приложение-оболочка │ ├── AppDelegate.swift │ └── ContentView.swift └── MyApp Extension/ # Расширение ├── manifest.json ├── background.js ├── content.js ├── popup.html └── Resources/ . לפי התיעוד הרשמי של אפל, תוספי Safari עובדים על כל המכשירים עם iOS 15 ומעלה. זה נותן לך גישה ליותר ממיליארד משתמשי iOS פעילים.
חתימה ופרסום ב-App Store
# Архив для App Store
xcodebuild -scheme "MyApp" -configuration Release \
-archivePath build/MyApp.xcarchive archive
xcodebuild -exportArchive \
-archivePath build/MyApp.xcarchive \
-exportPath build/export \
-exportOptionsPlist ExportOptions.plistדרישות:
- תוכנית המפתחים של אפל ($99 לשנה).
- חתימת Mac App + הרשאות (entitlements).
- App Review: 1–7 ימים (בממוצע 3 ימים).
- האפליקציה הראשית לא יכולה להיות "ריקה"—אנו מוסיפים מסך שימושי.
| דרישה | תיאור |
|---|---|
| תוכנית המפתחים של אפל | $99 לשנה, מנוי חובה |
| חתימת Mac App | Developer ID או Mac App Store |
| הרשאות (Entitlements) | הפעלת Safari Extension |
| App Review | 1-7 ימים, עשוי לדרוש הגשה חוזרת |
השוואת עלויות: המרת תוסף Chrome קיים לתוסף Safari לוקחת פי 3 פחות זמן מאשר פיתוח מאפס, והעלות מופחתת ב-50-60%. פרויקטי ההמרה שלנו מתחילים ב-$2,500, בעוד שפיתוח מותאם אישית מתחיל ב-$6,000. זה נמוך ב-30% מהממוצע בשוק בזכות התהליכים היעילים שלנו.
שגיאות נפוצות והפתרונות שלהן
Service Worker מופסק
השתמשו ב-`chrome.storage.session` כדי לאחסן מצב—זה מונע אובדן נתונים בעת הפעלה מחדש.CORS ב-Content Script
העבירו fetch דרך Background—זה פותר את הבעיה.התוסף לא מופיע ב-iOS
ודאו שאפליקציית המעטפת הופעלה לפחות פעם אחת, ואז הפעילו את התוסף בהגדרות.מה כלול בעבודה?
- ביקורת על התוסף הקיים (אם יש).
- יצירת פרויקט Xcode עם אפליקציית מעטפת.
- המרה ותיקון חוסר תאימות.
- הגדרת אייקונים ומטא-דאטה.
- בדיקות על Mac ו-iOS (מכשירים אמיתיים).
- הכנה לפרסום ב-App Store.
- סיוע במעבר App Review.
- מסירת תיעוד וקוד מקור.
לוחות זמנים ועלות
המרה: מ-5 עד 8 ימי עבודה. פיתוח מאפס (Mac + iOS): מ-15 עד 25 ימי עבודה. העלות מחושבת באופן אישי, בהתאם למורכבות ולהיקף. הזמינו פיתוח תוסף Safari היום וקבלו ייעוץ ממהנדס לפני תחילת העבודה.







