আমি কিভাবে iOS সিমুলেটর থেকে কনসোল লগ পেতে পারি?




console ios-simulator (7)

আইওএস 8 এবং আইওএস 9

IOS 8 এবং iOS 9 এর অধীনে এই অবস্থানটি এখন:

~/Library/Logs/CoreSimulator/<DEVICE_CODE>

সুতরাং, নিম্নলিখিত কাজ করবে:

tail -f ~/Library/Logs/CoreSimulator/<DEVICE_CODE>/system.log

DEVICE_CODE মান নিম্নলিখিত কনসোল কমান্ডের মাধ্যমে পাওয়া যাবে:

instruments -s devices

আমি যদি Xcode এ অ্যাপ্লিকেশনটি পরীক্ষা না করি তবে iOS সিমুলেটারে কী ঘটবে তা দেখতে চাই।

উদাহরণস্বরূপ, যদি আমি সাফারি সিমুলেটারের একটি লিঙ্ক খুলি, কনসোলের মধ্যে কী ঘটেছে তা দেখুন, অথবা যদি আমি ওয়েব-এপ্লিকেশন ইনস্টল করি, তবে যে লিঙ্কগুলি আমি কনসোলে চাপছি তা দেখুন।

কিভাবে আমি এটি করতে পারব?

আমি এক্সকোড বা টার্মিনালে এটি দেখতে চাই, তবে যদি অন্য কোন সফ্টওয়্যার ব্যবহার করতে হয় তবে এটি কোনও সমস্যা নয়।


tailing /var/log/system.log আমার জন্য কাজ করে নি। আমি Console.app ব্যবহার করে আমার লগ পাওয়া যায়। তারা ছিল

~/Library/Logs/iOS Simulator/{version}/system.log


আপনি instruments -s উপর নির্ভর করতে হবে না। কমান্ড লাইন থেকে সিমুলেটরের সাথে কাজ করার জন্য আনুষ্ঠানিকভাবে সমর্থিত সরঞ্জামটি xcrun simctl

একটি ডিভাইসের জন্য লগ ডিরেক্টরি xcrun simctl getenv booted SIMULATOR_LOG_ROOT । অবস্থান পরিবর্তিত এমনকি যদি এই সবসময় সঠিক হবে।

এখন যে জিনিসগুলি os_log চলে যাচ্ছে তা হোস্ট ম্যাকে Console.app খুলতে আরও সহজ। বুট সিমুলেটরগুলি বামদিকে একটি লগ উত্স হিসাবে দেখানো উচিত, ঠিক যেমন শারীরিক ডিভাইসগুলি। আপনি বুট সিমুলেটারে লগ কমান্ডগুলি চালাতে পারেন:

# os_log equivalent of tail -f
xcrun simctl spawn booted log stream --level=debug

# filter log output
xcrun simctl spawn booted log stream --predicate 'processImagePath endswith "myapp"'
xcrun simctl spawn booted log stream --predicate 'eventMessage contains "error" and messageType == info'

# a log dump that Console.app can open
xcrun simctl spawn booted log collect

# open location where log collect will write the dump
cd `xcrun simctl getenv booted SIMULATOR_SHARED_RESOURCES_DIRECTORY`

আপনি যদি সিমুলেটরয়ের ওয়েবপৃষ্ঠা সহ সাফারি বিকাশকারী সরঞ্জামগুলি (JS কনসোল সহ) ব্যবহার করতে চান : সিমুলেটরগুলির মধ্যে একটি শুরু করুন, সাফারি খুলুন, তারপরে আপনার ম্যাকের Safari এ যান এবং আপনাকে মেনুতে সিমুলেটর দেখতে হবে।

আপনি সিমুলেটর এ Safari এড্রেস বার থেকে ড্র্যাগ করে সিমুলেটর উইন্ডোতে ড্রপ করে একটি URL খুলতে পারেন। আপনি xcrun simctl openurl booted <url> ব্যবহার করতে পারেন।


আপনি সুইফট ব্যবহার করছেন, মনে রাখবেন যে println শুধুমাত্র ডিবাগ লগটি মুদ্রণ করবে (যা xCode এর ডিবাগ এলাকায় প্রদর্শিত হবে)। যদি আপনি system.log এ মুদ্রণ করতে চান তবে আপনাকে পুরানো দিনের মতো NSLog ব্যবহার করতে হবে।

তারপরে আপনি সিমুলেটর লগটি দেখতে পারেন তার মেনু, ডিবাগ> সিস্টেম লগ খুলুন ... (cmd + /)


আপনি ডেস্কটপ Safari মাধ্যমে iOS সিমুলেটর জন্য কনসোল দেখতে পারেন। শারীরিক iOS ডিভাইসগুলির জন্য কনসোল দেখতে ডেস্কটপ সাফারি ব্যবহার করার মতো এটি একই।

যখনই সিমুলেটর চলছে এবং একটি ওয়েবপৃষ্ঠা খোলা আছে, সেখানে ডেস্কটপ সাফারির ডেভেলপ মেনু এর অধীনে একটি বিকল্প থাকবে যা আপনাকে iOS সিমুলেটর কনসোল দেখতে দেয়:

বিকাশ -> আইফোন সিমুলেটর -> সাইট নাম


আমি সরাসরি iOS সিমুলেটরের মাধ্যমে লগ খুলতে পারি: Debug -> Open System Log... এটি চালু হওয়ার পরে নিশ্চিত নয়, তাই এটি পূর্বের সংস্করণগুলির জন্য উপলব্ধ নাও হতে পারে।


XCode> 6.0 এবং iOS> 8.0 আপনার যদি XCode সংস্করণ> 8.0 থাকে তবে নীচের স্ক্রিপ্টটি কাজ করে

আমি সিমুলেটর লগগুলি সিস্টেম কনসোলের সম্মুখভাগে টেনে আনতে নীচের ছোট স্ক্রিপ্টটি ব্যবহার করি।

#!/bin/sh
sim_dir=`xcrun instruments -s | grep "iPhone 6 (8.2 Simulator)" | awk {'print $NF'} | tr -d '[]'`
tail -f ~/Library/Logs/CoreSimulator/$sim_dir/system.log

আপনি একটি যুক্তি হিসাবে Grep ব্যবহৃত সিমুলেটর টাইপ মধ্যে পাস করতে পারেন। উপরের পোস্টে উল্লিখিত হিসাবে, সিমকটল এবং যন্ত্র কমান্ড রয়েছে যা সিমকুলেটরগুলির ধরনটি এক্সকোড সংস্করণের উপর নির্ভর করে ব্যবহারের জন্য উপলব্ধ। উপলব্ধ ডিভাইস / সিমুলেটর তালিকা দেখতে।

xcrun instruments -s

অথবা

xcrun simctl list

এখন আপনি স্ক্রিপ্টে একটি যুক্তি হিসাবে ডিভাইস কোড বা সিমুলেটর টাইপটি পাস করতে পারেন এবং grep এর ভিতরে "আইফোন 6 (8.2 সিমুলেটর)" প্রতিস্থাপন করতে পারেন $ 1







ios-simulator