सफारी डेवलपर मेनू अक्षम

Sep 14 2020

मेरा "शो सफारी डेवलपमेंट मेनू" विकल्प ग्रे क्यों होगा और क्लिक करने योग्य नहीं होगा? मैंने इसे सक्षम करने के लिए चरण खोजने की कोशिश की है, लेकिन वे सभी बस चेकबॉक्स पर क्लिक करते हैं। क्या मुझे कहीं प्रवेश करने और अनुमति सेटिंग्स बदलने की आवश्यकता है?

सफारी संस्करण 13.1.2 (14609.3.5.1.5) मैकबुक एयर macOS Mojave संस्करण 10.14.6 (18G6020) पर चल रहा है

जवाब

2 user3439894 Sep 16 2020 at 10:14

एक पूरी तरह से अद्यतन के तहत परीक्षण MacOS मोजावे 10.14.6 साथ सफारी 13.1.2 जब टॉगल दिखाएँ मेनू पट्टी में मेनू का विकास करना चेकबॉक्स पर सफारी > प्राथमिकताएं ... > उन्नत , वहाँ दो हैं plist फ़ाइलें कि संशोधित मिलता है। एक फ़ाइल में एक कुंजी संशोधित है और दूसरी फ़ाइल में तीन कुंजी संशोधित हैं, अर्थात:

  • ~ / पुस्तकालय / वरीयताएँ / com.apple.Safari.SandboxBroker.plist
    • ShowDevelopMenu
  • ~ / पुस्तकालय / कंटेनरों / com.apple.Safari / डेटा / पुस्तकालय / वरीयताएँ / com.apple.Safari.plist
    • शामिल करेंविकासमेनु
    • WebKitDeveloperExtrasEnabledPreferenceKey
    • WebKitPreferences.developerExtrasEnabled

मूल्य इन सभी चार की कुंजी एक हैं बूलियन , और जब दिखाएँ मेनू पट्टी में मेनू का विकास करना चेकबॉक्स चेक किया गया है, मूल्य है हाँ , सच या 1 कैसे एक सेटिंग पढ़ रहा है पर निर्भर करता है।

में टर्मिनल defaults read ... आदेश वापस आ जाएगी 1या 0, या यदि कुंजी संदेश के साथ बाहर वर्तमान उसमें त्रुटियां नहीं है।

उदाहरण खोल स्क्रिप्ट कोड , आगे नीचे, परीक्षण किया गया था और सामान्य परिस्थितियों में काम करता है, हालांकि, यह नहीं एक निष्क्रिय पर काम कर सकते दिखाएँ मेनू पट्टी में मेनू का विकास करना चेकबॉक्स । उस ने कहा, आपके पास वास्तव में कुछ भी नहीं है, लेकिन कुछ ही मिनटों में यह कोशिश कर रहा है।

टिप्पणियाँ:

  • जरूरी! इस के लिए आदेश में उदाहरण खोल स्क्रिप्ट काम करने के लिए आप के लिए, कम से कम अस्थायी रूप से की आवश्यकता होगी, जोड़ने के टर्मिनल के लिए सिस्टम प्राथमिकताएं > सुरक्षा और गोपनीयता > गोपनीयता > पूर्ण डिस्क पहुँच , और टर्मिनल बंद किया जाना चाहिए जब आप ऐसा करेंगे।
  • जब उदाहरण शेल स्क्रिप्ट को चलाया जाता है, तो सफारी को बंद कर दिया जाना चाहिए, हालांकि, कोडित के रूप में यह खुला होने पर इसे बंद कर देगा। इसमें बदलाव किए जाने के बाद इसे खोला भी जाएगा।
  • अन्य OS सुरक्षा उपायों के कारण, ( सैंडबॉक्सिंग ), com.apple.Safari.plist फ़ाइल को /tmp/वहां संशोधित, और फिर वापस ले जाने की आवश्यकता है। खोल स्क्रिप्ट , के रूप में कोडित , इस संभालती है। Com.apple.Safari.SandboxBroker.plist फ़ाइल जगह में संशोधित किया गया है।
  • कोडित के रूप में, दो PLIST फाइलें एक .bak एक्सटेंशन के साथ बैकअप हो जाती हैं , हालांकि शेल स्क्रिप्ट को केवल एक बार चलाया जा सकता है जब तक कि दोनों फ़ाइलों के लिए nहटा नहीं दिया जाता है , जो तब मूल बैकअप को अधिलेखित कर देगा !cp -avn
  • कोडित के रूप में, यह डिबगिंग जानकारी ( set -x) का उत्पादन करेगा और यदि आपके पास समस्या है तो टर्मिनल से आउटपुट को कॉपी और पेस्ट कर सकते हैं यदि आवश्यकता हो तो समस्या निवारण के लिए। इसलिए, अगर कोई समस्या है, तो विंडो को तब तक बंद न करें जब तक कि वह कॉपी न हो जाए और कहीं और पेस्ट न हो जाए ताकि मैं उसे देख सकूं।

उदाहरण शेल स्क्रिप्ट कोड का उपयोग करने के लिए :

  1. टर्मिनल खोलें और निम्न कंपाउंड कमांड चलाएँ :

    touch sdmcb; chmod u+x sdmcb; open -e sdmcb
    
  2. उदाहरण शेल स्क्रिप्ट कोड को खोले गए sdmcb डॉक्यूमेंट में कॉपी और पेस्ट करें , फिर सहेजें और इसे बंद करें।

  3. शेल स्क्रिप्ट चलाने के लिए टर्मिनल में वापस निम्न कमांड का उपयोग करें :

    ./sdmcb
    

यही है, यह या तो काम करेगा या यह नहीं होगा, यह केवल एक चीज है जिसके बारे में मैं सोच सकता हूं, मैक को पुनर्प्राप्ति के लिए बूट करना और दो PLIST फाइलें हटाना जो एक सेटिंग को हटा सकता है जिससे इसे शुरू करने के लिए निष्क्रिय हो सकता है, यदि यह उन दो फाइलों में भी है ।


उदाहरण शेल स्क्रिप्ट कोड :

#!/bin/bash

set -e
set -x

[[ $(ps x | grep '[S]afari.app') == "" ]] || killall Safari; sleep 2 cd "$HOME/Library/Containers/com.apple.Safari/Data/Library/Preferences/" || exit
cp -v 'com.apple.Safari.plist' '/tmp/' || exit
cp -avn 'com.apple.Safari.plist' 'com.apple.Safari.plist.bak' || exit
defaults write '/tmp/com.apple.Safari.plist' "IncludeDevelopMenu" -bool 'yes'
defaults write '/tmp/com.apple.Safari.plist' "WebKitDeveloperExtrasEnabledPreferenceKey" -bool 'yes'
defaults write '/tmp/com.apple.Safari.plist' "WebKitPreferences.developerExtrasEnabled" -bool 'yes'
mv -v '/tmp/com.apple.Safari.plist' .
cd "$HOME/Library/Preferences/" || exit cp -avn 'com.apple.Safari.SandboxBroker.plist' 'com.apple.Safari.SandboxBroker.plist.bak' || exit defaults write "$HOME/Library/Preferences/com.apple.Safari.SandboxBroker.plist" "ShowDevelopMenu" -bool 'yes'
killall cfprefsd
sleep 3
open -a "/Applications/Safari.app"