דילוג לתוכן
  • דף הבית
  • קטגוריות
  • פוסטים אחרונים
  • משתמשים
  • חיפוש
  • חוקי הפורום
כיווץ
תחומים

תחומים - פורום חרדי מקצועי

💡 רוצה לזכור קריאת שמע בזמן? לחץ כאן!
  1. דף הבית
  2. גומלין - כללי
  3. בעיה בקוד apple script למקבוק

בעיה בקוד apple script למקבוק

מתוזמן נעוץ נעול הועבר גומלין - כללי
16 פוסטים 3 כותבים 643 צפיות
  • מהישן לחדש
  • מהחדש לישן
  • הכי הרבה הצבעות
התחברו כדי לפרסם תגובה
נושא זה נמחק. רק משתמשים עם הרשאות מתאימות יוכלו לצפות בו.
  • צדיק תמיםצ מנותק
    צדיק תמיםצ מנותק
    צדיק תמים
    השיב ליעקב מ. פינס נערך לאחרונה על ידי
    #3

    @יעקב-מ-פינס יש לך טעות בכותרת, זה apple script ולא appscript
    ניסיתי להריץ את האפל סקריפט עצמו דרך Script Editor המובנה והוא עובד, לא נתת מספיק מידע כדי לעזור מכאן הלאה

    Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
    טיפים

    תגובה 1 תגובה אחרונה
    1
    • י מנותק
      י מנותק
      יעקב מ. פינס
      השיב לdovid נערך לאחרונה על ידי יעקב מ. פינס
      #4

      @dovid @צדיק-תמים
      הוא אפי׳ לא פותח את pages (שזה דבר ראשון שהוא אמור לעשות)
      אני מקבל את השגיאה AppleScript-out: Pages got an error: Application isn’t running. | status: 0 בכל פעם שאני מריץ את הקוד

      נ.ב. זה מה שקורה ב Script Editor
      70364eba-8fc0-426d-868f-f2c7e8c34957-image.png

      נ.ב.ב. השגיאה הראשונה מופיעה גם כש pages רץ

      "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
      בעי"ה = בורא עולם יפתור הכל
      ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

      צדיק תמיםצ תגובה 1 תגובה אחרונה
      0
      • צדיק תמיםצ מנותק
        צדיק תמיםצ מנותק
        צדיק תמים
        השיב ליעקב מ. פינס נערך לאחרונה על ידי
        #5

        @יעקב-מ-פינס כתב בבעיה בקוד apple script למקבוק:

        נ.ב. זה מה שקורה ב Script Editor

        CleanShot 2025-05-26 at 20.53.05@2x.png
        תעלה צילום מסך בבקשה מאצלך

        Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
        טיפים

        י תגובה 1 תגובה אחרונה
        0
        • י מנותק
          י מנותק
          יעקב מ. פינס
          השיב לצדיק תמים נערך לאחרונה על ידי יעקב מ. פינס
          #6

          @צדיק-תמים
          בהרצה של הקוד ב Script Editor (נראה לי לא הכנסתי אותו טוב)
          32049cab-a9c7-481c-a798-98e477880a68-image.png

          בקונסול ב Xcode
          0482faa9-98b4-4f71-8bec-0edef3f91acf-image.png

          אני חושב שזה משהו שקשור בהרשאות גישה אבל לא הצלחתי להבין בכלל איך אני גורם לאפליקציה לבקש את האישור הזה

          "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
          בעי"ה = בורא עולם יפתור הכל
          ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

          י צדיק תמיםצ 2 תגובות תגובה אחרונה
          0
          • י מנותק
            י מנותק
            יעקב מ. פינס
            השיב ליעקב מ. פינס נערך לאחרונה על ידי יעקב מ. פינס
            #7

            @יעקב-מ-פינס
            רק משתף,
            באמצעות Gemini נוצר הקוד הזה

            set pagesFilePath to POSIX path of (choose file with prompt "בחר קובץ Pages להמרה:")
            set saveFolderPath to POSIX path of (choose folder with prompt "בחר תיקיית יעד לשמירת קובץ ה-DOCX:")
            
            try
                set srcFile to POSIX file pagesFilePath as alias
                
                -- יצירת שם קובץ היעד
                set fileName to name of (info for srcFile)
                if fileName ends with ".pages" then
                    set docName to text 1 thru -7 of fileName
                else
                    set docName to fileName
                end if
                
                set dstPathString to saveFolderPath & docName & ".docx"
                -- אין צורך להפוך את זה לאובייקט POSIX file כאן אם נשתמש רק במחרוזת ב-shell
                -- set dstFile to POSIX file dstPathString 
            
                -- וודא שהקובץ לא קיים כבר בנתיב היעד כדי למנוע בלבול
                -- נשתמש בפקודת shell לבדיקת קיום ומחיקה (עמידה מאוד)
                -- Check if file exists using 'test -f'
                set fileExists to (do shell script "test -f " & quoted form of dstPathString & " && echo true || echo false") as boolean
                if fileExists then
                    do shell script "rm " & quoted form of dstPathString -- מחיקת הקובץ
                    delay 0.1 -- המתן מעט שהמחיקה תתבצע
                end if
            
                -- הפעל את Pages וודא שהוא רץ
                tell application "Pages"
                    activate
                    -- המתן בסבלנות ש-Pages יהיה "מוכן"
                    repeat 10 times -- נסה 10 פעמים עם השהייה של שנייה אחת
                        delay 1
                        try
                            -- נסה פקודה פשוטה כדי לבדוק תגובתיות
                            set appVersion to version of it
                            exit repeat
                        on error
                            -- עדיין לא מגיב, נמשיך לחכות
                        end try
                    end repeat
            
                    if not (it is running) then
                        error "Pages application could not be launched or is not responding."
                    end if
                    
                    -- פתיחת המסמך
                    set theDoc to open srcFile
                    
                    -- המתן עד שהמסמך ייפתח ויהיה פעיל
                    repeat 20 times -- נסה 20 פעמים עם השהייה של 0.25 שניה (סה"כ 5 שניות)
                        delay 0.25
                        try
                            if exists theDoc then exit repeat
                        on error
                            -- המסמך עדיין לא נטען, אולי חלון לא מול
                        end try
                    end repeat
                    
                    if not (exists theDoc) then
                        error "Failed to open Pages document within expected time."
                    end if
                    
                    -- ייצוא המסמך (כאן עדיין נשתמש ב-POSIX file אובייקט כי Pages מצפה לו)
                    export theDoc to (POSIX file dstPathString) as Microsoft Word
                    
                    -- סגור את המסמך המקורי
                    close theDoc saving no
                end tell
                
                -- בדיקה סופית: וודא שהקובץ נוצר באמצעות פקודת shell
                set fileExists to (do shell script "test -f " & quoted form of dstPathString & " && echo true || echo false") as boolean
                if fileExists then
                    display dialog "הקובץ נשמר בהצלחה כ-DOCX בנתיב: " & dstPathString with title "המרת Pages ל-DOCX" buttons {"אישור"} default button "אישור"
                    return "OK"
                else
                    error "ההמרה הסתיימה ללא שגיאה, אך קובץ ה-DOCX לא נמצא בנתיב: " & dstPathString
                end if
                
            on error errMsg number errNum
                display dialog "שגיאה: " & errMsg & " (קוד שגיאה: " & errNum & ")" with title "שגיאת המרה" buttons {"אישור"} default button "אישור"
                return "Error: " & errMsg
            end try
            

            שנבדק ב Script Editor ועבד בהצלחה

            "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
            בעי"ה = בורא עולם יפתור הכל
            ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

            תגובה 1 תגובה אחרונה
            -1
            • צדיק תמיםצ מנותק
              צדיק תמיםצ מנותק
              צדיק תמים
              השיב ליעקב מ. פינס נערך לאחרונה על ידי צדיק תמים
              #8

              @יעקב-מ-פינס כתבת שאתה מנסה ללמוד, הבעיה היא שבתוך המחרוזת של האפל סקריפט יש התייחסות למשתנה שמוגדר בקוד swift. אם היית פשוט זורק את הקוד לChatGPT (שם גנרי לצ'אט AI ברמה טובה) הוא היה רואה את זה מיד

              אגב אני משתמש המון בAI לזה, אם יש שגיאה בקוד שכתבתי שאני לא מבין אני פשוט זורק את הקוד לAI ורואה אם הוא מציע משהו הגיוני, הרבה פעמים פשוט שכחתי נקודה או פסיק מיותר וכדומה, וכידוע הבאגים הכי קשים לגילוי הם הבאגים הכי טפשיים. אם אני רואה שהוא לא בכיוון לא נורא, אני מתחיל לחפש את הבעיה בעצמי, אבל הרבה פעמים זה טעות הקלדה טפשית או משהו בסגנון


              לגבי השאלה עצמה, אם הסקריפט עובד בScript Editor ולא באפליקציה זה כנראה בעיית הרשאות, אמור לקפוץ לך כזה פופאפ:
              b93c3449-2e2d-4116-9c85-906baceb51f0-image.png
              אבל בדקתי את הקוד שהבאת והפופאפ של בקשת ההרשאה לא קופץ, כלומר זה חסימה ברמה יותר גבוהה, הסיבה לבעיה מפורטת כאן וכאן, בקיצור פרויקט חדש בXcode נמצא כברירת בתוך מנגנון ארגז חול שנקרא App Sandbox ומיועד להגביל את הנזק במקרה שאפליקציה מכילה בטעות קוד זדוני, נניח על ידי חבילה חיצונית, והארגז החול הנ"ל מונע מהאפליקציה לשלוח Apple Events לאפליקציות אחרות ואפילו לא מתריע על זה, אפילו לא בConsole.app... כן, חוויית הפיתוח באקוסיסטם של אפל היא נוראה.
              הפתרון הקל הוא פשוט למחוק את ארגז החול:
              CleanShot 2025-05-26 at 23.52.26@2x.png
              הפתרון ה"נכון" (וגם ההכרחי כדי לשלוח לApple App Store - לא רלוונטי כאן, אתה לא תשלם 99$ לשנה על חשבון מפתח...) הוא להוסיף לקובל Entitlements של האפליקציה את com.apple.security.temporary-exception.apple-events עם הbundleId של ‫Pages ‫(com.apple.iWork.Pages)‏ אבל תכלס זה לא עובד לי, עדיין מתקבלת שגיאת A privilege violation occurred, ואין לי זמן לחקור את זה הלאה 🙂

              Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
              טיפים

              י תגובה 1 תגובה אחרונה
              2
              • י מנותק
                י מנותק
                יעקב מ. פינס
                השיב לצדיק תמים נערך לאחרונה על ידי
                #9

                @צדיק-תמים
                שכוייח
                הנושא העיקרי הוא שבניתי הכל עם GPT והוא לא מצא שום שגיאה

                בנוגע לפיתרון השני זה רעיון ממש נחמד שלא חשבתי אפי׳ לנסות אותו

                ב״ה מה שעשיתי בסוף זה הזרקה של הסקריפט הפעיל מקובץ חיצוני
                האפליקציה תתפרסם מחר בעז״ה נשאר לי עוד כמה שינויים קלים

                "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
                בעי"ה = בורא עולם יפתור הכל
                ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

                תגובה 1 תגובה אחרונה
                0
                • י מנותק
                  י מנותק
                  יעקב מ. פינס
                  כתב נערך לאחרונה על ידי יעקב מ. פינס
                  #10

                  רק מעדכן

                  ב״ה הצלחתי ליצור את האפליקציה באופן מלא בעיקר בזכות @צדיק-תמים שעזר לי רבות

                  לכל המעוניין ניתן להוריד את האפליקציה מכאן (נשלח לבדיקה בנטפרי) אשמח לשמוע רעיונות לשיפור

                  הקוד המלא נמצא בגיטהאב שלי

                  אשמח לשמוע הערות לשיפור (וגם הערות בכללי ☺️)

                  "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
                  בעי"ה = בורא עולם יפתור הכל
                  ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

                  תגובה 1 תגובה אחרונה
                  3
                  • י מנותק
                    י מנותק
                    יעקב מ. פינס
                    כתב נערך לאחרונה על ידי
                    #11

                    אשמח לעזרתכם שוב
                    הוספתי (כלומר gpt) תמיכה בשפות
                    רציתי שיוסיף לחצן globe לשינוי שפה (בחירה מתפריט)
                    אבל זה התוצאה שקיבלתי
                    54fd9cf1-4c39-4744-982b-61c176da52c0-image.png

                    זה הקוד של החלק האחראי על הכפתור הזה
                    אשמח לשמוע מה בדיוק הטעות שגורמת לזה

                    Menu {
                                    ForEach(availableLanguages(), id: \.self) { lang in
                                        Button {
                                            languageManager.selectedLanguage = lang
                                        } label: {
                                            HStack {
                                                Text(Locale(identifier: lang)
                                                    .localizedString(forLanguageCode: lang)?
                                                    .capitalized(with: Locale(identifier: lang)) ?? lang)
                                                if languageManager.selectedLanguage == lang {
                                                    Image(systemName: "checkmark")
                                                }
                                            }
                                        }
                                    }
                                } label: {
                                    ZStack {
                                        Circle()
                                            .fill(Color.white.opacity(0.85))
                                            .frame(width: 44, height: 44)
                                            .shadow(radius: 3)
                                        Image(systemName: "globe")
                                            .font(.system(size: 22, weight: .medium))
                                            .foregroundColor(.accentColor)
                                    }
                                }
                                .padding(.top, 14)
                                .padding(.trailing, 20)
                    

                    תודה

                    "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
                    בעי"ה = בורא עולם יפתור הכל
                    ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

                    תגובה 1 תגובה אחרונה
                    0
                    • י מנותק
                      י מנותק
                      יעקב מ. פינס
                      כתב נערך לאחרונה על ידי
                      #12

                      ב״ה סוף סוף הסתדר ע״י הקוד הזה

                      // --- כפתור גלובוס --- 
                                  VStack {
                                      HStack {
                                          Spacer()
                                          Menu {
                                              ForEach(availableLanguages(), id: \.self) { lang in
                                                  Button {
                                                      languageManager.selectedLanguage = lang
                                                  } label: {
                                                      HStack {
                                                          Text(Locale(identifier: lang)
                                                              .localizedString(forLanguageCode: lang)?
                                                              .capitalized(with: Locale(identifier: lang)) ?? lang)
                                                          if languageManager.selectedLanguage == lang {
                                                              Image(systemName: "checkmark")
                                                          }
                                                      }
                                                  }
                                              }
                                          } label: {
                                              ZStack {
                                                  Circle()
                                                      .fill(Color.white.opacity(0.88))
                                                      .frame(width: 44, height: 44)
                                                      .shadow(radius: 3)
                                                  Image(systemName: "globe")
                                                      .font(.system(size: 23, weight: .medium))
                                                      .foregroundColor(.accentColor)
                                              }
                                          }
                                          .buttonStyle(.plain)
                                          .padding(.top, 16)
                                          .padding(.trailing, 16)
                                      }
                                      Spacer()
                                  }
                      

                      ממש ברגעים אלו אני מעלה את הקוד לגיטהאב ואני אערוך כאן (או שאולי עדיף נושא חדש?)

                      "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
                      בעי"ה = בורא עולם יפתור הכל
                      ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

                      תגובה 1 תגובה אחרונה
                      0
                      • dovidD מנותק
                        dovidD מנותק
                        dovid ניהול
                        כתב נערך לאחרונה על ידי dovid
                        #13

                        @יעקב-מ-פינס במתכונת הזאת, אל תשאל בכלל.
                        תנסה צאטים אחרים, תקוף את הבעיה בניסוח שונה, רק לא לשאול פה בפורום בכזו צורה.
                        תשאל בדברים שאתה מבין אותם, או מתכונן להבין אותם, כמטרה די מרכזית.
                        אם רוב המטרה היא "שיעבוד וזהו", בפרט עם קוד, עדיף שלא יהיה פה.

                        • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                        • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                        תגובה 1 תגובה אחרונה
                        2
                        • dovidD מנותק
                          dovidD מנותק
                          dovid ניהול
                          כתב נערך לאחרונה על ידי dovid
                          #14

                          @יעקב-מ-פינס אני כעת קורא את דברי וחושש מאיך שהם נשמעים.
                          אני מאוד מכבד את ההתקדמות שלך המרשימה ממש בתכנות,
                          ומאוד מאמין גם בניסוי טעיה אפילו עם AI עם/בלי להבין,
                          רק שפה כחברה וכמקום דיון עם אנשים שלכל אחד יש את חייו, אם מביאים פה קוד, נראה לי שראוי לעמוד מאחוריו, להבין אותו יותר ולצפות לתשובה ולנימוקים טרחניים על הקוד ממש ולא על השורה התחתונה בלבד או בעיקר. הפוסטים שלך גם אם יש בהם רצון הבנה, הם מידי מזכירים את העידן החדש של הAI בו אין אפילו כח לנסח את השאלה...

                          • מנטור אישי בתכנות והמסתעף – להתקדם לשלב הבא!
                          • בכל נושא אפשר ליצור קשר dovid@tchumim.com
                          צדיק תמיםצ י 2 תגובות תגובה אחרונה
                          4
                          • צדיק תמיםצ מנותק
                            צדיק תמיםצ מנותק
                            צדיק תמים
                            השיב לdovid נערך לאחרונה על ידי צדיק תמים
                            #15

                            לי הפריע יותר מהחוסר ניסוח, שגם אחרי שהסתדרת לא ניסית להבין מה פתר את הבעיה, אלא "הקוד הזה סידר". אם ככה למה שמראש מישהו יטרח לכתוב בשבילך "קוד עובד"? אנשים פה נהנים ללמד ולא לספק פתרונות לשם פתרון נטו

                            Don’t comment bad code — rewrite it." — Brian W. Kernighan and P. J. Plaugher"
                            טיפים

                            תגובה 1 תגובה אחרונה
                            3
                            • י מנותק
                              י מנותק
                              יעקב מ. פינס
                              השיב לdovid נערך לאחרונה על ידי
                              #16

                              @dovid
                              לקחתי את הדברים לתשומת לבי

                              תודה על כל העזרה

                              "נפשי כעפר לכל תיהיה" - אפי' שהכל דורכים עליו עדיין מצמיח פירות
                              בעי"ה = בורא עולם יפתור הכל
                              ניתן ליצור איתי קשר ב - y.m.p.tchumimforum@gmail.com

                              תגובה 1 תגובה אחרונה
                              4

                              בא תתחבר לדף היומי!
                              • התחברות

                              • אין לך חשבון עדיין? הרשמה

                              • התחברו או הירשמו כדי לחפש.
                              • פוסט ראשון
                                פוסט אחרון
                              0
                              • דף הבית
                              • קטגוריות
                              • פוסטים אחרונים
                              • משתמשים
                              • חיפוש
                              • חוקי הפורום