バックエンド (BaaS) として Backendless を使用しています。現在、Backendless のサーバーに問題があるようです。コンソールで新しいアプリ ID を作成できませんでした。偶然にも、アプリケーションの起動中にすべてのアプリがクラッシュすることに気付きました。
私のアプリはすべて、次のコードに同じコードを持っていますAppDelegate.swift:
func application(application: UIApplication, didFinishLaunchingWithOptions launchOptions: [NSObject: AnyObject]?) -> Bool {
backendless.initApp(APP_ID, secret: SECRET_KEY, version: VERSION_NUM)
backendless.messaging.registerForRemoteNotifications()
let settings = UIUserNotificationSettings(forTypes: [.Alert, .Badge, .Sound], categories: nil)
application.registerUserNotificationSettings(settings)
application.registerForRemoteNotifications()
application.applicationIconBadgeNumber = 0
application.cancelAllLocalNotifications()
return true
}
func application(application: UIApplication, didRegisterForRemoteNotificationsWithDeviceToken deviceToken: NSData) {
print("token: \(deviceToken)")
// prepare the token to be saved from <xxxxxxxx xxxxxxxx...> to xxxxxxxxxxxxxxxxx...
var token = NSString(format: "%@", deviceToken)
token = token.stringByReplacingOccurrencesOfString(
"<",
withString: "")
token = token.stringByReplacingOccurrencesOfString(
">",
withString: "")
token = token.stringByReplacingOccurrencesOfString(" ", withString: "")
print(token)
if Reachability.isConnectedToNetwork() == true {
backendless.messaging.registerDeviceToken(token as String)
}
}
到達可能性が true かどうかは既に確認しましたが、到達可能性が true であるにもかかわらず、バックエンドレスがダウンしているため、すべてのアプリがクラッシュするようになりました...サードパーティのサービスがダウンしている場合にアプリのクラッシュを回避するにはどうすればよいですか?
助けていただければ幸いです。
私のReachability.swift:
import Foundation
import SystemConfiguration
public class Reachability {
class func isConnectedToNetwork() -> Bool {
var zeroAddress = sockaddr_in()
zeroAddress.sin_len = UInt8(sizeofValue(zeroAddress))
zeroAddress.sin_family = sa_family_t(AF_INET)
guard let defaultRouteReachability = withUnsafePointer(&zeroAddress, {
SCNetworkReachabilityCreateWithAddress(nil, UnsafePointer($0))
}) else {
return false
}
var flags : SCNetworkReachabilityFlags = []
if !SCNetworkReachabilityGetFlags(defaultRouteReachability, &flags) {
return false
}
let isReachable = flags.contains(.Reachable)
let needsConnection = flags.contains(.ConnectionRequired)
return (isReachable && !needsConnection)
}
}
アプリのクラッシュ ログの一部:
Incident Identifier: XX
CrashReporter Key: XX
Hardware Model: iPhone8,1
Process: DJ Remake [4153]
Path: /private/var/containers/Bundle/Application/567B8C2E-C288-454B-B11C-C35F93FB56DD/DJ Remake.app/DJ Remake
Identifier: com.davidseek.dj-remake
Version: 1 (1.0.2)
Code Type: ARM-64 (Native)
Parent Process: launchd [1]
Date/Time: 2016-04-29 12:07:54.54 +0200
Launch Time: 2016-04-29 12:06:53.53 +0200
OS Version: iOS 9.3.1 (13E238)
Report Version: 105
Exception Type: EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Exception Note: EXC_CORPSE_NOTIFY
Triggered by Thread: 0
Filtered syslog:
None found
Global Trace Buffer (reverse chronological seconds):
0.116172 CFNetwork 0x0000000181819f30 NSURLConnection finished with error - code -1001
60.589908 CFNetwork 0x0000000181729a44 TCP Conn 0x154699a70 SSL Handshake DONE
60.884066 CFNetwork 0x0000000181729954 TCP Conn 0x154699a70 starting SSL negotiation
60.884409 CFNetwork 0x00000001817cbda4 TCP Conn 0x154699a70 complete. fd: 9, err: 0
60.885311 CFNetwork 0x00000001817cd2d0 TCP Conn 0x154699a70 event 1. err: 0
61.043184 CFNetwork 0x00000001817cbda4 TCP Conn 0x1545a8190 complete. fd: 5, err: 0
61.043698 CFNetwork 0x00000001817cd2d0 TCP Conn 0x1545a8190 event 1. err: 0