- (void)viewDidLoad
{
NSLog(@"%s", __func__);
// ...
}
viewDidLoad
iOS 8拡張機能の. NSLog
Xcodeで何も出力しません。 NSLog
ただし、コンテナー アプリでは通常どおり動作します。
拡張機能からデバッグ メッセージの出力を取得するにはどうすればよいですか?
- (void)viewDidLoad
{
NSLog(@"%s", __func__);
// ...
}
viewDidLoad
iOS 8拡張機能の. NSLog
Xcodeで何も出力しません。 NSLog
ただし、コンテナー アプリでは通常どおり動作します。
拡張機能からデバッグ メッセージの出力を取得するにはどうすればよいですか?
私もこの問題を抱えています。Xcode がデバッガーを拡張機能にアタッチしたり、NSLog メッセージを表示したりすることはありません。Xcode デバッガーを拡張プロセスに手動でアタッチすると、少なくともブレークポイントは魅力的に機能します。
Debug->Attach to process->Your extension name (mine was "com.example.MyExtensionApp.MyExtension")
それは私のために働く:)
Xcode 8 は拡張機能をデバッグできます。
結果: ブレークポイントとログは通常どおり機能します。
デバッグが機能する唯一の方法は、[デバッグ]-> [PID または名前でプロセスにアタッチ] を選択してから、拡張機能名ではなくPIDを入力することです。デバイスで拡張機能を実行して PID を見つけることができます。[ウィンドウ] -> [デバイス] に移動します。デバイスを見つけて、コンソールを表示します。内線番号の名前が表示されると、その後に 5 桁の数字が続きます。それがPID
また、PIDも見つけるために、拡張機能にNSLogの束を入れました。これはxCode 7にあります
NSLog
、およびブレークポイントの拡張について同じ問題が発生します。私は何日もそれと戦ってきました。
Device log
次の画像のように見つけることができます。にありXCode -> Window -> Devices and Simulators
ます。
を入力するOpen Console
と、ダイアログの右上に検索フィールドがあります。そこにフィルタールールを適用できます。たとえば、プロセス名にNotification
キーワードが含まれているか、プロセス名が拡張ターゲットの名前と同じである必要があります (例:MyNotificationServiceExtension
プロセス名と同じ)。
Xcode 6 Beta 5 の時点で、iOS8 を実行している実際のデバイスを使用して拡張機能をデバッグすることができました。デバイスで実行してみて、Safari を選択して起動します
絶え間なく変化する IDE によって引き起こされるすべての状態を克服するために、lemonjar.com の iOS コンソールを使用しています。これは、プロセス ID に関係なく、syslog メッセージをレンダリングする接続された iOS デバイスのコンソール ウィンドウを表示します。ここでは、アプリと拡張機能の両方のデバッグ ログ メッセージを一度に確認できます。
明らかに、Xcode6-B5 で何かが壊れています。
シミュレーターで写真拡張機能を実行しようとすると、拡張機能の添付プロセスのオプションとして Photos.app が表示されません。
同じ、実際のデバイスで実行すると、正しい動作が得られます。
最初のケースでは、ブレークポイントは無視されます。後者の場合、ブレークポイントは魅力的に機能します。