2

iOS 5を実行しているデバイスではアプリは正常に動作しますが、iOS4.2.1を実行しているデバイスではこのクラッシュが発生します。奇妙なことに、デバイスはxcodeに接続されていない場合にのみクラッシュします。xcodeから実行すると機能しますが、xcodeなしで実行すると、メソッドを呼び出す瞬間までアプリは機能します。

- (void)startLocationUpdates
{
    self.locationManager.desiredAccuracy = kCLLocationAccuracyBestForNavigation;
    self.locationManager.distanceFilter = 1;
    self.locationManager.delegate = self;
    [self.locationManager startUpdatingLocation];
} 

クラッシュログ:

OS Version:      iPhone OS 4.2.1 (8C148)
Report Version:  104

Exception Type:  EXC_BAD_ACCESS (SIGSEGV)
Exception Codes: KERN_INVALID_ADDRESS at 0x3830000f
Crashed Thread:  0

Thread 0 Crashed:
0   libobjc.A.dylib                 0x33479462 objc_msgSend + 14
1   CoreLocation                    0x34371430 -[CLLocationManager onClientEventLocation:] + 560
2   CoreLocation                    0x3436f68e -[CLLocationManager onClientEvent:supportInfo:] + 98
3   CoreLocation                    0x3436f804 OnClientEvent + 16
4   CoreLocation                    0x3436b522 CLClientInvokeCallback(__CLClient*, CLClientEvent, __CFDictionary const*) + 42
5   CoreLocation                    0x3436d3cc CLClientHandleDaemonDataLocation(__CLClient*, CLClientLocation const*, __CFDictionary const*) + 196
6   CoreLocation                    0x3436d512 CLClientHandleDaemonData(__CFMessagePort*, long, __CFData const*, void*) + 286
7   CoreFoundation                  0x33a813fe __CFMessagePortPerform + 242
8   CoreFoundation                  0x33a556f8 __CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION__ + 20
9   CoreFoundation                  0x33a556bc __CFRunLoopDoSource1 + 160
10  CoreFoundation                  0x33a47f76 __CFRunLoopRun + 514
11  CoreFoundation                  0x33a47c80 CFRunLoopRunSpecific + 224
12  CoreFoundation                  0x33a47b88 CFRunLoopRunInMode + 52
13  GraphicsServices                0x33b0e4a4 GSEventRunModal + 108
14  GraphicsServices                0x33b0e550 GSEventRun + 56
15  UIKit                           0x32099322 -[UIApplication _run] + 406
16  UIKit                           0x32096e8c UIApplicationMain + 664
17  MyApp                       0x00002762 0x1000 + 5986
18  MyApp                       0x00002720 0x1000 + 5920
4

2 に答える 2

2

あなたはそれを使用し、破壊する前にself設定する間ずっとそれが生きていると確信していますか?self.locationManager.delegate = nil;self

于 2011-11-24T02:31:40.730 に答える
0

デバイスがプロビジョニングプロファイルに含まれた後にサービスを受けた場合、これが発生する可能性があります(少なくともxcode 4.2では)。

まず、携帯電話の「名前」がプロファイルの「名前」と一致するかどうかを確認します(xcodeで最後に更新されたとき)。

  1. Xcodeを開く
  2. 主催者をクリックします XCODEでORGANIZERを開きます
  3. デバイスを選択します デバイスを選択します
  4. [ライブラリ]で、[プロファイルのプロビジョニング]をクリックします
  5. iOS TEAM PROVISIONING PROFILEのヘッダーを読みます(デバイスの「名前」のリストが必要です)
  6. 最後に接続したデバイスがデバイスの下に表示されている必要があります(現時点で接続されていない場合でも) ステップ4から6

デバイスが(プロビジョニングプロファイルに)Xcodeが読み取るのと同じ「名前」でリストされているかどうかを確認します

私は私の問題を解決しました

  1. オンライン@developer.apple.com、
  2. メンバーエリアにログインし、
  3. iOS開発者を選ぶ、
  4. 次に、右側のメニューでCERTIFICATES、ETCを選択し、
  5. プロビジョニングプロファイルからデバイスを編集します。 編集するデバイスプロファイルの選択
  6. XCODEで、PROVISIONING PROFILESウィンドウ(前の画像)で、REFRESH(右下)をクリックします。

または、プロビジョニングプロファイル(developer.apple.com内)からデバイスを無効にして(削除のように)、「新しい」デバイスのように最初からやり直すこともできます。しかし、Appleは開発者の振る舞いに非常に気を配っています。デバイスがあなたの承認に対して人間の干渉を開始する可能性があり、それがあなたの時間を浪費する可能性があるため、デバイスを削除して再作成することはしません。

キーチェーンをクリアすること、特にcom.apple.kerberos.kdc com.apple.systemdefault他の解決策があるかもしれないことがわかった場合、特にXCODEがそれ自体でクラッシュしている場合(Xcodeがキーチェーンのゴミのためにクラッシュすることがあります)。

最後の手段として、xcodeを再インストールします(アップルが機能せず、設定を削除しても解決しない場合は、再インストールしてください)。

于 2013-05-16T18:47:56.537 に答える