diff --git a/Mac/Base.lproj/MainWindow.storyboard b/Mac/Base.lproj/MainWindow.storyboard
index b8f34ab55..eb5960822 100644
--- a/Mac/Base.lproj/MainWindow.storyboard
+++ b/Mac/Base.lproj/MainWindow.storyboard
@@ -290,10 +290,10 @@
-
+
-
+
-
+
-
+
-
+
diff --git a/Mac/MainWindow/Timeline/Cell/TimelineCellAppearance.swift b/Mac/MainWindow/Timeline/Cell/TimelineCellAppearance.swift
index bbb54eecb..702f95f9e 100644
--- a/Mac/MainWindow/Timeline/Cell/TimelineCellAppearance.swift
+++ b/Mac/MainWindow/Timeline/Cell/TimelineCellAppearance.swift
@@ -17,12 +17,11 @@ struct TimelineCellAppearance: Equatable {
let feedNameFont: NSFont
let dateFont: NSFont
- let dateMarginLeft: CGFloat = 10.0
- let dateMarginBottom: CGFloat = 1.0
+ let dateMarginLeft: CGFloat = 8.0
let titleFont: NSFont
let titleBottomMargin: CGFloat = 1.0
- let titleNumberOfLines = 2
+ let titleNumberOfLines = 3
let textFont: NSFont
@@ -46,12 +45,12 @@ struct TimelineCellAppearance: Equatable {
init(showIcon: Bool, fontSize: FontSize) {
let actualFontSize = AppDefaults.actualFontSize(for: fontSize)
- let smallItemFontSize = actualFontSize //floor(actualFontSize * 0.95)
- let largeItemFontSize = actualFontSize //floor(actualFontSize * 1.1)
+ let smallItemFontSize = floor(actualFontSize * 0.90)
+ let largeItemFontSize = actualFontSize
self.feedNameFont = NSFont.systemFont(ofSize: smallItemFontSize)
- self.dateFont = NSFont.systemFont(ofSize: smallItemFontSize, weight: NSFont.Weight.bold)
- self.titleFont = NSFont.systemFont(ofSize: largeItemFontSize, weight: NSFont.Weight.semibold)
+ self.dateFont = NSFont.systemFont(ofSize: smallItemFontSize)
+ self.titleFont = NSFont.systemFont(ofSize: largeItemFontSize, weight: NSFont.Weight.bold)
self.textFont = NSFont.systemFont(ofSize: largeItemFontSize)
self.textOnlyFont = NSFont.systemFont(ofSize: largeItemFontSize)
diff --git a/Mac/MainWindow/Timeline/Cell/TimelineCellLayout.swift b/Mac/MainWindow/Timeline/Cell/TimelineCellLayout.swift
index 7105c6f68..8dddd1bef 100644
--- a/Mac/MainWindow/Timeline/Cell/TimelineCellLayout.swift
+++ b/Mac/MainWindow/Timeline/Cell/TimelineCellLayout.swift
@@ -63,7 +63,7 @@ struct TimelineCellLayout {
if numberOfLinesForTitle == 0 {
lastTextRect = textRect
}
- else if numberOfLinesForTitle == 1 {
+ else if numberOfLinesForTitle < appearance.titleNumberOfLines {
if summaryRect.height > 0.1 {
lastTextRect = summaryRect
}
@@ -124,16 +124,24 @@ private extension TimelineCellLayout {
}
static func rectForSummary(_ textBoxRect: NSRect, _ titleRect: NSRect, _ titleNumberOfLines: Int, _ appearance: TimelineCellAppearance, _ cellData: TimelineCellData) -> NSRect {
-
if titleNumberOfLines >= appearance.titleNumberOfLines || cellData.text.isEmpty {
return NSRect.zero
}
- return rectOfLineBelow(titleRect, titleRect, 0, cellData.text, appearance.textFont)
+ var r = textBoxRect
+ r.origin.y = NSMaxY(titleRect)
+ let summaryNumberOfLines = appearance.titleNumberOfLines - titleNumberOfLines
+
+ let sizeInfo = MultilineTextFieldSizer.size(for: cellData.text, font: appearance.textOnlyFont, numberOfLines: summaryNumberOfLines, width: Int(textBoxRect.width))
+ r.size.height = sizeInfo.size.height
+ if sizeInfo.numberOfLinesUsed < 1 {
+ r.size.height = 0
+ }
+ return r
+
}
static func rectForText(_ textBoxRect: NSRect, _ appearance: TimelineCellAppearance, _ cellData: TimelineCellData) -> NSRect {
-
var r = textBoxRect
if cellData.text.isEmpty {
@@ -150,32 +158,30 @@ private extension TimelineCellLayout {
}
static func rectForDate(_ textBoxRect: NSRect, _ rectAbove: NSRect, _ appearance: TimelineCellAppearance, _ cellData: TimelineCellData) -> NSRect {
+ let textFieldSize = SingleLineTextFieldSizer.size(for: cellData.dateString, font: appearance.dateFont)
+
+ var r = NSZeroRect
+ r.size = textFieldSize
+ r.origin.y = NSMaxY(rectAbove) + appearance.titleBottomMargin
+ r.size.width = textFieldSize.width
- return rectOfLineBelow(textBoxRect, rectAbove, appearance.titleBottomMargin, cellData.dateString, appearance.dateFont)
+ r.origin.x = textBoxRect.maxX - textFieldSize.width
+
+ return r
}
static func rectForFeedName(_ textBoxRect: NSRect, _ dateRect: NSRect, _ appearance: TimelineCellAppearance, _ cellData: TimelineCellData) -> NSRect {
-
if !cellData.showFeedName {
return NSZeroRect
}
- return rectOfLineBelow(textBoxRect, dateRect, appearance.dateMarginBottom, cellData.feedName, appearance.feedNameFont)
- }
-
- static func rectOfLineBelow(_ textBoxRect: NSRect, _ rectAbove: NSRect, _ topMargin: CGFloat, _ value: String, _ font: NSFont) -> NSRect {
-
- let textFieldSize = SingleLineTextFieldSizer.size(for: value, font: font)
+ let textFieldSize = SingleLineTextFieldSizer.size(for: cellData.feedName, font: appearance.feedNameFont)
var r = NSZeroRect
r.size = textFieldSize
- r.origin.y = NSMaxY(rectAbove) + topMargin
+ r.origin.y = dateRect.minY
r.origin.x = textBoxRect.origin.x
-
- var width = textFieldSize.width
- width = min(width, textBoxRect.size.width)
- width = max(width, 0.0)
- r.size.width = width
-
+ r.size.width = (textBoxRect.maxX - (dateRect.size.width + appearance.dateMarginLeft)) - textBoxRect.origin.x
+
return r
}
diff --git a/Mac/MainWindow/Timeline/Cell/TimelineTableCellView.swift b/Mac/MainWindow/Timeline/Cell/TimelineTableCellView.swift
index 7e4726028..60854027c 100644
--- a/Mac/MainWindow/Timeline/Cell/TimelineTableCellView.swift
+++ b/Mac/MainWindow/Timeline/Cell/TimelineTableCellView.swift
@@ -12,7 +12,7 @@ import RSCore
class TimelineTableCellView: NSTableCellView {
private let titleView = TimelineTableCellView.multiLineTextField()
- private let summaryView = TimelineTableCellView.singleLineTextField()
+ private let summaryView = TimelineTableCellView.multiLineTextField()
private let textView = TimelineTableCellView.multiLineTextField()
private let unreadIndicatorView = UnreadIndicatorView(frame: NSZeroRect)
private let dateView = TimelineTableCellView.singleLineTextField()
@@ -144,7 +144,7 @@ private extension TimelineTableCellView {
let textField = NSTextField(wrappingLabelWithString: "")
textField.usesSingleLineMode = false
- textField.maximumNumberOfLines = 2
+ textField.maximumNumberOfLines = 0
textField.isEditable = false
textField.cell?.truncatesLastVisibleLine = true
textField.allowsDefaultTighteningForTruncation = false
@@ -180,7 +180,7 @@ private extension TimelineTableCellView {
titleView.textColor = NSColor.labelColor
feedNameView.textColor = NSColor.secondaryLabelColor
dateView.textColor = NSColor.secondaryLabelColor
- summaryView.textColor = NSColor.secondaryLabelColor
+ summaryView.textColor = NSColor.labelColor
textView.textColor = NSColor.labelColor
}
diff --git a/Mac/MainWindow/Timeline/TimelineViewController.swift b/Mac/MainWindow/Timeline/TimelineViewController.swift
index 496de190e..2400d555c 100644
--- a/Mac/MainWindow/Timeline/TimelineViewController.swift
+++ b/Mac/MainWindow/Timeline/TimelineViewController.swift
@@ -128,12 +128,7 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
}
private var showIcons = false
- private var rowHeightWithFeedName: CGFloat = 0.0
- private var rowHeightWithoutFeedName: CGFloat = 0.0
-
- private var currentRowHeight: CGFloat {
- return showFeedNames ? rowHeightWithFeedName : rowHeightWithoutFeedName
- }
+ private var currentRowHeight: CGFloat = 0.0
private var didRegisterForNotifications = false
static let fetchAndMergeArticlesQueue = CoalescingQueue(name: "Fetch and Merge Articles", interval: 0.5, maxInterval: 2.0)
@@ -662,20 +657,19 @@ final class TimelineViewController: NSViewController, UndoableCommandRunner, Unr
// MARK: - Cell Configuring
- private func calculateRowHeight(showingFeedNames: Bool) -> CGFloat {
+ private func calculateRowHeight() -> CGFloat {
let longTitle = "But I must explain to you how all this mistaken idea of denouncing pleasure and praising pain was born and I will give you a complete account of the system, and expound the actual teachings of the great explorer of the truth, the master-builder of human happiness. No one rejects, dislikes, or avoids pleasure itself, because it is pleasure, but because those who do not know how to pursue pleasure rationally encounter consequences that are extremely painful. Nor again is there anyone who loves or pursues or desires to obtain pain of itself, because it is pain, but because occasionally circumstances occur in which toil and pain can procure him some great pleasure. To take a trivial example, which of us ever undertakes laborious physical exercise, except to obtain some advantage from it? But who has any right to find fault with a man who chooses to enjoy a pleasure that has no annoying consequences, or one who avoids a pain that produces no resultant pleasure?"
let prototypeID = "prototype"
let status = ArticleStatus(articleID: prototypeID, read: false, starred: false, userDeleted: false, dateArrived: Date())
let prototypeArticle = Article(accountID: prototypeID, articleID: prototypeID, webFeedID: prototypeID, uniqueID: prototypeID, title: longTitle, contentHTML: nil, contentText: nil, url: nil, externalURL: nil, summary: nil, imageURL: nil, datePublished: nil, dateModified: nil, authors: nil, status: status)
- let prototypeCellData = TimelineCellData(article: prototypeArticle, showFeedName: showingFeedNames, feedName: "Prototype Feed Name", iconImage: nil, showIcon: false, featuredImage: nil)
+ let prototypeCellData = TimelineCellData(article: prototypeArticle, showFeedName: true, feedName: "Prototype Feed Name", iconImage: nil, showIcon: false, featuredImage: nil)
let height = TimelineCellLayout.height(for: 100, cellData: prototypeCellData, appearance: cellAppearance)
return height
}
private func updateRowHeights() {
- rowHeightWithFeedName = calculateRowHeight(showingFeedNames: true)
- rowHeightWithoutFeedName = calculateRowHeight(showingFeedNames: false)
+ currentRowHeight = calculateRowHeight()
updateTableViewRowHeight()
}
diff --git a/Mac/Resources/NetNewsWire-dev.entitlements b/Mac/Resources/NetNewsWire-dev.entitlements
new file mode 100644
index 000000000..f6af14e2f
--- /dev/null
+++ b/Mac/Resources/NetNewsWire-dev.entitlements
@@ -0,0 +1,18 @@
+
+
+
+
+ com.apple.security.app-sandbox
+
+ com.apple.security.automation.apple-events
+
+ com.apple.security.files.user-selected.read-write
+
+ com.apple.security.network.client
+
+ com.apple.security.temporary-exception.apple-events
+
+ com.red-sweater.marsedit4
+
+
+
diff --git a/NetNewsWire.xcodeproj/project.pbxproj b/NetNewsWire.xcodeproj/project.pbxproj
index 7324d8578..4cdb13a9d 100644
--- a/NetNewsWire.xcodeproj/project.pbxproj
+++ b/NetNewsWire.xcodeproj/project.pbxproj
@@ -1417,6 +1417,8 @@
51EF0F8D2279C9260050506E /* AccountsAdd.xib */ = {isa = PBXFileReference; lastKnownFileType = file.xib; path = AccountsAdd.xib; sourceTree = ""; };
51EF0F8F2279C9500050506E /* AccountsAddViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsAddViewController.swift; sourceTree = ""; };
51EF0F912279CA620050506E /* AccountsAddTableCellView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = AccountsAddTableCellView.swift; sourceTree = ""; };
+ 51F805D32428499E0022C792 /* NetNewsWire-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NetNewsWire-dev.entitlements"; sourceTree = ""; };
+ 51F805ED24284C1C0022C792 /* NetNewsWire-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "NetNewsWire-dev.entitlements"; sourceTree = ""; };
51F85BEA22724CB600C787DC /* About.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = About.rtf; sourceTree = ""; };
51F85BEE2272520B00C787DC /* Thanks.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Thanks.rtf; sourceTree = ""; };
51F85BF02272524100C787DC /* Credits.rtf */ = {isa = PBXFileReference; lastKnownFileType = text.rtf; path = Credits.rtf; sourceTree = ""; };
@@ -2645,6 +2647,7 @@
84C9FC8922629E8F00D921D6 /* Credits.rtf */,
84C9FC8A22629E8F00D921D6 /* NetNewsWire.sdef */,
84C9FC9022629ECB00D921D6 /* NetNewsWire.entitlements */,
+ 51F805D32428499E0022C792 /* NetNewsWire-dev.entitlements */,
84C9FC9122629F2200D921D6 /* Info.plist */,
65ED409F235DEFF00081F399 /* container-migration.plist */,
84C9FC8622629E8F00D921D6 /* KeyboardShortcuts */,
@@ -2708,6 +2711,7 @@
84C9FC9B2262A1A900D921D6 /* Assets.xcassets */,
84C9FC9C2262A1A900D921D6 /* Info.plist */,
84BB0F812333426400DED65E /* NetNewsWire.entitlements */,
+ 51F805ED24284C1C0022C792 /* NetNewsWire-dev.entitlements */,
);
path = Resources;
sourceTree = "";
diff --git a/README.md b/README.md
index 82971b36a..62c290283 100644
--- a/README.md
+++ b/README.md
@@ -26,6 +26,8 @@ See the [Contributing](CONTRIBUTING.md) page for our process. It’s pretty stra
#### Building
+You can build and test NetNewsWire without a paid developer account.
+
```bash
git clone https://github.com/Ranchero-Software/NetNewsWire.git
cd NetNewsWire
@@ -57,6 +59,7 @@ CODE_SIGN_IDENTITY = Mac Developer
DEVELOPMENT_TEAM =
CODE_SIGN_STYLE = Automatic
ORGANIZATION_IDENTIFIER =
+DEVELOPER_ENTITLEMENTS = -dev
PROVISIONING_PROFILE_SPECIFIER =
```
diff --git a/buildscripts/certs/ios-dist.cer.enc b/buildscripts/certs/ios-dist.cer.enc
index 9fe00110f..0cc689a41 100644
--- a/buildscripts/certs/ios-dist.cer.enc
+++ b/buildscripts/certs/ios-dist.cer.enc
@@ -1,31 +1,31 @@
-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
+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
diff --git a/buildscripts/certs/mac-dist.cer.enc b/buildscripts/certs/mac-dist.cer.enc
index 4c331d119..eabeae857 100644
--- a/buildscripts/certs/mac-dist.cer.enc
+++ b/buildscripts/certs/mac-dist.cer.enc
@@ -1,30 +1,30 @@
-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
+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
diff --git a/buildscripts/certs/mac-dist.p12.enc b/buildscripts/certs/mac-dist.p12.enc
index d173fc62e..99fa654ea 100644
--- a/buildscripts/certs/mac-dist.p12.enc
+++ b/buildscripts/certs/mac-dist.p12.enc
@@ -1,68 +1,68 @@
-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
+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
diff --git a/buildscripts/profile/NetNewsWireiOS.mobileprovision.enc b/buildscripts/profile/NetNewsWireiOS.mobileprovision.enc
index 23f5b0792..5e64e1bb5 100644
--- a/buildscripts/profile/NetNewsWireiOS.mobileprovision.enc
+++ b/buildscripts/profile/NetNewsWireiOS.mobileprovision.enc
@@ -1,155 +1,173 @@
-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
-ywGCdFWag12WabZsn8j65l0fsr/M7CKTA3OlL+K0+wpUISJxZcyRfbF5cJQ6il63
-1+XmkTarCqMJZc1owi3MpcYVSvsmMah1L0l9UPTsJrTyjqWvhYKAjV+ZUexqcML+
-WRuzEE/4jQEvOErjXn84o8NfI1FDRtHawB1Fn/hZ2Li4SSYm3TLbxRBZVmrVuB+N
-BNaNGwFzTNKSSPEgwnl+euN8e740L6Bj/6nYBgj2s92ZzIPuxYIojOyrSaU/Izxw
-y/Yovii82CcXe61BXXoamVvbIvjDXWfRL7Uun3BWAokHq6Rm6eJYKPh0F3MBBR/1
-GOv5k8Mh51dtqOjx/0KXrDIe/FPz5XFS2RkKOaKnn2dI8fZ1qLKjpN/BaVCY2pK1
-M2FKZVxh9NcC4uLxSioTpSl3CVr8l+/5HIZEy/grPxuhCGW7zHLWQr+80x4c17Ri
-AeK+6a8NOd+2BuDans15uVpz9pP39jt5Sk419gbzKal2vam8wR4Myeo5BOtg0PCr
-h7ayPkCBQrqye33PLZsm7dP7LKTnqTTH3Hph5K7pU6L11FJd8UDfuqJstSSaeK5D
-W/GqLha3HqrfxgXc6ZZLguVEGUSaUrU7vHmaEd+XLBRd4JhvgngERyRUPJ5D+B7n
-K8BG5lbLEwKmFB5PmMVzMsDFB9EaRM35uQGF3hdP4z3L8tTLUR9ydZIFzVaMJxgr
-EoUs15NPM7EuIPzO+zL9ua4uKgHdO9kjP4WXhl8kd0qq+EHEEeQ0+oH8N+hR4tac
-3JVRfPHeYsrU34SH0ddBl66EHnbL6i4egs9tlDdWN22p5Kjn4ZizpI2BpjSG5SLM
-ycUgmFoDoq71HPSXaoFtiFPpKXorYNUrZbq5P+lq4QkpLeR3Fk7onta8h1U9R3Rk
-Tk02C5UV9lVmT7p8nb+jiW2IBwviS4F378fX4WhUSjGQBl/+kiSwhPoNCN535Cbg
-DyRH+h0B2pveQJMmXRLtrEybK+KGkuYiTw+1o21554MKErotDLDL2Ka0lMP4x45g
-pvQ2IH45iQs7SqcN15U3/MbDy++4M9go8PX7h22SNSLXNZaPfnXVVDcsRwgx3LHS
-N0fv9IgFh9xcYqfpZJm3YDz7DX6TUI3VCQQx7VAy3QLP38FuxbY6GCP9nmZlPASD
-3fj9ahDf1JS0az46kmVYK8F7cwy2JKcHF6z41CSW13ys0X4qJIpaCkNdjfvZ8XY+
-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
+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
diff --git a/iOS/Resources/NetNewsWire-dev.entitlements b/iOS/Resources/NetNewsWire-dev.entitlements
new file mode 100644
index 000000000..05d04e805
--- /dev/null
+++ b/iOS/Resources/NetNewsWire-dev.entitlements
@@ -0,0 +1,14 @@
+
+
+
+
+ com.apple.security.application-groups
+
+ group.$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS
+
+ keychain-access-groups
+
+ $(AppIdentifierPrefix)$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS
+
+
+
diff --git a/xcconfig/NetNewsWire_iOSapp_target.xcconfig b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
index 1b099b259..7d301558f 100644
--- a/xcconfig/NetNewsWire_iOSapp_target.xcconfig
+++ b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
@@ -2,6 +2,7 @@ CODE_SIGN_IDENTITY= iPhone Developer
DEVELOPMENT_TEAM = M8L2WTLA8W
CODE_SIGN_STYLE = Automatic
ORGANIZATION_IDENTIFIER = com.ranchero
+DEVELOPER_ENTITLEMENTS =
PROVISIONING_PROFILE_SPECIFIER =
// developers can locally override the Xcode settings for code signing
@@ -17,8 +18,9 @@ PROVISIONING_PROFILE_SPECIFIER =
// CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer
// CODE_SIGN_IDENTITY[sdk=iphonesimulator*] = iPhone Developer
// DEVELOPMENT_TEAM =
-// BUNDLE_ROOT =
+// ORGANIZATION_IDENTIFIER =
// CODE_SIGN_STYLE = Automatic
+// DEVELOPER_ENTITLEMENTS = -dev
// PROVISIONING_PROFILE_SPECIFIER =
//
// And you should be able to build without code signing errors and without modifying
@@ -36,6 +38,6 @@ PROVISIONING_PROFILE_SPECIFIER =
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
INFOPLIST_FILE = iOS/Resources/Info.plist
-CODE_SIGN_ENTITLEMENTS = iOS/Resources/NetNewsWire.entitlements
+CODE_SIGN_ENTITLEMENTS = iOS/Resources/NetNewsWire$(DEVELOPER_ENTITLEMENTS).entitlements
PRODUCT_BUNDLE_IDENTIFIER = $(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS
PRODUCT_NAME = NetNewsWire
diff --git a/xcconfig/NetNewsWire_macapp_target.xcconfig b/xcconfig/NetNewsWire_macapp_target.xcconfig
index b53dbe79b..95bf74635 100644
--- a/xcconfig/NetNewsWire_macapp_target.xcconfig
+++ b/xcconfig/NetNewsWire_macapp_target.xcconfig
@@ -3,6 +3,7 @@ DEVELOPMENT_TEAM = M8L2WTLA8W
CODE_SIGN_STYLE = Manual
ORGANIZATION_IDENTIFIER = com.ranchero
PROVISIONING_PROFILE_SPECIFIER = NetNewsWire
+DEVELOPER_ENTITLEMENTS =
// developers can locally override the Xcode settings for code signing
// by creating a DeveloperSettings.xcconfig file locally at the appropriate path
@@ -19,6 +20,7 @@ PROVISIONING_PROFILE_SPECIFIER = NetNewsWire
// DEVELOPMENT_TEAM =
// ORGANIZATION_IDENTIFIER =
// CODE_SIGN_STYLE = Automatic
+// DEVELOPER_ENTITLEMENTS = -dev
// PROVISIONING_PROFILE_SPECIFIER =
//
// And you should be able to build without code signing errors and without modifying
@@ -33,6 +35,6 @@ PROVISIONING_PROFILE_SPECIFIER = NetNewsWire
#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig"
#include "./common/NetNewsWire_macapp_target_common.xcconfig"
-CODE_SIGN_ENTITLEMENTS = Mac/Resources/NetNewsWire.entitlements
+CODE_SIGN_ENTITLEMENTS = Mac/Resources/NetNewsWire$(DEVELOPER_ENTITLEMENTS).entitlements
PRODUCT_BUNDLE_IDENTIFIER = $(ORGANIZATION_IDENTIFIER).NetNewsWire-Evergreen