Browse Source

Linting.

pull/92/head
Abhishek Banthia 6 years ago
parent
commit
3b54a5ccf3
  1. 51
      .swiftlint.yml
  2. 1
      Clocker/ClockerUITests/NetworkDisconnectionTests.swift
  3. 2
      Clocker/ClockerUITests/PreferencesTest.swift
  4. 1
      Clocker/Dependencies/Date Additions/Constants.swift
  5. 1
      Clocker/Dependencies/Date Additions/Date+Bundle.swift
  6. 40
      Clocker/Dependencies/Date Additions/Date+Comparators.swift
  7. 1
      Clocker/Dependencies/Date Additions/Date+Components.swift
  8. 1
      Clocker/Dependencies/Date Additions/Date+Format.swift
  9. 8
      Clocker/Dependencies/Date Additions/Date+Inits.swift
  10. 12
      Clocker/Dependencies/Date Additions/Date+Manipulations.swift
  11. 111
      Clocker/Dependencies/Date Additions/Date+TimeAgo.swift
  12. 1
      Clocker/Dependencies/Date Additions/Enums.swift
  13. 2
      Clocker/Dependencies/Date Additions/Integer+DateTools.swift
  14. 7
      Clocker/Dependencies/Date Additions/TimeChunk.swift
  15. 62
      Clocker/Dependencies/Date Additions/TimePeriod.swift
  16. 14
      Clocker/Dependencies/Date Additions/TimePeriodChain.swift
  17. 4
      Clocker/Dependencies/Date Additions/TimePeriodCollection.swift
  18. 1
      Clocker/Dependencies/Date Additions/TimePeriodGroup.swift
  19. 1
      Clocker/Dependencies/Solar.swift
  20. 4
      Clocker/Events and Reminders/CalendarHandler.swift
  21. 3
      Clocker/Menu Bar/StatusItemView.swift
  22. 6
      Clocker/Onboarding/OnboardingSearchController.swift
  23. 4
      Clocker/Panel/Data Layer/TimezoneData.swift
  24. 2
      Clocker/Panel/Data Layer/TimezoneDataOperations.swift
  25. 4
      Clocker/Panel/Notes Popover/NotesPopover.swift
  26. 2
      Clocker/Panel/Notes Popover/TextViewWithPlaceholder.swift
  27. 8
      Clocker/Panel/PanelController.swift
  28. 6
      Clocker/Panel/ParentPanelController.swift
  29. 2
      Clocker/Panel/UI/PanelTableView.swift
  30. 8
      Clocker/Preferences/About/AboutViewController.swift
  31. 2
      Clocker/Preferences/App Feedback/AppFeedbackWindowController.swift
  32. 7
      Clocker/Preferences/Appearance/AppearanceViewController.swift
  33. 7
      Clocker/Preferences/Calendar/CalendarViewController.swift
  34. 10
      Clocker/Preferences/General/PreferencesViewController.swift
  35. 2
      Clocker/Preferences/OneWindowController.swift
  36. 2
      Clocker/Preferences/ParentViewController.swift
  37. 533
      xcodebuild.log

51
.swiftlint.yml

@ -0,0 +1,51 @@
disabled_rules: # rule identifiers to exclude from running
- colon
- comma
- control_statement
opt_in_rules: # some rules are only opt-in
- empty_count
# Find all the available rules by running:
# swiftlint rules
# included: # paths to include during linting. `--path` is ignored if present.
# - Clocker
# excluded: # paths to ignore during linting. Takes precedence over `included`.
# - Carthage
# - Pods
# - Source/ExcludedFolder
# - Source/ExcludedFile.swift
# - Source/*/ExcludedFile.swift # Exclude files with a wildcard
analyzer_rules: # Rules run by `swiftlint analyze` (experimental)
- explicit_self
# configurable rules can be customized from this configuration file
# binary rules can set their severity level
force_cast: warning # implicitly
force_try:
severity: warning # explicitly
# rules that have both warning and error levels, can set just the warning level
# implicitly
line_length: 110
# they can set both implicitly with an array
type_body_length:
- 300 # warning
- 400 # error
# or they can set both explicitly
file_length:
warning: 500
error: 1200
# naming rules can set warnings/errors for min_length and max_length
# additionally they can set excluded names
type_name:
min_length: 3 # only warning
max_length: # warning and error
warning: 40
error: 50
excluded: iPhone # excluded via string
identifier_name:
min_length: # only min_length
error: 3 # only error
# excluded: # excluded via string array
# - id
# - URL
# - GlobalAPIKey
reporter: "xcode" # reporter type (xcode, json, csv, checkstyle, junit, html, emoji, sonarqube, markdown)

1
Clocker/ClockerUITests/NetworkDisconnectionTests.swift

