7

私は App Store 見積もりアプリで見ることができる見積もりビーコンを 3 つ持っています。

今、Apple のデモ アプリ AirLocation AirLocateを実行しようとしています。

APLDefaults.m ファイルの UUID をデフォルトの Estimote UUID に変更しました_supportedProximityUUIDs = @[[[NSUUID alloc] initWithUUIDString:@"B9407F30-F5F8-466E-AFF9-25556B57FE6D"]];

startMonitoringForRegionこのスタックオーバーフローが言うように、リージョンを開始できるようにしました。

しかし、彼らは現れていません。これを見たことがありますか? または、特定の見積もりが不足していますか。

よろしく

4

2 に答える 2

29

問題は、AirLocate が iOS7 用に作成されたことと、iOS8 では iBeacons やその他の位置操作のアクセス許可モデルが変更されたことです。XCode 6 からコンパイルしたときにプログラムを iOS 8 で動作させるには、AppDelegate で許可を要求するコードを追加する必要があります。このような:

if([self.locationManager respondsToSelector:@selector(requestAlwaysAuthorization)]) {
    [self.locationManager requestAlwaysAuthorization];
}

これにより、ユーザーはビーコンを含むロケーション操作を承認するよう求められます。 また、アプリの info.plist を編集し、NSLocationAlwaysUsageDescription「このアプリは位置情報サービスへのアクセスが必要です」などの値で呼び出される新しい文字列キーを追加して、OS がユーザーにこの許可を求めるプロンプトを表示できるようにする必要があります。

アプリを実行した後、設定をチェックインして、この権限が適切に付与されているかどうかを確認できます。

于 2014-09-28T06:41:35.803 に答える
2

iOS 9 で気付いたもう 1 つの問題は、キャリブレーションが機能しない場合があることです。変換のNSNumber問題のようです。次の編集でAPLCalibrationCalculator.m修正されました:-

  //measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] integerValue];
  measuredPower = [[sample valueForKeyPath:@"@avg.rssi"] intValue];
于 2015-10-05T19:40:03.740 に答える