2014-10-06 61 views
2

我一直在開發依賴於CoreLocation因爲第1的Xcode上週我提交了它的測試上iTunes connect/TestFlight 6測試版的應用程序。該應用完全適用於開發設備,但是當我創建adhoc版本時,它不會要求授權。CoreLocation不工作的即席分佈在iOS 8

細節:

  • Settings > General > Reset > Reset Location Warnings沒有解決
  • 我設置的Info.plist
  • CoreLocation.framework NSLocationWhenInUseUsageDescription上Linked Frameworks and Libraries加入(但什麼都沒有改變,當我刪除)
  • 我「M(使用CocoaPods)爲MBProgressHUD
  • 我的ViewController是這樣的:https://gist.github.com/thiagogabriel/d0120547565c91089b72
  • 我最近改變了產品名稱爲小寫
  • 我開始從頭開始一個新項目,它發生在相同的即席進行內部測試
+0

我看到了這一點。到目前爲止,我的想法可能與TestFlight相關。我可能會嘗試HockeyApp或其他Ad Hoc分發設置。 – 2014-10-10 19:48:58

+0

通過「完美的作品上進行開發的設備」你的意思是它適用於開發建立,甚至是生產建築工作在登記在開發者計劃的設備? – 2014-10-10 19:51:24

+0

@MarcoPompei當我使用電纜進行測試時,它可以工作。所述自組織的情況下是完全一樣[這裏](http://code.tutsplus.com/tutorials/ios-8-beta-testing-with-testflight--cms-22224) – 2014-10-10 21:43:02

回答

1

更改此代碼:

func askForLocation(sender: AnyObject) { 
    if (locationStatus == CLAuthorizationStatus.Denied) { 
     let url = NSURL.URLWithString(UIApplicationOpenSettingsURLString) 
     UIApplication.sharedApplication().openURL(url) 
    } else if (locationStatus != CLAuthorizationStatus.AuthorizedWhenInUse) { 
     locationManager.requestWhenInUseAuthorization() 
    } else if (locationStatus == CLAuthorizationStatus.AuthorizedWhenInUse){ 
     self.performSegueWithIdentifier("seguePlaceViewController", sender: sender) 
    } 
} 

func askForLocation(sender: AnyObject) { 
    locationManager.requestWhenInUseAuthorization() 

    if (locationStatus == CLAuthorizationStatus.Denied) { 
     let url = NSURL.URLWithString(UIApplicationOpenSettingsURLString) 
     UIApplication.sharedApplication().openURL(url) 
    } else if (locationStatus == CLAuthorizationStatus.AuthorizedWhenInUse){ 
     self.performSegueWithIdentifier("seguePlaceViewController", sender: sender) 
    } 
} 

此更新解決您的問題。