@ -66,7 +66,6 @@ class NetworkDisconnectionTests: XCTestCase {
app.tables["AvailableTimezoneTableView"].click() app.tables["AvailableTimezoneTableView"].click()
app.buttons["AddAvailableTimezone"].click() app.buttons["AddAvailableTimezone"].click()
sleep(1) sleep(1)
XCTAssertTrue(app.sheets.staticTexts["ErrorPlaceholder"].exists) XCTAssertTrue(app.sheets.staticTexts["ErrorPlaceholder"].exists)
app.sheets.buttons["Close"].click() app.sheets.buttons["Close"].click()

2
Clocker/ClockerUITests/PreferencesTest.swift

@ -326,7 +326,7 @@ class PreferencesTest: XCTestCase {
let unfavouritedMenubarsQuery = preferencesTable.checkBoxes.matching(NSPredicate(format: "value == 0", "")) let unfavouritedMenubarsQuery = preferencesTable.checkBoxes.matching(NSPredicate(format: "value == 0", ""))
if unfavouritedMenubarsQuery.count > 1 { if unfavouritedMenubarsQuery.count > 1 {
for _ in 0..<2{ for _ in 0..<2 {
let checkbox = unfavouritedMenubarsQuery.element(boundBy: 0) let checkbox = unfavouritedMenubarsQuery.element(boundBy: 0)
checkbox.click() checkbox.click()
} }

1
Clocker/Dependencies/Date Additions/Constants.swift

@ -6,7 +6,6 @@
// Copyright © 2016 Grayson Webster. All rights reserved. // Copyright © 2016 Grayson Webster. All rights reserved.
// //
import Foundation import Foundation
/** /**

1
Clocker/Dependencies/Date Additions/Date+Bundle.swift

@ -15,4 +15,3 @@ public extension Bundle {
return Bundle(path: NSString(string: assetPath).appendingPathComponent("DateTools.bundle"))! return Bundle(path: NSString(string: assetPath).appendingPathComponent("DateTools.bundle"))!
} }
} }

40
Clocker/Dependencies/Date Additions/Date+Comparators.swift

@ -138,7 +138,6 @@ public extension Date {
return (dateOne?.equals(dateTwo!))! return (dateOne?.equals(dateTwo!))!
} }
// MARK: - Date Comparison // MARK: - Date Comparison
// MARK: Time From // MARK: Time From
@ -214,7 +213,7 @@ public extension Date {
* - returns: The hours between receiver and provided date * - returns: The hours between receiver and provided date
*/ */
func hours(from date: Date) -> Int { func hours(from date: Date) -> Int {
return Int(self.timeIntervalSince(date)/Constants.SecondsInHour); return Int(self.timeIntervalSince(date)/Constants.SecondsInHour)
} }
/** /**
@ -245,7 +244,6 @@ public extension Date {
return Int(timeIntervalSince(date)) return Int(timeIntervalSince(date))
} }
// MARK: Time From With Calendar // MARK: Time From With Calendar
/** /**
@ -266,10 +264,10 @@ public extension Date {
} }
let earliest = earlierDate(date) let earliest = earlierDate(date)
let latest = (earliest == self) ? date : self; let latest = (earliest == self) ? date : self
let multiplier = (earliest == self) ? -1 : 1; let multiplier = (earliest == self) ? -1 : 1
let components = calendarCopy!.dateComponents([.year], from: earliest, to: latest) let components = calendarCopy!.dateComponents([.year], from: earliest, to: latest)
return multiplier * components.year!; return multiplier * components.year!
} }
/** /**
@ -283,17 +281,17 @@ public extension Date {
* *
* - returns: The months between receiver and provided date * - returns: The months between receiver and provided date
*/ */
func months(from date: Date, calendar: Calendar?) -> Int{ func months(from date: Date, calendar: Calendar?) -> Int {
var calendarCopy = calendar var calendarCopy = calendar
if (calendar == nil) { if (calendar == nil) {
calendarCopy = Calendar.autoupdatingCurrent calendarCopy = Calendar.autoupdatingCurrent
} }
let earliest = earlierDate(date) let earliest = earlierDate(date)
let latest = (earliest == self) ? date : self; let latest = (earliest == self) ? date : self
let multiplier = (earliest == self) ? -1 : 1; let multiplier = (earliest == self) ? -1 : 1
let components = calendarCopy!.dateComponents(Constants.AllCalendarUnitFlags, from: earliest, to: latest) let components = calendarCopy!.dateComponents(Constants.AllCalendarUnitFlags, from: earliest, to: latest)
return multiplier*(components.month! + 12*components.year!); return multiplier*(components.month! + 12*components.year!)
} }
/** /**
@ -307,17 +305,17 @@ public extension Date {
* *
* - returns: The weeks between receiver and provided date * - returns: The weeks between receiver and provided date
*/ */
func weeks(from date: Date, calendar: Calendar?) -> Int{ func weeks(from date: Date, calendar: Calendar?) -> Int {
var calendarCopy = calendar var calendarCopy = calendar
if (calendar == nil) { if (calendar == nil) {
calendarCopy = Calendar.autoupdatingCurrent calendarCopy = Calendar.autoupdatingCurrent
} }
let earliest = earlierDate(date) let earliest = earlierDate(date)
let latest = (earliest == self) ? date : self; let latest = (earliest == self) ? date : self
let multiplier = (earliest == self) ? -1 : 1; let multiplier = (earliest == self) ? -1 : 1
let components = calendarCopy!.dateComponents([.weekOfYear], from: earliest, to: latest) let components = calendarCopy!.dateComponents([.weekOfYear], from: earliest, to: latest)
return multiplier*components.weekOfYear!; return multiplier*components.weekOfYear!
} }
/** /**
@ -344,7 +342,6 @@ public extension Date {
return multiplier*components.day! return multiplier*components.day!
} }
// MARK: Time Until // MARK: Time Until
/** /**
@ -383,7 +380,7 @@ public extension Date {
* The number of hours until the receiver's date (0 if the receiver is the same or * The number of hours until the receiver's date (0 if the receiver is the same or
* earlier than now). * earlier than now).
*/ */
var hoursUntil: Int{ var hoursUntil: Int {
return hoursLater(than: Date()) return hoursLater(than: Date())
} }
@ -391,7 +388,7 @@ public extension Date {
* The number of minutes until the receiver's date (0 if the receiver is the same or * The number of minutes until the receiver's date (0 if the receiver is the same or
* earlier than now). * earlier than now).
*/ */
var minutesUntil: Int{ var minutesUntil: Int {
return minutesLater(than: Date()) return minutesLater(than: Date())
} }
@ -399,11 +396,10 @@ public extension Date {
* The number of seconds until the receiver's date (0 if the receiver is the same or * The number of seconds until the receiver's date (0 if the receiver is the same or
* earlier than now). * earlier than now).
*/ */
var secondsUntil: Int{ var secondsUntil: Int {
return secondsLater(than: Date()) return secondsLater(than: Date())
} }
// MARK: Time Ago // MARK: Time Ago
/** /**
@ -458,11 +454,10 @@ public extension Date {
* The number of seconds the receiver's date is earlier than now (0 if the receiver is * The number of seconds the receiver's date is earlier than now (0 if the receiver is
* the same or earlier than now). * the same or earlier than now).
*/ */
var secondsAgo: Int{ var secondsAgo: Int {
return secondsEarlier(than: Date()) return secondsEarlier(than: Date())
} }
// MARK: Earlier Than // MARK: Earlier Than
/** /**
@ -486,7 +481,7 @@ public extension Date {
* - returns: The number of months * - returns: The number of months
*/ */
func monthsEarlier(than date: Date) -> Int { func monthsEarlier(than date: Date) -> Int {
return abs(min(months(from: date), 0)); return abs(min(months(from: date), 0))
} }
/** /**
@ -549,7 +544,6 @@ public extension Date {
return abs(min(seconds(from: date), 0)) return abs(min(seconds(from: date), 0))
} }
// MARK: Later Than // MARK: Later Than
/** /**

1
Clocker/Dependencies/Date Additions/Date+Components.swift

@ -273,7 +273,6 @@ public extension Date {
self = Date.init(year: self.year, month: self.month, day: self.day, hour: self.hour, minute: self.minute, second: second) self = Date.init(year: self.year, month: self.month, day: self.day, hour: self.hour, minute: self.minute, second: second)
} }
// MARK: - Bools // MARK: - Bools
/** /**

1
Clocker/Dependencies/Date Additions/Date+Format.swift

@ -78,7 +78,6 @@ public extension Date {
#endif #endif
} }
// MARK: - Formatted Date - String // MARK: - Formatted Date - String
/** /**

8
Clocker/Dependencies/Date Additions/Date+Inits.swift

@ -63,10 +63,10 @@ public extension Date {
*/ */
init(dateString: String, format: String, timeZone: TimeZone) { init(dateString: String, format: String, timeZone: TimeZone) {
let dateFormatter = DateFormatter() let dateFormatter = DateFormatter()
dateFormatter.dateStyle = .none; dateFormatter.dateStyle = .none
dateFormatter.timeStyle = .none; dateFormatter.timeStyle = .none
dateFormatter.timeZone = timeZone; dateFormatter.timeZone = timeZone
dateFormatter.dateFormat = format; dateFormatter.dateFormat = format
guard let date = dateFormatter.date(from: dateString) else { guard let date = dateFormatter.date(from: dateString) else {
self = Date() self = Date()

12
Clocker/Dependencies/Date Additions/Date+Manipulations.swift

@ -24,11 +24,10 @@ public extension Date {
* with all smaller components set to their minimum * with all smaller components set to their minimum
*/ */
func start(of component: Component) -> Date { func start(of component: Component) -> Date {
var newDate = self; var newDate = self
if component == .second { if component == .second {
newDate.second(self.second) newDate.second(self.second)
} } else if component == .minute {
else if component == .minute {
newDate.second(0) newDate.second(0)
} else if component == .hour { } else if component == .hour {
newDate.second(0) newDate.second(0)
@ -61,12 +60,11 @@ public extension Date {
* with all smaller components set to their maximum * with all smaller components set to their maximum
*/ */
func end(of component: Component) -> Date { func end(of component: Component) -> Date {
var newDate = self; var newDate = self
if component == .second { if component == .second {
newDate.second(newDate.second + 1) newDate.second(newDate.second + 1)
newDate = newDate - 0.001 newDate = newDate - 0.001
} } else if component == .minute {
else if component == .minute {
newDate.second(60) newDate.second(60)
newDate = newDate - 0.001 newDate = newDate - 0.001
} else if component == .hour { } else if component == .hour {
@ -113,7 +111,6 @@ public extension Date {
} }
} }
// MARK: - Addition / Subtractions // MARK: - Addition / Subtractions
/** /**
@ -158,7 +155,6 @@ public extension Date {
return calendar.date(byAdding: components, to: self)! return calendar.date(byAdding: components, to: self)!
} }
// MARK: - Operator Overloads // MARK: - Operator Overloads
/** /**

111
Clocker/Dependencies/Date Additions/Date+TimeAgo.swift

@ -14,7 +14,7 @@ import Foundation
*/ */
public extension Date { public extension Date {
//MARK: - Time Ago // MARK: - Time Ago
/** /**
* Takes in a date and returns a string with the most convenient unit of time representing * Takes in a date and returns a string with the most convenient unit of time representing
@ -24,7 +24,7 @@ public extension Date {
* *
* - returns String - Formatted return string * - returns String - Formatted return string
*/ */
static func timeAgo(since date:Date) -> String{ static func timeAgo(since date:Date) -> String {
return date.timeAgo(since: Date(), numericDates: false, numericTimes: false) return date.timeAgo(since: Date(), numericDates: false, numericTimes: false)
} }
@ -66,7 +66,6 @@ public extension Date {
let earliest = self.earlierDate(date) let earliest = self.earlierDate(date)
let latest = (earliest == self) ? date : self //Should be triple equals, but not extended to Date at this time let latest = (earliest == self) ? date : self //Should be triple equals, but not extended to Date at this time
let components = calendar.dateComponents(unitFlags, from: earliest, to: latest) let components = calendar.dateComponents(unitFlags, from: earliest, to: latest)
let yesterday = date.subtract(1.days) let yesterday = date.subtract(1.days)
let isYesterday = yesterday.day == self.day let isYesterday = yesterday.day == self.day
@ -78,127 +77,102 @@ public extension Date {
if (components.year! >= 2) { if (components.year! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@years ago", value: components.year!) return self.logicalLocalizedStringFromFormat(format: "%%d %@years ago", value: components.year!)
} } else if (components.year! >= 1) {
else if (components.year! >= 1) {
if (numericDates) { if (numericDates) {
return DateToolsLocalizedStrings("1 year ago"); return DateToolsLocalizedStrings("1 year ago")
} }
return DateToolsLocalizedStrings("Last year"); return DateToolsLocalizedStrings("Last year")
} } else if (components.month! >= 2) {
else if (components.month! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@months ago", value: components.month!) return self.logicalLocalizedStringFromFormat(format: "%%d %@months ago", value: components.month!)
} } else if (components.month! >= 1) {
else if (components.month! >= 1) {
if (numericDates) { if (numericDates) {
return DateToolsLocalizedStrings("1 month ago"); return DateToolsLocalizedStrings("1 month ago")
} }
return DateToolsLocalizedStrings("Last month"); return DateToolsLocalizedStrings("Last month")
} } else if (components.weekOfYear! >= 2) {
else if (components.weekOfYear! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@weeks ago", value: components.weekOfYear!) return self.logicalLocalizedStringFromFormat(format: "%%d %@weeks ago", value: components.weekOfYear!)
} } else if (components.weekOfYear! >= 1) {
else if (components.weekOfYear! >= 1) {
if (numericDates) { if (numericDates) {
return DateToolsLocalizedStrings("1 week ago"); return DateToolsLocalizedStrings("1 week ago")
} }
return DateToolsLocalizedStrings("Last week"); return DateToolsLocalizedStrings("Last week")
} } else if (components.day! >= 2) {
else if (components.day! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@days ago", value: components.day!) return self.logicalLocalizedStringFromFormat(format: "%%d %@days ago", value: components.day!)
} } else if (isYesterday) {
else if (isYesterday) {
if (numericDates) { if (numericDates) {
return DateToolsLocalizedStrings("1 day ago"); return DateToolsLocalizedStrings("1 day ago")
} }
return DateToolsLocalizedStrings("Yesterday"); return DateToolsLocalizedStrings("Yesterday")
} } else if (components.hour! >= 2) {
else if (components.hour! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@hours ago", value: components.hour!) return self.logicalLocalizedStringFromFormat(format: "%%d %@hours ago", value: components.hour!)
} } else if (components.hour! >= 1) {
else if (components.hour! >= 1) {
if (numericTimes) { if (numericTimes) {
return DateToolsLocalizedStrings("1 hour ago"); return DateToolsLocalizedStrings("1 hour ago")
} }
return DateToolsLocalizedStrings("An hour ago"); return DateToolsLocalizedStrings("An hour ago")
} } else if (components.minute! >= 2) {
else if (components.minute! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@minutes ago", value: components.minute!) return self.logicalLocalizedStringFromFormat(format: "%%d %@minutes ago", value: components.minute!)
} } else if (components.minute! >= 1) {
else if (components.minute! >= 1) {
if (numericTimes) { if (numericTimes) {
return DateToolsLocalizedStrings("1 minute ago"); return DateToolsLocalizedStrings("1 minute ago")
} }
return DateToolsLocalizedStrings("A minute ago"); return DateToolsLocalizedStrings("A minute ago")
} } else if (components.second! >= 3) {
else if (components.second! >= 3) {
return self.logicalLocalizedStringFromFormat(format: "%%d %@seconds ago", value: components.second!) return self.logicalLocalizedStringFromFormat(format: "%%d %@seconds ago", value: components.second!)
} } else {
else {
if (numericTimes) { if (numericTimes) {
return DateToolsLocalizedStrings("1 second ago"); return DateToolsLocalizedStrings("1 second ago")
} }
return DateToolsLocalizedStrings("Just now"); return DateToolsLocalizedStrings("Just now")
} }
} }
func shortTimeAgo(since date:Date) -> String { func shortTimeAgo(since date:Date) -> String {
let calendar = NSCalendar.current let calendar = NSCalendar.current
let unitFlags = Set<Calendar.Component>([.second,.minute,.hour,.day,.weekOfYear,.month,.year]) let unitFlags = Set<Calendar.Component>([.second,.minute,.hour,.day,.weekOfYear,.month,.year])
let earliest = self.earlierDate(date) let earliest = self.earlierDate(date)
let latest = (earliest == self) ? date : self //Should pbe triple equals, but not extended to Date at this time let latest = (earliest == self) ? date : self //Should pbe triple equals, but not extended to Date at this time
let components = calendar.dateComponents(unitFlags, from: earliest, to: latest) let components = calendar.dateComponents(unitFlags, from: earliest, to: latest)
let yesterday = date.subtract(1.days) let yesterday = date.subtract(1.days)
let isYesterday = yesterday.day == self.day let isYesterday = yesterday.day == self.day
if (components.year! >= 1) { if (components.year! >= 1) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@y", value: components.year!) return self.logicalLocalizedStringFromFormat(format: "%%d%@y", value: components.year!)
} } else if (components.month! >= 1) {
else if (components.month! >= 1) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@M", value: components.month!) return self.logicalLocalizedStringFromFormat(format: "%%d%@M", value: components.month!)
} } else if (components.weekOfYear! >= 1) {
else if (components.weekOfYear! >= 1) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@w", value: components.weekOfYear!) return self.logicalLocalizedStringFromFormat(format: "%%d%@w", value: components.weekOfYear!)
} } else if (components.day! >= 2) {
else if (components.day! >= 2) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@d", value: components.day!) return self.logicalLocalizedStringFromFormat(format: "%%d%@d", value: components.day!)
} } else if (isYesterday) {
else if (isYesterday) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@d", value: 1) return self.logicalLocalizedStringFromFormat(format: "%%d%@d", value: 1)
} } else if (components.hour! >= 1) {
else if (components.hour! >= 1) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@h", value: components.hour!) return self.logicalLocalizedStringFromFormat(format: "%%d%@h", value: components.hour!)
} } else if (components.minute! >= 1) {
else if (components.minute! >= 1) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@m", value: components.minute!) return self.logicalLocalizedStringFromFormat(format: "%%d%@m", value: components.minute!)
} } else if (components.second! >= 3) {
else if (components.second! >= 3) {
return self.logicalLocalizedStringFromFormat(format: "%%d%@s", value: components.second!) return self.logicalLocalizedStringFromFormat(format: "%%d%@s", value: components.second!)
} } else {
else {
return self.logicalLocalizedStringFromFormat(format: "%%d%@s", value: components.second!) return self.logicalLocalizedStringFromFormat(format: "%%d%@s", value: components.second!)
//return DateToolsLocalizedStrings(@"Now"); //string not yet translated 2014.04.05 //return DateToolsLocalizedStrings(@"Now"); //string not yet translated 2014.04.05
} }
} }
private func logicalLocalizedStringFromFormat(format: String, value: Int) -> String {
private func logicalLocalizedStringFromFormat(format: String, value: Int) -> String{
#if os(Linux) #if os(Linux)
let localeFormat = String.init(format: format, getLocaleFormatUnderscoresWithValue(Double(value)) as! CVarArg) // this may not work, unclear!! let localeFormat = String.init(format: format, getLocaleFormatUnderscoresWithValue(Double(value)) as! CVarArg) // this may not work, unclear!!
#else #else
@ -208,8 +182,7 @@ public extension Date {
return String.init(format: DateToolsLocalizedStrings(localeFormat), value) return String.init(format: DateToolsLocalizedStrings(localeFormat), value)
} }
private func getLocaleFormatUnderscoresWithValue(_ value: Double) -> String {
private func getLocaleFormatUnderscoresWithValue(_ value: Double) -> String{
let localCode = Bundle.main.preferredLocalizations[0] let localCode = Bundle.main.preferredLocalizations[0]
if (localCode == "ru" || localCode == "uk") { if (localCode == "ru" || localCode == "uk") {
let XY = Int(floor(value).truncatingRemainder(dividingBy: 100)) let XY = Int(floor(value).truncatingRemainder(dividingBy: 100))
@ -231,7 +204,6 @@ public extension Date {
return "" return ""
} }
// MARK: - Localization // MARK: - Localization
private func DateToolsLocalizedStrings(_ string: String) -> String { private func DateToolsLocalizedStrings(_ string: String) -> String {
@ -247,7 +219,6 @@ public extension Date {
#endif #endif
} }
// MARK: - Date Earlier/Later // MARK: - Date Earlier/Later
/** /**
@ -257,7 +228,7 @@ public extension Date {
* *
* - returns: The date that is earlier * - returns: The date that is earlier
*/ */
func earlierDate(_ date:Date) -> Date{ func earlierDate(_ date:Date) -> Date {
return (self.timeIntervalSince1970 <= date.timeIntervalSince1970) ? self : date return (self.timeIntervalSince1970 <= date.timeIntervalSince1970) ? self : date
} }
@ -268,7 +239,7 @@ public extension Date {
* *
* - returns: The date that is later * - returns: The date that is later
*/ */
func laterDate(_ date:Date) -> Date{ func laterDate(_ date:Date) -> Date {
return (self.timeIntervalSince1970 >= date.timeIntervalSince1970) ? self : date return (self.timeIntervalSince1970 >= date.timeIntervalSince1970) ? self : date
} }

1
Clocker/Dependencies/Date Additions/Enums.swift

@ -34,7 +34,6 @@ public enum Relation {
case none // One or more of the dates does not exist case none // One or more of the dates does not exist
} }
/** /**
* Whether the time period is Open or Closed * Whether the time period is Open or Closed
* *

2
Clocker/Dependencies/Date Additions/Integer+DateTools.swift

@ -10,7 +10,7 @@ import Foundation
public extension Int { public extension Int {
//MARK: TimePeriod // MARK: TimePeriod
/** /**
* A `TimeChunk` with its seconds component set to the value of self * A `TimeChunk` with its seconds component set to the value of self

7
Clocker/Dependencies/Date Additions/TimeChunk.swift

@ -43,7 +43,6 @@ public struct TimeChunk {
self.years = years self.years = years
} }
// MARK: - Comparisons // MARK: - Comparisons
/** /**
@ -57,7 +56,6 @@ public struct TimeChunk {
return (seconds == chunk.seconds && minutes == chunk.minutes && hours == chunk.hours && days == chunk.days && weeks == chunk.weeks && months == chunk.months && years == chunk.years) return (seconds == chunk.seconds && minutes == chunk.minutes && hours == chunk.hours && days == chunk.days && weeks == chunk.weeks && months == chunk.months && years == chunk.years)
} }
// MARK: - Conversion // MARK: - Conversion
/** /**
@ -125,7 +123,6 @@ public struct TimeChunk {
return 0 return 0
} }
// MARK: - Date Creation // MARK: - Date Creation
/** /**
@ -208,7 +205,6 @@ public struct TimeChunk {
return newChunk return newChunk
} }
// MARK: Mutation // MARK: Mutation
/** /**
@ -241,7 +237,6 @@ public struct TimeChunk {
years -= chunk.years years -= chunk.years
} }
// MARK: - Operator Overloads // MARK: - Operator Overloads
/** /**
@ -269,7 +264,7 @@ public struct TimeChunk {
* Operator overload for inverting (negating all variables) a `TimeChunk` * Operator overload for inverting (negating all variables) a `TimeChunk`
*/ */
public static prefix func -(chunk: TimeChunk) -> TimeChunk { public static prefix func -(chunk: TimeChunk) -> TimeChunk {
var invertedChunk = chunk; var invertedChunk = chunk
invertedChunk.seconds = -chunk.seconds invertedChunk.seconds = -chunk.seconds
invertedChunk.minutes = -chunk.minutes invertedChunk.minutes = -chunk.minutes
invertedChunk.hours = -chunk.hours invertedChunk.hours = -chunk.hours

62
Clocker/Dependencies/Date Additions/TimePeriod.swift

@ -8,8 +8,6 @@
import Foundation import Foundation
/** /**
* In DateTools, time periods are represented by the TimePeriod protocol. * In DateTools, time periods are represented by the TimePeriod protocol.
* Required variables and method impleementations are bound below. An inheritable * Required variables and method impleementations are bound below. An inheritable
@ -34,7 +32,6 @@ public protocol TimePeriodProtocol {
public extension TimePeriodProtocol { public extension TimePeriodProtocol {
// MARK: - Information // MARK: - Information
/** /**
@ -133,7 +130,6 @@ public extension TimePeriodProtocol {
return TimeInterval(Double.greatestFiniteMagnitude) return TimeInterval(Double.greatestFiniteMagnitude)
} }
// MARK: - Time Period Relationships // MARK: - Time Period Relationships
/** /**
@ -156,47 +152,35 @@ public extension TimePeriodProtocol {
//Make comparisons //Make comparisons
if (period.end!.isEarlier(than: self.beginning!)) { if (period.end!.isEarlier(than: self.beginning!)) {
return .after return .after
} } else if (period.end!.equals(self.beginning!)) {
else if (period.end!.equals(self.beginning!)) {
return .startTouching return .startTouching
} } else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.isEarlier(than: self.end!)) {
else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.isEarlier(than: self.end!)) {
return .startInside return .startInside
} } else if (period.beginning!.equals(self.beginning!) && period.end!.isLater(than: self.end!)) {
else if (period.beginning!.equals(self.beginning!) && period.end!.isLater(than: self.end!)) {
return .insideStartTouching return .insideStartTouching
} } else if (period.beginning!.equals(self.beginning!) && period.end!.isEarlier(than: self.end!)) {
else if (period.beginning!.equals(self.beginning!) && period.end!.isEarlier(than: self.end!)) {
return .enclosingStartTouching return .enclosingStartTouching
} } else if (period.beginning!.isLater(than: self.beginning!) && period.end!.isEarlier(than: self.end!)) {
else if (period.beginning!.isLater(than: self.beginning!) && period.end!.isEarlier(than: self.end!)) {
return .enclosing return .enclosing
} } else if (period.beginning!.isLater(than: self.beginning!) && period.end!.equals(self.end!)) {
else if (period.beginning!.isLater(than: self.beginning!) && period.end!.equals(self.end!)) {
return .enclosingEndTouching return .enclosingEndTouching
} } else if (period.beginning!.equals(self.beginning!) && period.end!.equals(self.end!)) {
else if (period.beginning!.equals(self.beginning!) && period.end!.equals(self.end!)) {
return .exactMatch return .exactMatch
} } else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.isLater(than: self.end!)) {
else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.isLater(than: self.end!)) {
return .inside return .inside
} } else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.equals(self.end!)) {
else if (period.beginning!.isEarlier(than: self.beginning!) && period.end!.equals(self.end!)) {
return .insideEndTouching return .insideEndTouching
} } else if (period.beginning!.isEarlier(than: self.end!) && period.end!.isLater(than: self.end!)) {
else if (period.beginning!.isEarlier(than: self.end!) && period.end!.isLater(than: self.end!)) {
return .endInside return .endInside
} } else if (period.beginning!.equals(self.end!) && period.end!.isLater(than: self.end!)) {
else if (period.beginning!.equals(self.end!) && period.end!.isLater(than: self.end!)) {
return .endTouching return .endTouching
} } else if (period.beginning!.isLater(than: self.end!)) {
else if (period.beginning!.isLater(than: self.end!)) {
return .before return .before
} }
} }
} }
return .none; return .none
} }
/** /**
@ -234,8 +218,7 @@ public extension TimePeriodProtocol {
func contains(_ date: Date, interval: Interval) -> Bool { func contains(_ date: Date, interval: Interval) -> Bool {
if (interval == .open) { if (interval == .open) {
return self.beginning!.isEarlier(than: date) && self.end!.isLater(than: date) return self.beginning!.isEarlier(than: date) && self.end!.isLater(than: date)
} } else if (interval == .closed) {
else if (interval == .closed){
return (self.beginning!.isEarlierThanOrEqual(to: date) && self.end!.isLaterThanOrEqual(to: date)) return (self.beginning!.isEarlierThanOrEqual(to: date) && self.end!.isLaterThanOrEqual(to: date))
} }
@ -267,11 +250,11 @@ public extension TimePeriodProtocol {
return true return true
} }
//Enclosing //Enclosing
else if (period.beginning!.isLaterThanOrEqual(to: self.beginning!) && period.end!.isEarlierThanOrEqual(to: self.end!)){ else if (period.beginning!.isLaterThanOrEqual(to: self.beginning!) && period.end!.isEarlierThanOrEqual(to: self.end!)) {
return true return true
} }
//Inside -> Out //Inside -> Out
else if(period.beginning!.isEarlier(than: self.end!) && period.end!.isLater(than: self.end!)){ else if(period.beginning!.isEarlier(than: self.end!) && period.end!.isLater(than: self.end!)) {
return true return true
} }
return false return false
@ -308,10 +291,9 @@ public extension TimePeriodProtocol {
*/ */
func gap(between period: TimePeriodProtocol) -> TimeInterval { func gap(between period: TimePeriodProtocol) -> TimeInterval {
if (self.end!.isEarlier(than: period.beginning!)) { if (self.end!.isEarlier(than: period.beginning!)) {
return abs(self.end!.timeIntervalSince(period.beginning!)); return abs(self.end!.timeIntervalSince(period.beginning!))
} } else if (period.end!.isEarlier(than: self.beginning!)) {
else if (period.end!.isEarlier(than: self.beginning!)){ return abs(period.end!.timeIntervalSince(self.beginning!))
return abs(period.end!.timeIntervalSince(self.beginning!));
} }
return 0 return 0
} }
@ -355,7 +337,7 @@ public extension TimePeriodProtocol {
// MARK: - Shifts // MARK: - Shifts
//MARK: In Place // MARK: In Place
/** /**
* In place, shift the `TimePeriod` by a `TimeInterval` * In place, shift the `TimePeriod` by a `TimeInterval`
@ -381,7 +363,6 @@ public extension TimePeriodProtocol {
// MARK: In Place // MARK: In Place
/** /**
* In place, lengthen the `TimePeriod`, anchored at the beginning, end or center * In place, lengthen the `TimePeriod`, anchored at the beginning, end or center
* *
@ -487,7 +468,6 @@ open class TimePeriod: TimePeriodProtocol {
*/ */
public var end: Date? public var end: Date?
// MARK: - Initializers // MARK: - Initializers
init() { init() {
@ -524,7 +504,6 @@ open class TimePeriod: TimePeriodProtocol {
self.end = self.beginning?.add(chunk) self.end = self.beginning?.add(chunk)
} }
// MARK: - Shifted // MARK: - Shifted
/** /**
@ -669,7 +648,6 @@ open class TimePeriod: TimePeriodProtocol {
return timePeriod return timePeriod
} }
// MARK: - Operator Overloads // MARK: - Operator Overloads
/** /**

14
Clocker/Dependencies/Date Additions/TimePeriodChain.swift

@ -37,8 +37,7 @@ open class TimePeriodChain: TimePeriodGroup {
if periods.count == 1 { if periods.count == 1 {
_beginning = period.beginning _beginning = period.beginning
_end = period.end _end = period.end
} } else {
else {
_end = _end?.addingTimeInterval(period.duration) _end = _end?.addingTimeInterval(period.duration)
} }
} }
@ -60,8 +59,7 @@ open class TimePeriodChain: TimePeriodGroup {
if periods.count == 1 { if periods.count == 1 {
_beginning = period.beginning _beginning = period.beginning
_end = period.end _end = period.end
} } else {
else {
_end = _end?.addingTimeInterval(period.duration) _end = _end?.addingTimeInterval(period.duration)
} }
} }
@ -78,12 +76,10 @@ open class TimePeriodChain: TimePeriodGroup {
if index == 0 && period.beginning != nil && period.end != nil { if index == 0 && period.beginning != nil && period.end != nil {
//Insert new period //Insert new period
periods.insert(period, at: index) periods.insert(period, at: index)
} } else if period.beginning != nil && period.end != nil {
else if period.beginning != nil && period.end != nil {
//Insert new period //Insert new period
periods.insert(period, at: index) periods.insert(period, at: index)
} } else {
else {
print("All TimePeriods in a TimePeriodChain must contain a defined start and end date") print("All TimePeriods in a TimePeriodChain must contain a defined start and end date")
return return
} }
@ -127,7 +123,7 @@ open class TimePeriodChain: TimePeriodGroup {
updateExtremes() updateExtremes()
} }
//MARK: - Chain Content Manipulation // MARK: - Chain Content Manipulation
/** /**
* In place, shifts all chain time periods by a given time interval * In place, shifts all chain time periods by a given time interval

4
Clocker/Dependencies/Date Additions/TimePeriodCollection.swift

@ -86,7 +86,6 @@ open class TimePeriodCollection: TimePeriodGroup {
updateExtremes() updateExtremes()
} }
// MARK: - Sorting // MARK: - Sorting
// In place // In place
@ -148,7 +147,6 @@ open class TimePeriodCollection: TimePeriodGroup {
return collection return collection
} }
// MARK: - Collection Relationship // MARK: - Collection Relationship
// Potentially use .reduce() instead of these functions // Potentially use .reduce() instead of these functions
@ -225,7 +223,7 @@ open class TimePeriodCollection: TimePeriodGroup {
return left.equals(right) return left.equals(right)
} }
//MARK: - Helpers // MARK: - Helpers
internal func updateExtremes(period: TimePeriodProtocol) { internal func updateExtremes(period: TimePeriodProtocol) {
//Check incoming period against previous beginning and end date //Check incoming period against previous beginning and end date

1
Clocker/Dependencies/Date Additions/TimePeriodGroup.swift

@ -82,7 +82,6 @@ open class TimePeriodGroup: Sequence {
return containSameElements(array1: self.periods, group.periods) return containSameElements(array1: self.periods, group.periods)
} }
// MARK: - Sequence Protocol // MARK: - Sequence Protocol
public func makeIterator() -> IndexingIterator<Array<TimePeriodProtocol>> { public func makeIterator() -> IndexingIterator<Array<TimePeriodProtocol>> {

1
Clocker/Dependencies/Solar.swift

@ -219,4 +219,3 @@ private extension Double {
return (Double(self) * 180.0) / Double.pi return (Double(self) * 180.0) / Double.pi
} }
} }

4
Clocker/Events and Reminders/CalendarHandler.swift

@ -258,9 +258,7 @@ extension EventCenter {
for date in eventsForDateMapper.keys { for date in eventsForDateMapper.keys {
let sortedEvents = eventsForDateMapper[date]?.sorted(by: { (e1, e2) -> Bool in let sortedEvents = eventsForDateMapper[date]?.sorted(by: { (e1, e2) -> Bool in
if e1.isAllDay { return true } if e1.isAllDay { return true } else if e2.isAllDay { return false } else { return e1.event.startDate < e2.event.startDate }
else if e2.isAllDay { return false }
else { return e1.event.startDate < e2.event.startDate }
}) })
eventsForDateMapper[date] = sortedEvents eventsForDateMapper[date] = sortedEvents
} }

3
Clocker/Menu Bar/StatusItemView.swift

@ -2,7 +2,6 @@
import Cocoa import Cocoa
private var defaultParagraphStyle: NSMutableParagraphStyle { private var defaultParagraphStyle: NSMutableParagraphStyle {
let p = NSMutableParagraphStyle() let p = NSMutableParagraphStyle()
p.alignment = .center p.alignment = .center
@ -22,7 +21,7 @@ var timeAttributes: [NSAttributedString.Key: AnyObject] {
NSAttributedString.Key.font: compactModeTimeFont, NSAttributedString.Key.font: compactModeTimeFont,
NSAttributedString.Key.foregroundColor: textColor, NSAttributedString.Key.foregroundColor: textColor,
NSAttributedString.Key.backgroundColor: NSColor.clear, NSAttributedString.Key.backgroundColor: NSColor.clear,
NSAttributedString.Key.paragraphStyle: defaultParagraphStyle, NSAttributedString.Key.paragraphStyle: defaultParagraphStyle
] ]
return attributes return attributes
} }

6
Clocker/Onboarding/OnboardingSearchController.swift

@ -68,7 +68,6 @@ class OnboardingSearchController: NSViewController {
} }
} }
if resultsTableView.selectedRow == -1 { if resultsTableView.selectedRow == -1 {
setInfoLabel(PreferencesConstants.noTimezoneSelectedErrorMessage) setInfoLabel(PreferencesConstants.noTimezoneSelectedErrorMessage)
setupLabelHidingTimer() setupLabelHidingTimer()
@ -166,7 +165,7 @@ class OnboardingSearchController: NSViewController {
"latitude": latitude, "latitude": latitude,
"longitude": longitude, "longitude": longitude,
"nextUpdate": CLEmptyString, "nextUpdate": CLEmptyString,
CLCustomLabel: filteredAddress, CLCustomLabel: filteredAddress
] as [String: Any] ] as [String: Any]
DataStore.shared().addTimezone(TimezoneData(with: newTimeZone)) DataStore.shared().addTimezone(TimezoneData(with: newTimeZone))
@ -308,7 +307,7 @@ class OnboardingSearchController: NSViewController {
CLTimezoneName: formattedAddress, CLTimezoneName: formattedAddress,
CLCustomLabel: formattedAddress, CLCustomLabel: formattedAddress,
CLTimezoneID: CLEmptyString, CLTimezoneID: CLEmptyString,
CLPlaceIdentifier: result.placeId, CLPlaceIdentifier: result.placeId
] as [String: Any] ] as [String: Any]
self.results.append(TimezoneData(with: totalPackage)) self.results.append(TimezoneData(with: totalPackage))
@ -340,7 +339,6 @@ class OnboardingSearchController: NSViewController {
searchBar.placeholderString = placeholders.randomElement() searchBar.placeholderString = placeholders.randomElement()
} }
@IBAction func undoAction(_ sender: Any) { @IBAction func undoAction(_ sender: Any) {
DataStore.shared().removeLastTimezone() DataStore.shared().removeLastTimezone()
setInfoLabel("Removed.") setInfoLabel("Removed.")

4
Clocker/Panel/Data Layer/TimezoneData.swift

@ -202,7 +202,7 @@ class TimezoneData: NSObject, NSCoding {
let feedbackInfo = [ let feedbackInfo = [
AppFeedbackConstants.CLOperatingSystemVersion: osVersion, AppFeedbackConstants.CLOperatingSystemVersion: osVersion,
AppFeedbackConstants.CLClockerVersion: versionInfo, AppFeedbackConstants.CLClockerVersion: versionInfo
] ]
Logger.log(object: feedbackInfo, for: "CLTimezoneData is still being used!") Logger.log(object: feedbackInfo, for: "CLTimezoneData is still being used!")
@ -361,7 +361,7 @@ class TimezoneData: NSObject, NSCoding {
let errorDictionary = [ let errorDictionary = [
"Formatted Address": name, "Formatted Address": name,
"Place Identifier": placeIdentifier, "Place Identifier": placeIdentifier,
"TimezoneID": timezoneIdentifier, "TimezoneID": timezoneIdentifier
] ]
Logger.log(object: errorDictionary, for: "Error fetching timezone() in TimezoneData") Logger.log(object: errorDictionary, for: "Error fetching timezone() in TimezoneData")

2
Clocker/Panel/Data Layer/TimezoneDataOperations.swift

@ -207,7 +207,7 @@ extension TimezoneDataOperations {
let unableToConvertDateParameters = [ let unableToConvertDateParameters = [
"New Date": newDate, "New Date": newDate,
"Timezone": dataObject.timezone(), "Timezone": dataObject.timezone(),
"Locale": dateFormatter.locale.identifier, "Locale": dateFormatter.locale.identifier
] as [String: Any] ] as [String: Any]
Logger.log(object: unableToConvertDateParameters, for: "Date conversion failure - New Date is nil") Logger.log(object: unableToConvertDateParameters, for: "Date conversion failure - New Date is nil")
return CLEmptyString return CLEmptyString

4
Clocker/Panel/Notes Popover/NotesPopover.swift

@ -62,7 +62,7 @@ class NotesPopover: NSViewController {
"1 hour before", "1 hour before",
"2 hour before", "2 hour before",
"1 day before", "1 day before",
"2 days before", "2 days before"
] ]
alertPopupButton.removeAllItems() alertPopupButton.removeAllItems()
@ -200,7 +200,7 @@ class NotesPopover: NSViewController {
let attributesDictionary = [ let attributesDictionary = [
NSAttributedString.Key.font: font, NSAttributedString.Key.font: font,
NSAttributedString.Key.foregroundColor: Themer.shared().mainTextColor(), NSAttributedString.Key.foregroundColor: Themer.shared().mainTextColor(),
NSAttributedString.Key.paragraphStyle: style, NSAttributedString.Key.paragraphStyle: style
] ]
button.attributedTitle = NSAttributedString(string: title, button.attributedTitle = NSAttributedString(string: title,

2
Clocker/Panel/Notes Popover/TextViewWithPlaceholder.swift

@ -18,7 +18,7 @@ class TextViewWithPlaceholder: NSTextView {
if let placeHolderFont = NSFont(name: "Avenir", size: 14) { if let placeHolderFont = NSFont(name: "Avenir", size: 14) {
let textDict = [ let textDict = [
NSAttributedString.Key.foregroundColor: NSColor.gray, NSAttributedString.Key.foregroundColor: NSColor.gray,
NSAttributedString.Key.font: placeHolderFont, NSAttributedString.Key.font: placeHolderFont
] ]
return NSAttributedString(string: " Add your notes here.", attributes: textDict) return NSAttributedString(string: " Add your notes here.", attributes: textDict)
} }

8
Clocker/Panel/PanelController.swift

@ -47,15 +47,15 @@ class PanelController: ParentPanelController {
// Calculate window's top left point. // Calculate window's top left point.
// First, center window under status item. // First, center window under status item.
let w = CGFloat(NSWidth((window?.frame)!)) let w = CGFloat(NSWidth((window?.frame)!))
var x = CGFloat(roundf(Float(NSMidX(rect) - w / 2))) var x = CGFloat(roundf(Float(rect.midX - w / 2)))
let y = CGFloat(NSMinY(rect) - 2) let y = CGFloat(rect.minY - 2)
let kMinimumSpaceBetweenWindowAndScreenEdge: CGFloat = 10 let kMinimumSpaceBetweenWindowAndScreenEdge: CGFloat = 10
if x + w + kMinimumSpaceBetweenWindowAndScreenEdge > maxX { if x + w + kMinimumSpaceBetweenWindowAndScreenEdge > maxX {
x = maxX - w - kMinimumSpaceBetweenWindowAndScreenEdge x = maxX - w - kMinimumSpaceBetweenWindowAndScreenEdge
} }
window?.setFrameTopLeftPoint(NSMakePoint(x, y)) window?.setFrameTopLeftPoint(NSPoint(x: x, y: y))
window?.invalidateShadow() window?.invalidateShadow()
} }
@ -175,7 +175,7 @@ class PanelController: ParentPanelController {
"Show Upcoming Event View": showUpcomingEventView == "YES" ? "Yes" : "No", "Show Upcoming Event View": showUpcomingEventView == "YES" ? "Yes" : "No",
"Country": country, "Country": country,
"Calendar Access Provided": EventCenter.sharedCenter().calendarAccessGranted() ? "Yes" : "No", "Calendar Access Provided": EventCenter.sharedCenter().calendarAccessGranted() ? "Yes" : "No",
"Number of Timezones": preferences.count, "Number of Timezones": preferences.count
] ]
Logger.log(object: panelEvent, for: "openedPanel") Logger.log(object: panelEvent, for: "openedPanel")

6
Clocker/Panel/ParentPanelController.swift

@ -248,7 +248,7 @@ class ParentPanelController: NSWindowController {
let styleAttributes = [ let styleAttributes = [
NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.paragraphStyle: paragraphStyle,
NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13) ?? NSFont.systemFont(ofSize: 13), NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13) ?? NSFont.systemFont(ofSize: 13)
] ]
let leftButtonAttributedTitle = NSAttributedString(string: leftButton.title, attributes: styleAttributes) let leftButtonAttributedTitle = NSAttributedString(string: leftButton.title, attributes: styleAttributes)
@ -812,7 +812,7 @@ class ParentPanelController: NSWindowController {
let styleAttributes = [ let styleAttributes = [
NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.paragraphStyle: paragraphStyle,
NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!, NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!
] ]
leftButton.attributedTitle = NSAttributedString(string: "Not Really", attributes: styleAttributes) leftButton.attributedTitle = NSAttributedString(string: "Not Really", attributes: styleAttributes)
rightButton.attributedTitle = NSAttributedString(string: "Yes!", attributes: styleAttributes) rightButton.attributedTitle = NSAttributedString(string: "Yes!", attributes: styleAttributes)
@ -842,7 +842,7 @@ class ParentPanelController: NSWindowController {
let styleAttributes = [ let styleAttributes = [
NSAttributedString.Key.paragraphStyle: paragraphStyle, NSAttributedString.Key.paragraphStyle: paragraphStyle,
NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!, NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!
] ]
if self.leftButton.attributedTitle.string == "Not Really" { if self.leftButton.attributedTitle.string == "Not Really" {

2
Clocker/Panel/UI/PanelTableView.swift

@ -31,7 +31,7 @@ class PanelTableView: NSTableView {
let options: NSTrackingArea.Options = [ let options: NSTrackingArea.Options = [
.mouseMoved, .mouseMoved,
.mouseEnteredAndExited, .mouseEnteredAndExited,
.activeAlways, .activeAlways
] ]
let clipRect = enclosingScrollView?.contentView.bounds ?? .zero let clipRect = enclosingScrollView?.contentView.bounds ?? .zero

8
Clocker/Preferences/About/AboutViewController.swift

@ -32,7 +32,7 @@ class AboutViewController: ParentViewController {
setup() setup()
NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (notification) in NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (_) in
self.setup() self.setup()
} }
} }
@ -78,13 +78,13 @@ class AboutViewController: ParentViewController {
range: range) range: range)
originalText.addAttribute(NSAttributedString.Key.foregroundColor, originalText.addAttribute(NSAttributedString.Key.foregroundColor,
value: Themer.shared().mainTextColor(), value: Themer.shared().mainTextColor(),
range: NSMakeRange(0, underlinedButton.attributedTitle.string.count)) range: NSRange(location: 0, length: underlinedButton.attributedTitle.string.count))
originalText.addAttribute(NSAttributedString.Key.font, originalText.addAttribute(NSAttributedString.Key.font,
value: (button?.font)! , value: (button?.font)! ,
range: NSMakeRange(0, underlinedButton.attributedTitle.string.count)) range: NSRange(location: 0, length: underlinedButton.attributedTitle.string.count))
originalText.addAttribute(NSAttributedString.Key.paragraphStyle, originalText.addAttribute(NSAttributedString.Key.paragraphStyle,
value: mutableParaghStyle , value: mutableParaghStyle ,
range: NSMakeRange(0, underlinedButton.attributedTitle.string.count)) range: NSRange(location: 0, length: underlinedButton.attributedTitle.string.count))
underlinedButton.attributedTitle = originalText underlinedButton.attributedTitle = originalText
} }

2
Clocker/Preferences/App Feedback/AppFeedbackWindowController.swift

@ -146,7 +146,7 @@ class AppFeedbackWindowController: NSWindowController {
AppFeedbackConstants.CLAppFeedbackEmailProperty: email, AppFeedbackConstants.CLAppFeedbackEmailProperty: email,
AppFeedbackConstants.CLAppFeedbackFeedbackProperty: appFeedbackProperty, AppFeedbackConstants.CLAppFeedbackFeedbackProperty: appFeedbackProperty,
AppFeedbackConstants.CLOperatingSystemVersion: osVersion, AppFeedbackConstants.CLOperatingSystemVersion: osVersion,
AppFeedbackConstants.CLClockerVersion: versionInfo, AppFeedbackConstants.CLClockerVersion: versionInfo
] ]
return feedbackInfo return feedbackInfo

7
Clocker/Preferences/Appearance/AppearanceViewController.swift

@ -34,7 +34,7 @@ class AppearanceViewController: ParentViewController {
setup() setup()
NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (notification) in NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (_) in
self.setup() self.setup()
self.animateBackgroundColorChange() self.animateBackgroundColorChange()
self.view.needsDisplay = true // Let's make the color change permanent. self.view.needsDisplay = true // Let's make the color change permanent.
@ -206,7 +206,6 @@ class AppearanceViewController: ParentViewController {
} }
} }
private func refresh(panel: Bool, floating: Bool) { private func refresh(panel: Bool, floating: Bool) {
OperationQueue.main.addOperation { OperationQueue.main.addOperation {
if panel && DataStore.shared().shouldDisplay(ViewType.showAppInForeground) == false { if panel && DataStore.shared().shouldDisplay(ViewType.showAppInForeground) == false {
@ -248,7 +247,6 @@ class AppearanceViewController: ParentViewController {
updateStatusItem() updateStatusItem()
} }
private func updateStatusItem() { private func updateStatusItem() {
guard let statusItem = (NSApplication.shared.delegate as? AppDelegate)?.statusItemForPanel() else { guard let statusItem = (NSApplication.shared.delegate as? AppDelegate)?.statusItemForPanel() else {
return return
@ -270,7 +268,6 @@ class AppearanceViewController: ParentViewController {
statusItem.setupStatusItem() statusItem.setupStatusItem()
if sender.selectedSegment == 0 { if sender.selectedSegment == 0 {
Logger.log(object: ["Context": "In Appearance View"], for: "Switched to Compact Mode") Logger.log(object: ["Context": "In Appearance View"], for: "Switched to Compact Mode")
} else { } else {
@ -282,6 +279,6 @@ class AppearanceViewController: ParentViewController {
// We don't support showing day or date in the menubar for compact mode yet. // We don't support showing day or date in the menubar for compact mode yet.
// Disable those options to let the user know. // Disable those options to let the user know.
private func updateMenubarControls(_ isEnabled: Bool) { private func updateMenubarControls(_ isEnabled: Bool) {
[includePlaceNameControl, includeDateInMenubarControl].forEach{ $0?.isEnabled = isEnabled } [includePlaceNameControl, includeDateInMenubarControl].forEach { $0?.isEnabled = isEnabled }
} }
} }

7
Clocker/Preferences/Calendar/CalendarViewController.swift

@ -11,7 +11,7 @@ class ClockerTextBackgroundView: NSView {
layer?.masksToBounds = false layer?.masksToBounds = false
layer?.backgroundColor = Themer.shared().textBackgroundColor().cgColor layer?.backgroundColor = Themer.shared().textBackgroundColor().cgColor
NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (notification) in NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (_) in
self.layer?.backgroundColor = Themer.shared().textBackgroundColor().cgColor self.layer?.backgroundColor = Themer.shared().textBackgroundColor().cgColor
} }
} }
@ -48,7 +48,7 @@ class CalendarViewController: ParentViewController {
name: .calendarAccessGranted, name: .calendarAccessGranted,
object: nil) object: nil)
NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (notification) in NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (_) in
self.setup() self.setup()
} }
@ -243,7 +243,6 @@ extension CalendarViewController: NSTableViewDelegate {
return message return message
} }
if let currentSource = calendars[row] as? CalendarInfo, let calendarCell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "calendarCellView"), owner: self) as? CalendarTableViewCell { if let currentSource = calendars[row] as? CalendarInfo, let calendarCell = tableView.makeView(withIdentifier: NSUserInterfaceItemIdentifier(rawValue: "calendarCellView"), owner: self) as? CalendarTableViewCell {
calendarCell.calendarName.stringValue = currentSource.calendar.title calendarCell.calendarName.stringValue = currentSource.calendar.title
calendarCell.calendarSelected.state = currentSource.selected ? NSControl.StateValue.on : NSControl.StateValue.off calendarCell.calendarSelected.state = currentSource.selected ? NSControl.StateValue.on : NSControl.StateValue.off
@ -297,5 +296,3 @@ class CalendarTableViewCell: NSTableCellView {
@IBOutlet var calendarName: NSTextField! @IBOutlet var calendarName: NSTextField!
@IBOutlet var calendarSelected: NSButton! @IBOutlet var calendarSelected: NSButton!
} }

10
Clocker/Preferences/General/PreferencesViewController.swift

@ -240,7 +240,7 @@ class PreferencesViewController: ParentViewController {
[timezoneNameSortButton, labelSortButton, timezoneSortButton].forEach { [timezoneNameSortButton, labelSortButton, timezoneSortButton].forEach {
$0?.attributedTitle = NSAttributedString(string: $0?.title ?? CLEmptyString, attributes: [ $0?.attributedTitle = NSAttributedString(string: $0?.title ?? CLEmptyString, attributes: [
NSAttributedString.Key.foregroundColor: Themer.shared().mainTextColor(), NSAttributedString.Key.foregroundColor: Themer.shared().mainTextColor(),
NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!, NSAttributedString.Key.font: NSFont(name: "Avenir-Light", size: 13)!
]) ])
} }
@ -410,7 +410,7 @@ extension PreferencesViewController: NSTableViewDataSource, NSTableViewDelegate
if selectedTimeZones.count > row { if selectedTimeZones.count > row {
Logger.log(object: [ Logger.log(object: [
"Old Label": dataObject.customLabel ?? "Error", "Old Label": dataObject.customLabel ?? "Error",
"New Label": formattedValue, "New Label": formattedValue
], ],
for: "Custom Label Changed") for: "Custom Label Changed")
@ -423,7 +423,7 @@ extension PreferencesViewController: NSTableViewDataSource, NSTableViewDelegate
Logger.log(object: [ Logger.log(object: [
"MethodName": "SetObjectValue", "MethodName": "SetObjectValue",
"Selected Timezone Count": selectedTimeZones.count, "Selected Timezone Count": selectedTimeZones.count,
"Current Row": row, "Current Row": row
], ],
for: "Error in selected row count") for: "Error in selected row count")
} }
@ -696,7 +696,7 @@ extension PreferencesViewController {
CLTimezoneName: formattedAddress, CLTimezoneName: formattedAddress,
CLCustomLabel: formattedAddress, CLCustomLabel: formattedAddress,
CLTimezoneID: CLEmptyString, CLTimezoneID: CLEmptyString,
CLPlaceIdentifier: result.placeId, CLPlaceIdentifier: result.placeId
] as [String: Any] ] as [String: Any]
self.filteredArray.append(TimezoneData(with: totalPackage)) self.filteredArray.append(TimezoneData(with: totalPackage))
@ -793,7 +793,7 @@ extension PreferencesViewController {
"latitude": dataObject.latitude!, "latitude": dataObject.latitude!,
"longitude": dataObject.longitude!, "longitude": dataObject.longitude!,
"nextUpdate": CLEmptyString, "nextUpdate": CLEmptyString,
CLCustomLabel: filteredAddress, CLCustomLabel: filteredAddress
] as [String: Any] ] as [String: Any]
let timezoneObject = TimezoneData(with: newTimeZone) let timezoneObject = TimezoneData(with: newTimeZone)

2
Clocker/Preferences/OneWindowController.swift

@ -30,7 +30,7 @@ class OneWindowController: NSWindowController {
super.windowDidLoad() super.windowDidLoad()
setup() setup()
NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (notification) in NotificationCenter.default.addObserver(forName: .themeDidChangeNotification, object: nil, queue: OperationQueue.main) { (_) in
NSAnimationContext.runAnimationGroup({ (context) in NSAnimationContext.runAnimationGroup({ (context) in
context.duration = 1 context.duration = 1

2
Clocker/Preferences/ParentViewController.swift

@ -9,7 +9,7 @@ class ParentViewController: NSViewController {
view.wantsLayer = true view.wantsLayer = true
} }
preferredContentSize = NSMakeSize(view.frame.size.width, view.frame.size.height) preferredContentSize = NSSize(width: view.frame.size.width, height: view.frame.size.height)
} }
} }

533
xcodebuild.log

@ -0,0 +1,533 @@
note: Using new build system
note: Planning build
note: Constructing build description
ProcessInfoPlistFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework/Versions/A/Resources/Info.plist /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master/Library/Info.plist (in target: ShortcutRecorder.framework)
cd /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master
builtin-infoPlistUtility /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master/Library/Info.plist -producttype com.apple.product-type.framework -expandbuildsettings -platform macosx -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework/Versions/A/Resources/Info.plist
GenerateDSYMFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework.dSYM /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework/Versions/A/ShortcutRecorder (in target: ShortcutRecorder.framework)
cd /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master
/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework/Versions/A/ShortcutRecorder -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework.dSYM
ProcessProductPackaging "" /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/ClockerHelper.build/ClockerHelper.app.xcent (in target: ClockerHelper)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
Entitlements:
{
"com.apple.security.app-sandbox" = 1;
"com.apple.security.get-task-allow" = 1;
}
builtin-productPackagingUtility -entitlements -format xml -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/ClockerHelper.build/ClockerHelper.app.xcent
ProcessInfoPlistFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app/Contents/Info.plist /Users/ban/Documents/GitHub/Clocker/Clocker/ClockerHelper/Info.plist (in target: ClockerHelper)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-infoPlistUtility /Users/ban/Documents/GitHub/Clocker/Clocker/ClockerHelper/Info.plist -producttype com.apple.product-type.application -genpkginfo /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app/Contents/PkgInfo -expandbuildsettings -platform macosx -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/ClockerHelper.build/Base.lproj/Main-SBPartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/ClockerHelper.build/assetcatalog_generated_info.plist -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app/Contents/Info.plist
CodeSign /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app (in target: ClockerHelper)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
export CODESIGN_ALLOCATE=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "-"
/usr/bin/codesign --force --sign - --entitlements /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/ClockerHelper.build/ClockerHelper.app.xcent --timestamp=none /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app
/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app: replacing existing signature
ProcessInfoPlistFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework/Versions/A/Resources/Info.plist /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master/PTHotKey/Info.plist (in target: PTHotKey.framework)
cd /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master
builtin-infoPlistUtility /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master/PTHotKey/Info.plist -producttype com.apple.product-type.framework -expandbuildsettings -platform macosx -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework/Versions/A/Resources/Info.plist
GenerateDSYMFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework.dSYM /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework/Versions/A/PTHotKey (in target: PTHotKey.framework)
cd /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/ShortcutRecorder-master
/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework/Versions/A/PTHotKey -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework.dSYM
ProcessProductPackaging "" /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Clocker.app.xcent (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
Entitlements:
{
"com.apple.security.app-sandbox" = 1;
"com.apple.security.get-task-allow" = 1;
"com.apple.security.network.client" = 1;
"com.apple.security.personal-information.calendars" = 1;
"com.apple.security.temporary-exception.apple-events" = (
"com.apple.reminders"
);
}
builtin-productPackagingUtility -entitlements -format xml -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Clocker.app.xcent
PhaseScriptExecution Run\ Script /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Script-9A4379201BEC220200F4E27F.sh (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
/bin/sh -c /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Script-9A4379201BEC220200F4E27F.sh
PBXCp /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Library/LoginItems/ClockerHelper.app (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -exclude Headers -exclude PrivateHeaders -exclude Modules -exclude \*.tbd -resolve-src-symlinks /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ClockerHelper.app /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Library/LoginItems
ProcessInfoPlistFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Info.plist /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/Clocker-Info.plist (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-infoPlistUtility /Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/Clocker-Info.plist -producttype com.apple.product-type.application -genpkginfo /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/PkgInfo -expandbuildsettings -platform macosx -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/AppFeedbackWindow-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Preferences-SBPartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/en.lproj/Panel-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/FloatingWindow-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/WelcomeView-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Onboarding-SBPartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/NotesPopover-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/MainMenu-PartialInfo.plist -additionalcontentfile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/assetcatalog_generated_info.plist -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Info.plist
GenerateDSYMFile /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app.dSYM /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/MacOS/Clocker (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/dsymutil /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/MacOS/Clocker -o /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app.dSYM
ValidateEmbeddedBinary /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Library/LoginItems/ClockerHelper.app (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-embeddedBinaryValidationUtility /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Library/LoginItems/ClockerHelper.app -signing-cert - -info-plist-path /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Info.plist
PBXCp /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/ShortcutRecorder.framework (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -exclude Headers -exclude PrivateHeaders -exclude Modules -exclude \*.tbd -resolve-src-symlinks /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/ShortcutRecorder.framework /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks
PBXCp /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/PTHotKey.framework (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
builtin-copy -exclude .DS_Store -exclude CVS -exclude .svn -exclude .git -exclude .hg -exclude Headers -exclude PrivateHeaders -exclude Modules -exclude \*.tbd -resolve-src-symlinks /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/PTHotKey.framework /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks
CodeSign /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/PTHotKey.framework/Versions/A (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
export CODESIGN_ALLOCATE=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "-"
/usr/bin/codesign --force --sign - --timestamp=none --preserve-metadata=identifier,entitlements,flags /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/PTHotKey.framework/Versions/A
CodeSign /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/ShortcutRecorder.framework/Versions/A (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
export CODESIGN_ALLOCATE=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "-"
/usr/bin/codesign --force --sign - --timestamp=none --preserve-metadata=identifier,entitlements,flags /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Frameworks/ShortcutRecorder.framework/Versions/A
PhaseScriptExecution Move\ .app\ to\ Applications /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Script-C2A632A020EAC5EE00EB6BEA.sh (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
export ACTION=build
export ALTERNATE_GROUP=1876110778
export ALTERNATE_MODE=u+w,go-w,a+rX
export ALTERNATE_OWNER=ban
export ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES=NO
export ALWAYS_SEARCH_USER_PATHS=NO
export ALWAYS_USE_SEPARATE_HEADERMAPS=NO
export APPLE_INTERNAL_DEVELOPER_DIR=/AppleInternal/Developer
export APPLE_INTERNAL_DIR=/AppleInternal
export APPLE_INTERNAL_DOCUMENTATION_DIR=/AppleInternal/Documentation
export APPLE_INTERNAL_LIBRARY_DIR=/AppleInternal/Library
export APPLE_INTERNAL_TOOLS=/AppleInternal/Developer/Tools
export APPLICATION_EXTENSION_API_ONLY=NO
export APPLY_RULES_IN_COPY_FILES=NO
export ARCHS=x86_64
export ARCHS_STANDARD=x86_64
export ARCHS_STANDARD_32_64_BIT="x86_64 i386"
export ARCHS_STANDARD_32_BIT=i386
export ARCHS_STANDARD_64_BIT=x86_64
export ARCHS_STANDARD_INCLUDING_64_BIT=x86_64
export ASSETCATALOG_COMPILER_APPICON_NAME=AppIcon
export AVAILABLE_PLATFORMS="appletvos appletvsimulator iphoneos iphonesimulator macosx watchos watchsimulator"
export BITCODE_GENERATION_MODE=marker
export BUILD_ACTIVE_RESOURCES_ONLY=NO
export BUILD_COMPONENTS="headers build"
export BUILD_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products
export BUILD_ROOT=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products
export BUILD_STYLE=
export BUILD_VARIANTS=normal
export BUILT_PRODUCTS_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug
export CACHE_ROOT=/var/folders/r7/3v42n4q52fsft8jwnm5htq3s0wgch_/C/com.apple.DeveloperTools/10.2-10E125/Xcode
export CCHROOT=/var/folders/r7/3v42n4q52fsft8jwnm5htq3s0wgch_/C/com.apple.DeveloperTools/10.2-10E125/Xcode
export CHMOD=/bin/chmod
export CHOWN=/usr/sbin/chown
export CLANG_ANALYZER_LOCALIZABILITY_NONLOCALIZED=YES
export CLANG_COVERAGE_MAPPING=YES
export CLANG_ENABLE_MODULES=YES
export CLANG_ENABLE_OBJC_ARC=YES
export CLANG_MODULES_BUILD_SESSION_FILE=/Users/ban/Library/Developer/Xcode/DerivedData/ModuleCache.noindex/Session.modulevalidation
export CLANG_PROFILE_DATA_DIRECTORY=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/ProfileData
export CLANG_WARN_BLOCK_CAPTURE_AUTORELEASING=YES
export CLANG_WARN_BOOL_CONVERSION=YES
export CLANG_WARN_COMMA=YES
export CLANG_WARN_CONSTANT_CONVERSION=YES
export CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS=YES
export CLANG_WARN_EMPTY_BODY=YES
export CLANG_WARN_ENUM_CONVERSION=YES
export CLANG_WARN_INFINITE_RECURSION=YES
export CLANG_WARN_INT_CONVERSION=YES
export CLANG_WARN_NON_LITERAL_NULL_CONVERSION=YES
export CLANG_WARN_OBJC_IMPLICIT_RETAIN_SELF=YES
export CLANG_WARN_OBJC_LITERAL_CONVERSION=YES
export CLANG_WARN_RANGE_LOOP_ANALYSIS=YES
export CLANG_WARN_STRICT_PROTOTYPES=YES
export CLANG_WARN_SUSPICIOUS_MOVE=YES
export CLANG_WARN_UNREACHABLE_CODE=YES
export CLANG_WARN__DUPLICATE_METHOD_MATCH=YES
export CLASS_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/JavaClasses
export CLEAN_PRECOMPS=YES
export CLONE_HEADERS=NO
export CODESIGNING_FOLDER_PATH=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app
export CODE_SIGNING_ALLOWED=YES
export CODE_SIGN_ENTITLEMENTS=Clocker/Clocker.entitlements
export CODE_SIGN_IDENTITY=-
export CODE_SIGN_INJECT_BASE_ENTITLEMENTS=YES
export CODE_SIGN_STYLE=Manual
export COLOR_DIAGNOSTICS=NO
export COMBINE_HIDPI_IMAGES=YES
export COMPILER_INDEX_STORE_ENABLE=Default
export COMPOSITE_SDK_DIRS=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/CompositeSDKs
export COMPRESS_PNG_FILES=NO
export CONFIGURATION=Debug
export CONFIGURATION_BUILD_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug
export CONFIGURATION_TEMP_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug
export CONTENTS_FOLDER_PATH=Clocker.app/Contents
export COPYING_PRESERVES_HFS_DATA=NO
export COPY_HEADERS_RUN_UNIFDEF=NO
export COPY_PHASE_STRIP=NO
export COPY_RESOURCES_FROM_STATIC_FRAMEWORKS=YES
export CP=/bin/cp
export CREATE_INFOPLIST_SECTION_IN_BINARY=NO
export CURRENT_ARCH=undefined_arch
export CURRENT_VARIANT=normal
export DEAD_CODE_STRIPPING=NO
export DEBUGGING_SYMBOLS=YES
export DEBUG_INFORMATION_FORMAT=dwarf-with-dsym
export DEFAULT_COMPILER=com.apple.compilers.llvm.clang.1_0
export DEFAULT_KEXT_INSTALL_PATH=/System/Library/Extensions
export DEFINES_MODULE=YES
export DEPLOYMENT_LOCATION=NO
export DEPLOYMENT_POSTPROCESSING=NO
export DEPLOYMENT_TARGET_CLANG_ENV_NAME=MACOSX_DEPLOYMENT_TARGET
export DEPLOYMENT_TARGET_CLANG_FLAG_NAME=mmacosx-version-min
export DEPLOYMENT_TARGET_LD_ENV_NAME=MACOSX_DEPLOYMENT_TARGET
export DEPLOYMENT_TARGET_LD_FLAG_NAME=macosx_version_min
export DEPLOYMENT_TARGET_SETTING_NAME=MACOSX_DEPLOYMENT_TARGET
export DEPLOYMENT_TARGET_SUGGESTED_VALUES="10.6 10.7 10.8 10.9 10.10 10.11 10.12 10.13 10.14"
export DERIVED_FILES_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/DerivedSources
export DERIVED_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/DerivedSources
export DERIVED_SOURCES_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/DerivedSources
export DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications
export DEVELOPER_BIN_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr/bin
export DEVELOPER_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer
export DEVELOPER_FRAMEWORKS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Library/Frameworks
export DEVELOPER_FRAMEWORKS_DIR_QUOTED=/Applications/Xcode_10.2_fb.app/Contents/Developer/Library/Frameworks
export DEVELOPER_LIBRARY_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Library
export DEVELOPER_SDK_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
export DEVELOPER_TOOLS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Tools
export DEVELOPER_USR_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr
export DEVELOPMENT_LANGUAGE=English
export DOCUMENTATION_FOLDER_PATH=Clocker.app/Contents/Resources/English.lproj/Documentation
export DO_HEADER_SCANNING_IN_JAM=NO
export DSTROOT=/tmp/Clocker.dst
export DT_TOOLCHAIN_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export DWARF_DSYM_FILE_NAME=Clocker.app.dSYM
export DWARF_DSYM_FILE_SHOULD_ACCOMPANY_PRODUCT=NO
export DWARF_DSYM_FOLDER_PATH=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug
export EMBEDDED_CONTENT_CONTAINS_SWIFT=NO
export EMBEDDED_PROFILE_NAME=embedded.provisionprofile
export EMBED_ASSET_PACKS_IN_PRODUCT_BUNDLE=NO
export ENABLE_BITCODE=NO
export ENABLE_DEFAULT_HEADER_SEARCH_PATHS=YES
export ENABLE_HEADER_DEPENDENCIES=YES
export ENABLE_ON_DEMAND_RESOURCES=NO
export ENABLE_STRICT_OBJC_MSGSEND=YES
export ENABLE_TESTABILITY=YES
export EXCLUDED_INSTALLSRC_SUBDIRECTORY_PATTERNS=".DS_Store .svn .git .hg CVS"
export EXCLUDED_RECURSIVE_SEARCH_PATH_SUBDIRECTORIES="*.nib *.lproj *.framework *.gch *.xcode* *.xcassets (*) .DS_Store CVS .svn .git .hg *.pbproj *.pbxproj"
export EXECUTABLES_FOLDER_PATH=Clocker.app/Contents/Executables
export EXECUTABLE_FOLDER_PATH=Clocker.app/Contents/MacOS
export EXECUTABLE_NAME=Clocker
export EXECUTABLE_PATH=Clocker.app/Contents/MacOS/Clocker
export EXPANDED_CODE_SIGN_IDENTITY=-
export EXPANDED_CODE_SIGN_IDENTITY_NAME=-
export FILE_LIST=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects/LinkFileList
export FIXED_FILES_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/FixedFiles
export FRAMEWORKS_FOLDER_PATH=Clocker.app/Contents/Frameworks
export FRAMEWORK_FLAG_PREFIX=-framework
export FRAMEWORK_SEARCH_PATHS="/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug /Users/ban/Documents/GitHub/Clocker/Clocker /Users/ban/Documents/GitHub/Clocker/Clocker/Frameworks"
export FRAMEWORK_VERSION=A
export FULL_PRODUCT_NAME=Clocker.app
export GCC3_VERSION=3.3
export GCC_C_LANGUAGE_STANDARD=gnu99
export GCC_DYNAMIC_NO_PIC=NO
export GCC_ENABLE_OBJC_EXCEPTIONS=YES
export GCC_INLINES_ARE_PRIVATE_EXTERN=YES
export GCC_NO_COMMON_BLOCKS=YES
export GCC_OPTIMIZATION_LEVEL=0
export GCC_PFE_FILE_C_DIALECTS="c objective-c c++ objective-c++"
export GCC_PRECOMPILE_PREFIX_HEADER=YES
export GCC_PREFIX_HEADER=Clocker/Clocker-Prefix.pch
export GCC_PREPROCESSOR_DEFINITIONS=DEBUG
export GCC_SYMBOLS_PRIVATE_EXTERN=NO
export GCC_TREAT_WARNINGS_AS_ERRORS=NO
export GCC_VERSION=com.apple.compilers.llvm.clang.1_0
export GCC_VERSION_IDENTIFIER=com_apple_compilers_llvm_clang_1_0
export GCC_WARN_64_TO_32_BIT_CONVERSION=YES
export GCC_WARN_ABOUT_DEPRECATED_FUNCTIONS=YES
export GCC_WARN_ABOUT_MISSING_PROTOTYPES=YES
export GCC_WARN_ABOUT_RETURN_TYPE=YES
export GCC_WARN_UNDECLARED_SELECTOR=YES
export GCC_WARN_UNINITIALIZED_AUTOS=YES
export GCC_WARN_UNUSED_FUNCTION=YES
export GCC_WARN_UNUSED_LABEL=YES
export GCC_WARN_UNUSED_PARAMETER=YES
export GCC_WARN_UNUSED_VARIABLE=YES
export GENERATE_MASTER_OBJECT_FILE=NO
export GENERATE_PKGINFO_FILE=YES
export GENERATE_PROFILING_CODE=NO
export GENERATE_TEXT_BASED_STUBS=NO
export GID=1876110778
export GROUP=1876110778
export HEADERMAP_INCLUDES_FLAT_ENTRIES_FOR_TARGET_BEING_BUILT=YES
export HEADERMAP_INCLUDES_FRAMEWORK_ENTRIES_FOR_ALL_PRODUCT_TYPES=YES
export HEADERMAP_INCLUDES_NONPUBLIC_NONPRIVATE_HEADERS=YES
export HEADERMAP_INCLUDES_PROJECT_HEADERS=YES
export HEADERMAP_USES_FRAMEWORK_PREFIX_ENTRIES=YES
export HEADERMAP_USES_VFS=YES
export HEADER_SEARCH_PATHS="/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/include "
export HIDE_BITCODE_SYMBOLS=YES
export HOME=/Users/ban
export ICONV=/usr/bin/iconv
export INFOPLIST_EXPAND_BUILD_SETTINGS=YES
export INFOPLIST_FILE=Clocker/Clocker-Info.plist
export INFOPLIST_OUTPUT_FORMAT=same-as-input
export INFOPLIST_PATH=Clocker.app/Contents/Info.plist
export INFOPLIST_PREPROCESS=NO
export INFOSTRINGS_PATH=Clocker.app/Contents/Resources/English.lproj/InfoPlist.strings
export INLINE_PRIVATE_FRAMEWORKS=NO
export INSTALLHDRS_COPY_PHASE=NO
export INSTALLHDRS_SCRIPT_PHASE=NO
export INSTALL_DIR=/tmp/Clocker.dst/Applications
export INSTALL_GROUP=1876110778
export INSTALL_MODE_FLAG=u+w,go-w,a+rX
export INSTALL_OWNER=ban
export INSTALL_PATH=/Applications
export INSTALL_ROOT=/tmp/Clocker.dst
export JAVAC_DEFAULT_FLAGS="-J-Xms64m -J-XX:NewSize=4M -J-Dfile.encoding=UTF8"
export JAVA_APP_STUB=/System/Library/Frameworks/JavaVM.framework/Resources/MacOS/JavaApplicationStub
export JAVA_ARCHIVE_CLASSES=YES
export JAVA_ARCHIVE_TYPE=JAR
export JAVA_COMPILER=/usr/bin/javac
export JAVA_FOLDER_PATH=Clocker.app/Contents/Resources/Java
export JAVA_FRAMEWORK_RESOURCES_DIRS=Resources
export JAVA_JAR_FLAGS=cv
export JAVA_SOURCE_SUBDIR=.
export JAVA_USE_DEPENDENCIES=YES
export JAVA_ZIP_FLAGS=-urg
export JIKES_DEFAULT_FLAGS="+E +OLDCSO"
export KASAN_DEFAULT_CFLAGS="-DKASAN=1 -fsanitize=address -mllvm -asan-globals-live-support -mllvm -asan-force-dynamic-shadow"
export KEEP_PRIVATE_EXTERNS=NO
export LD_DEPENDENCY_INFO_FILE=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects-normal/undefined_arch/Clocker_dependency_info.dat
export LD_GENERATE_MAP_FILE=NO
export LD_MAP_FILE_PATH=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Clocker-LinkMap-normal-undefined_arch.txt
export LD_NO_PIE=NO
export LD_QUOTE_LINKER_ARGUMENTS_FOR_COMPILER_DRIVER=YES
export LD_RUNPATH_SEARCH_PATHS=" @executable_path/../Frameworks"
export LEGACY_DEVELOPER_DIR=/Applications/Xcode_10.2_fb.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/SharedSupport/Developer
export LEX=lex
export LIBRARY_FLAG_NOSPACE=YES
export LIBRARY_FLAG_PREFIX=-l
export LIBRARY_KEXT_INSTALL_PATH=/Library/Extensions
export LIBRARY_SEARCH_PATHS="/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug "
export LINKER_DISPLAYS_MANGLED_NAMES=NO
export LINK_FILE_LIST_normal_x86_64=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects-normal/x86_64/Clocker.LinkFileList
export LINK_WITH_STANDARD_LIBRARIES=YES
export LOCALIZED_RESOURCES_FOLDER_PATH=Clocker.app/Contents/Resources/English.lproj
export LOCALIZED_STRING_MACRO_NAMES="NSLocalizedString CFLocalizedString"
export LOCAL_ADMIN_APPS_DIR=/Applications/Utilities
export LOCAL_APPS_DIR=/Applications
export LOCAL_DEVELOPER_DIR=/Library/Developer
export LOCAL_LIBRARY_DIR=/Library
export LOCROOT=/Users/ban/Documents/GitHub/Clocker/Clocker
export LOCSYMROOT=/Users/ban/Documents/GitHub/Clocker/Clocker
export MACH_O_TYPE=mh_execute
export MACOSX_DEPLOYMENT_TARGET=10.12
export MAC_OS_X_PRODUCT_BUILD_VERSION=18E226
export MAC_OS_X_VERSION_ACTUAL=101404
export MAC_OS_X_VERSION_MAJOR=101400
export MAC_OS_X_VERSION_MINOR=1404
export METAL_LIBRARY_FILE_BASE=default
export METAL_LIBRARY_OUTPUT_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app/Contents/Resources
export MODULE_CACHE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/ModuleCache.noindex
export NATIVE_ARCH=i386
export NATIVE_ARCH_32_BIT=i386
export NATIVE_ARCH_64_BIT=x86_64
export NATIVE_ARCH_ACTUAL=x86_64
export NO_COMMON=YES
export OBJECT_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects
export OBJECT_FILE_DIR_normal=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects-normal
export OBJROOT=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex
export ONLY_ACTIVE_ARCH=NO
export OS=MACOS
export OSAC=/usr/bin/osacompile
export OTHER_SWIFT_FLAGS="-D DEBUG"
export PACKAGE_TYPE=com.apple.package-type.wrapper.application
export PASCAL_STRINGS=YES
export PATH=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/local/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/libexec:/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/usr/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/usr/local/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/usr/local/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/usr/bin:/Applications/Xcode_10.2_fb.app/Contents/Developer/usr/local/bin:/opt/facebook/bin:/usr/local/bin:/usr/bin:/bin:/usr/sbin:/sbin:/opt/facebook/bin/biggrep:/opt/facebook/nuclide/latest/nuclide/pkg/fb-on-demand-cli/bin:/opt/facebook/ops/scripts/chef:/opt/homebrew/bin:/usr/local/munki:/opt/facebook/hg/bin
export PATH_PREFIXES_EXCLUDED_FROM_HEADER_DEPENDENCIES="/usr/include /usr/local/include /System/Library/Frameworks /System/Library/PrivateFrameworks /Applications/Xcode_10.2_fb.app/Contents/Developer/Headers /Applications/Xcode_10.2_fb.app/Contents/Developer/SDKs /Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms"
export PBDEVELOPMENTPLIST_PATH=Clocker.app/Contents/pbdevelopment.plist
export PER_ARCH_OBJECT_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects-normal/undefined_arch
export PER_VARIANT_OBJECT_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Objects-normal
export PKGINFO_FILE_PATH=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/PkgInfo
export PKGINFO_PATH=Clocker.app/Contents/PkgInfo
export PLATFORM_DEVELOPER_APPLICATIONS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications
export PLATFORM_DEVELOPER_BIN_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr/bin
export PLATFORM_DEVELOPER_LIBRARY_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Library
export PLATFORM_DEVELOPER_SDK_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs
export PLATFORM_DEVELOPER_TOOLS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Tools
export PLATFORM_DEVELOPER_USR_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr
export PLATFORM_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform
export PLATFORM_DISPLAY_NAME=macOS
export PLATFORM_NAME=macosx
export PLATFORM_PREFERRED_ARCH=x86_64
export PLATFORM_PRODUCT_BUILD_VERSION=10E125
export PLIST_FILE_OUTPUT_FORMAT=same-as-input
export PLUGINS_FOLDER_PATH=Clocker.app/Contents/PlugIns
export PRECOMPS_INCLUDE_HEADERS_FROM_BUILT_PRODUCTS_DIR=YES
export PRECOMP_DESTINATION_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/PrefixHeaders
export PRESERVE_DEAD_CODE_INITS_AND_TERMS=NO
export PRIVATE_HEADERS_FOLDER_PATH=Clocker.app/Contents/PrivateHeaders
export PRODUCT_BUNDLE_IDENTIFIER=com.abhishek.Clocker
export PRODUCT_MODULE_NAME=Clocker
export PRODUCT_NAME=Clocker
export PRODUCT_SETTINGS_PATH=/Users/ban/Documents/GitHub/Clocker/Clocker/Clocker/Clocker-Info.plist
export PRODUCT_TYPE=com.apple.product-type.application
export PROFILING_CODE=NO
export PROJECT=Clocker
export PROJECT_DERIVED_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/DerivedSources
export PROJECT_DIR=/Users/ban/Documents/GitHub/Clocker/Clocker
export PROJECT_FILE_PATH=/Users/ban/Documents/GitHub/Clocker/Clocker/Clocker.xcodeproj
export PROJECT_NAME=Clocker
export PROJECT_TEMP_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build
export PROJECT_TEMP_ROOT=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex
export PUBLIC_HEADERS_FOLDER_PATH=Clocker.app/Contents/Headers
export RECURSIVE_SEARCH_PATHS_FOLLOW_SYMLINKS=YES
export REMOVE_CVS_FROM_RESOURCES=YES
export REMOVE_GIT_FROM_RESOURCES=YES
export REMOVE_HEADERS_FROM_EMBEDDED_BUNDLES=YES
export REMOVE_HG_FROM_RESOURCES=YES
export REMOVE_SVN_FROM_RESOURCES=YES
export REZ_COLLECTOR_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/ResourceManagerResources
export REZ_OBJECTS_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/ResourceManagerResources/Objects
export REZ_SEARCH_PATHS="/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug "
export SCAN_ALL_SOURCE_FILES_FOR_INCLUDES=NO
export SCRIPTS_FOLDER_PATH=Clocker.app/Contents/Resources/Scripts
export SCRIPT_INPUT_FILE_COUNT=0
export SCRIPT_INPUT_FILE_LIST_COUNT=0
export SCRIPT_OUTPUT_FILE_COUNT=0
export SCRIPT_OUTPUT_FILE_LIST_COUNT=0
export SDKROOT=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
export SDK_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
export SDK_DIR_macosx10_14=/Applications/Xcode_10.2_fb.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.14.sdk
export SDK_NAME=macosx10.14
export SDK_NAMES=macosx10.14
export SDK_PRODUCT_BUILD_VERSION=18E219
export SDK_VERSION=10.14
export SDK_VERSION_ACTUAL=101400
export SDK_VERSION_MAJOR=101400
export SDK_VERSION_MINOR=1400
export SED=/usr/bin/sed
export SEPARATE_STRIP=NO
export SEPARATE_SYMBOL_EDIT=NO
export SET_DIR_MODE_OWNER_GROUP=YES
export SET_FILE_MODE_OWNER_GROUP=NO
export SHALLOW_BUNDLE=NO
export SHARED_DERIVED_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/DerivedSources
export SHARED_FRAMEWORKS_FOLDER_PATH=Clocker.app/Contents/SharedFrameworks
export SHARED_PRECOMPS_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/PrecompiledHeaders
export SHARED_SUPPORT_FOLDER_PATH=Clocker.app/Contents/SharedSupport
export SKIP_INSTALL=NO
export SOURCE_ROOT=/Users/ban/Documents/GitHub/Clocker/Clocker
export SRCROOT=/Users/ban/Documents/GitHub/Clocker/Clocker
export STRINGS_FILE_OUTPUT_ENCODING=UTF-16
export STRIP_BITCODE_FROM_COPIED_FILES=NO
export STRIP_INSTALLED_PRODUCT=YES
export STRIP_PNG_TEXT=NO
export STRIP_STYLE=all
export STRIP_SWIFT_SYMBOLS=YES
export SUPPORTED_PLATFORMS=macosx
export SUPPORTS_TEXT_BASED_API=NO
export SWIFT_OBJC_BRIDGING_HEADER=Clocker-Bridging-Header.h
export SWIFT_OPTIMIZATION_LEVEL=-Onone
export SWIFT_PLATFORM_TARGET_PREFIX=macosx
export SWIFT_VERSION=5.0
export SYMROOT=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products
export SYSTEM_ADMIN_APPS_DIR=/Applications/Utilities
export SYSTEM_APPS_DIR=/Applications
export SYSTEM_CORE_SERVICES_DIR=/System/Library/CoreServices
export SYSTEM_DEMOS_DIR=/Applications/Extras
export SYSTEM_DEVELOPER_APPS_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications
export SYSTEM_DEVELOPER_BIN_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr/bin
export SYSTEM_DEVELOPER_DEMOS_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications/Utilities/Built Examples"
export SYSTEM_DEVELOPER_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer
export SYSTEM_DEVELOPER_DOC_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/ADC Reference Library"
export SYSTEM_DEVELOPER_GRAPHICS_TOOLS_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications/Graphics Tools"
export SYSTEM_DEVELOPER_JAVA_TOOLS_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications/Java Tools"
export SYSTEM_DEVELOPER_PERFORMANCE_TOOLS_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications/Performance Tools"
export SYSTEM_DEVELOPER_RELEASENOTES_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/ADC Reference Library/releasenotes"
export SYSTEM_DEVELOPER_TOOLS=/Applications/Xcode_10.2_fb.app/Contents/Developer/Tools
export SYSTEM_DEVELOPER_TOOLS_DOC_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/ADC Reference Library/documentation/DeveloperTools"
export SYSTEM_DEVELOPER_TOOLS_RELEASENOTES_DIR="/Applications/Xcode_10.2_fb.app/Contents/Developer/ADC Reference Library/releasenotes/DeveloperTools"
export SYSTEM_DEVELOPER_USR_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/usr
export SYSTEM_DEVELOPER_UTILITIES_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Applications/Utilities
export SYSTEM_DOCUMENTATION_DIR=/Library/Documentation
export SYSTEM_KEXT_INSTALL_PATH=/System/Library/Extensions
export SYSTEM_LIBRARY_DIR=/System/Library
export TAPI_VERIFY_MODE=ErrorsOnly
export TARGETNAME=Clocker
export TARGET_BUILD_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug
export TARGET_NAME=Clocker
export TARGET_TEMP_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build
export TEMP_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build
export TEMP_FILES_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build
export TEMP_FILE_DIR=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build
export TEMP_ROOT=/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex
export TEST_HOST=Clocker
export TOOLCHAINS=com.apple.dt.toolchain.XcodeDefault
export TOOLCHAIN_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain
export TREAT_MISSING_BASELINES_AS_TEST_FAILURES=NO
export UID=1103606282
export UNLOCALIZED_RESOURCES_FOLDER_PATH=Clocker.app/Contents/Resources
export UNSTRIPPED_PRODUCT=NO
export USER=ban
export USER_APPS_DIR=/Users/ban/Applications
export USER_LIBRARY_DIR=/Users/ban/Library
export USE_DYNAMIC_NO_PIC=YES
export USE_HEADERMAP=YES
export USE_HEADER_SYMLINKS=NO
export VALIDATE_PRODUCT=NO
export VALID_ARCHS="i386 x86_64"
export VERBOSE_PBXCP=NO
export VERSIONPLIST_PATH=Clocker.app/Contents/version.plist
export VERSION_INFO_BUILDER=ban
export VERSION_INFO_FILE=Clocker_vers.c
export VERSION_INFO_STRING=""@(#)PROGRAM:Clocker PROJECT:Clocker-""
export WRAPPER_EXTENSION=app
export WRAPPER_NAME=Clocker.app
export WRAPPER_SUFFIX=.app
export WRAP_ASSET_PACKS_IN_SEPARATE_DIRECTORIES=NO
export XCODE_APP_SUPPORT_DIR=/Applications/Xcode_10.2_fb.app/Contents/Developer/Library/Xcode
export XCODE_PRODUCT_BUILD_VERSION=10E125
export XCODE_VERSION_ACTUAL=1020
export XCODE_VERSION_MAJOR=1000
export XCODE_VERSION_MINOR=1020
export XPCSERVICES_FOLDER_PATH=Clocker.app/Contents/XPCServices
export YACC=yacc
export arch=undefined_arch
export variant=normal
/bin/sh -c /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Script-C2A632A020EAC5EE00EB6BEA.sh
CodeSign /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app (in target: Clocker)
cd /Users/ban/Documents/GitHub/Clocker/Clocker
export CODESIGN_ALLOCATE=/Applications/Xcode_10.2_fb.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/codesign_allocate
Signing Identity: "-"
/usr/bin/codesign --force --sign - --entitlements /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Intermediates.noindex/Clocker.build/Debug/Clocker.build/Clocker.app.xcent --timestamp=none /Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app
/Users/ban/Library/Developer/Xcode/DerivedData/Clocker-hedsfmwngzzibwbekcsaudypqlfo/Build/Products/Debug/Clocker.app: replacing existing signature
** BUILD SUCCEEDED **
Loading…
Cancel
Save