diff --git a/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json b/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json new file mode 100644 index 000000000..eb8789700 --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/AccentColor.colorset/Contents.json @@ -0,0 +1,11 @@ +{ + "colors" : [ + { + "idiom" : "universal" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json new file mode 100644 index 000000000..1d691a600 --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/Contents.json @@ -0,0 +1,176 @@ +{ + "images" : [ + { + "filename" : "icon-40.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-60.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "20x20" + }, + { + "filename" : "icon-58.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-87.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "29x29" + }, + { + "filename" : "icon-80.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-120.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "40x40" + }, + { + "filename" : "icon-121.png", + "idiom" : "iphone", + "scale" : "2x", + "size" : "60x60" + }, + { + "filename" : "icon-180.png", + "idiom" : "iphone", + "scale" : "3x", + "size" : "60x60" + }, + { + "filename" : "icon-20.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "20x20" + }, + { + "filename" : "icon-41.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "20x20" + }, + { + "filename" : "icon-29.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "29x29" + }, + { + "filename" : "icon-59.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "29x29" + }, + { + "filename" : "icon-42.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "40x40" + }, + { + "filename" : "icon-81.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "40x40" + }, + { + "filename" : "icon-76.png", + "idiom" : "ipad", + "scale" : "1x", + "size" : "76x76" + }, + { + "filename" : "icon-152.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "76x76" + }, + { + "filename" : "icon-167.png", + "idiom" : "ipad", + "scale" : "2x", + "size" : "83.5x83.5" + }, + { + "filename" : "icon-1024.png", + "idiom" : "ios-marketing", + "scale" : "1x", + "size" : "1024x1024" + }, + { + "filename" : "icon_16x16.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "16x16" + }, + { + "filename" : "icon_32x32.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "16x16" + }, + { + "filename" : "icon_32x32-1.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "32x32" + }, + { + "filename" : "icon_32x32@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "32x32" + }, + { + "filename" : "icon_128x128.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "128x128" + }, + { + "filename" : "icon_256x256@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "128x128" + }, + { + "filename" : "icon_256x256.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "256x256" + }, + { + "filename" : "icon_256x256@2x-1.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "256x256" + }, + { + "filename" : "icon_512x512.png", + "idiom" : "mac", + "scale" : "1x", + "size" : "512x512" + }, + { + "filename" : "icon_512x512@2x.png", + "idiom" : "mac", + "scale" : "2x", + "size" : "512x512" + } + ], + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-1024.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-1024.png new file mode 100644 index 000000000..c2bb5d540 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-1024.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-120.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-120.png new file mode 100644 index 000000000..6d1a94fd9 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-120.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-121.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-121.png new file mode 100644 index 000000000..6d1a94fd9 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-121.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-152.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-152.png new file mode 100644 index 000000000..b217d09c4 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-152.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-167.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-167.png new file mode 100644 index 000000000..4cd8fa6c0 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-167.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-180.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-180.png new file mode 100644 index 000000000..8c5c93b8c Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-180.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-20.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-20.png new file mode 100644 index 000000000..6be295367 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-20.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-29.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-29.png new file mode 100644 index 000000000..c9c8ffb32 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-29.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-40.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-40.png new file mode 100644 index 000000000..180a98b25 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-40.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-41.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-41.png new file mode 100644 index 000000000..180a98b25 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-41.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-42.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-42.png new file mode 100644 index 000000000..180a98b25 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-42.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-58.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-58.png new file mode 100644 index 000000000..a53d44864 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-58.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-59.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-59.png new file mode 100644 index 000000000..a53d44864 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-59.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-60.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-60.png new file mode 100644 index 000000000..7a01bc978 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-60.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-76.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-76.png new file mode 100644 index 000000000..4aea101ae Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-76.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-80.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-80.png new file mode 100644 index 000000000..85289428d Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-80.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-81.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-81.png new file mode 100644 index 000000000..85289428d Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-81.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-87.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-87.png new file mode 100644 index 000000000..dd27b3ca3 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon-87.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_128x128.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_128x128.png new file mode 100644 index 000000000..9b8e86460 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_128x128.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_16x16.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_16x16.png new file mode 100644 index 000000000..c8fc3ef69 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_16x16.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256.png new file mode 100644 index 000000000..9a57c5df3 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x-1.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x-1.png new file mode 100644 index 000000000..9a0005029 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x-1.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png new file mode 100644 index 000000000..9a0005029 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_256x256@2x.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png new file mode 100644 index 000000000..d93b02e85 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32-1.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32.png new file mode 100644 index 000000000..d93b02e85 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png new file mode 100644 index 000000000..c5debdda8 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_32x32@2x.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512.png new file mode 100644 index 000000000..9a0005029 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png new file mode 100644 index 000000000..eb5fe64e1 Binary files /dev/null and b/Multiplatform/Shared/Assets.xcassets/AppIcon.appiconset/icon_512x512@2x.png differ diff --git a/Multiplatform/Shared/Assets.xcassets/Contents.json b/Multiplatform/Shared/Assets.xcassets/Contents.json new file mode 100644 index 000000000..73c00596a --- /dev/null +++ b/Multiplatform/Shared/Assets.xcassets/Contents.json @@ -0,0 +1,6 @@ +{ + "info" : { + "author" : "xcode", + "version" : 1 + } +} diff --git a/Multiplatform/Shared/ContentView.swift b/Multiplatform/Shared/ContentView.swift new file mode 100644 index 000000000..e3d440b3b --- /dev/null +++ b/Multiplatform/Shared/ContentView.swift @@ -0,0 +1,21 @@ +// +// ContentView.swift +// Shared +// +// Created by Maurice Parker on 6/27/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import SwiftUI + +struct ContentView: View { + var body: some View { + Text("Hello, world!").padding() + } +} + +struct ContentView_Previews: PreviewProvider { + static var previews: some View { + ContentView() + } +} diff --git a/Multiplatform/Shared/NetNewsWire_MultiplatformApp.swift b/Multiplatform/Shared/NetNewsWire_MultiplatformApp.swift new file mode 100644 index 000000000..4173d0887 --- /dev/null +++ b/Multiplatform/Shared/NetNewsWire_MultiplatformApp.swift @@ -0,0 +1,18 @@ +// +// NetNewsWire_MultiplatformApp.swift +// Shared +// +// Created by Maurice Parker on 6/27/20. +// Copyright © 2020 Ranchero Software. All rights reserved. +// + +import SwiftUI + +@main +struct NetNewsWire_MultiplatformApp: App { + var body: some Scene { + WindowGroup { + ContentView() + } + } +} diff --git a/Multiplatform/iOS/Info.plist b/Multiplatform/iOS/Info.plist new file mode 100644 index 000000000..efc211a0c --- /dev/null +++ b/Multiplatform/iOS/Info.plist @@ -0,0 +1,50 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSRequiresIPhoneOS + + UIApplicationSceneManifest + + UIApplicationSupportsMultipleScenes + + + UIApplicationSupportsIndirectInputEvents + + UILaunchScreen + + UIRequiredDeviceCapabilities + + armv7 + + UISupportedInterfaceOrientations + + UIInterfaceOrientationPortrait + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + UISupportedInterfaceOrientations~ipad + + UIInterfaceOrientationPortrait + UIInterfaceOrientationPortraitUpsideDown + UIInterfaceOrientationLandscapeLeft + UIInterfaceOrientationLandscapeRight + + + diff --git a/Multiplatform/iOS/iOS-dev.entitlements b/Multiplatform/iOS/iOS-dev.entitlements new file mode 100644 index 000000000..05d04e805 --- /dev/null +++ b/Multiplatform/iOS/iOS-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/Multiplatform/iOS/iOS.entitlements b/Multiplatform/iOS/iOS.entitlements new file mode 100644 index 000000000..028d33157 --- /dev/null +++ b/Multiplatform/iOS/iOS.entitlements @@ -0,0 +1,24 @@ + + + + + aps-environment + development + com.apple.developer.icloud-container-identifiers + + iCloud.$(ORGANIZATION_IDENTIFIER).NetNewsWire + + com.apple.developer.icloud-services + + CloudKit + + com.apple.security.application-groups + + group.$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS + + keychain-access-groups + + $(AppIdentifierPrefix)$(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS + + + diff --git a/Multiplatform/macOS/Info.plist b/Multiplatform/macOS/Info.plist new file mode 100644 index 000000000..705980986 --- /dev/null +++ b/Multiplatform/macOS/Info.plist @@ -0,0 +1,28 @@ + + + + + CFBundleDevelopmentRegion + $(DEVELOPMENT_LANGUAGE) + CFBundleExecutable + $(EXECUTABLE_NAME) + CFBundleIconFile + + CFBundleIdentifier + $(PRODUCT_BUNDLE_IDENTIFIER) + CFBundleInfoDictionaryVersion + 6.0 + CFBundleName + $(PRODUCT_NAME) + CFBundlePackageType + $(PRODUCT_BUNDLE_PACKAGE_TYPE) + CFBundleShortVersionString + 1.0 + CFBundleVersion + 1 + LSMinimumSystemVersion + $(MACOSX_DEPLOYMENT_TARGET) + NSHumanReadableCopyright + Copyright © 2020 Ranchero Software. All rights reserved. + + diff --git a/Multiplatform/macOS/macOS-dev.entitlements b/Multiplatform/macOS/macOS-dev.entitlements new file mode 100644 index 000000000..f6af14e2f --- /dev/null +++ b/Multiplatform/macOS/macOS-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/Multiplatform/macOS/macOS.entitlements b/Multiplatform/macOS/macOS.entitlements new file mode 100644 index 000000000..7b1d03115 --- /dev/null +++ b/Multiplatform/macOS/macOS.entitlements @@ -0,0 +1,28 @@ + + + + + com.apple.developer.aps-environment + development + com.apple.developer.icloud-container-identifiers + + iCloud.$(ORGANIZATION_IDENTIFIER).NetNewsWire + + com.apple.developer.icloud-services + + CloudKit + + 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 09ccdf60e..bd14b6619 100644 --- a/NetNewsWire.xcodeproj/project.pbxproj +++ b/NetNewsWire.xcodeproj/project.pbxproj @@ -251,6 +251,12 @@ 51BC4B00247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; }; 51BC4B01247277E0000A6ED8 /* URL-Extensions.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */; }; 51BEB22D2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51BEB22C2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift */; }; + 51C0515E24A77DF800194D5E /* NetNewsWire_MultiplatformApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* NetNewsWire_MultiplatformApp.swift */; }; + 51C0515F24A77DF800194D5E /* NetNewsWire_MultiplatformApp.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513624A77DF700194D5E /* NetNewsWire_MultiplatformApp.swift */; }; + 51C0516024A77DF800194D5E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513724A77DF700194D5E /* ContentView.swift */; }; + 51C0516124A77DF800194D5E /* ContentView.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C0513724A77DF700194D5E /* ContentView.swift */; }; + 51C0516224A77DF800194D5E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 51C0513824A77DF800194D5E /* Assets.xcassets */; }; + 51C0516324A77DF800194D5E /* Assets.xcassets in Resources */ = {isa = PBXBuildFile; fileRef = 51C0513824A77DF800194D5E /* Assets.xcassets */; }; 51C266EA238C334800F53014 /* ContextMenuPreviewViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = 51C266E9238C334800F53014 /* ContextMenuPreviewViewController.swift */; }; 51C451A9226377C200C03939 /* ArticlesDatabase.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = 8407167F2262A61100344432 /* ArticlesDatabase.framework */; }; 51C451AA226377C200C03939 /* ArticlesDatabase.framework in Embed Frameworks */ = {isa = PBXBuildFile; fileRef = 8407167F2262A61100344432 /* ArticlesDatabase.framework */; settings = {ATTRIBUTES = (CodeSignOnCopy, RemoveHeadersOnCopy, ); }; }; @@ -1559,6 +1565,19 @@ 51BB7C302335ACDE008E8144 /* page.html */ = {isa = PBXFileReference; lastKnownFileType = text.html; path = page.html; sourceTree = ""; }; 51BC4ADD247277DF000A6ED8 /* URL-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "URL-Extensions.swift"; sourceTree = ""; }; 51BEB22C2451E8340066DEDD /* TwitterEnterDetailTableViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = TwitterEnterDetailTableViewController.swift; sourceTree = ""; }; + 51C0513624A77DF700194D5E /* NetNewsWire_MultiplatformApp.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NetNewsWire_MultiplatformApp.swift; sourceTree = ""; }; + 51C0513724A77DF700194D5E /* ContentView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContentView.swift; sourceTree = ""; }; + 51C0513824A77DF800194D5E /* Assets.xcassets */ = {isa = PBXFileReference; lastKnownFileType = folder.assetcatalog; path = Assets.xcassets; sourceTree = ""; }; + 51C0513D24A77DF800194D5E /* NetNewsWire.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetNewsWire.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 51C0513F24A77DF800194D5E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 51C0514424A77DF800194D5E /* NetNewsWire.app */ = {isa = PBXFileReference; explicitFileType = wrapper.application; includeInIndex = 0; path = NetNewsWire.app; sourceTree = BUILT_PRODUCTS_DIR; }; + 51C0514624A77DF800194D5E /* Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = Info.plist; sourceTree = ""; }; + 51C0514724A77DF800194D5E /* macOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = macOS.entitlements; sourceTree = ""; }; + 51C0519724A7808F00194D5E /* NetNewsWire_multiplatform_iOSapp_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetNewsWire_multiplatform_iOSapp_target.xcconfig; sourceTree = ""; }; + 51C0519824A7808F00194D5E /* NetNewsWire_multiplatform_macOSapp_target.xcconfig */ = {isa = PBXFileReference; lastKnownFileType = text.xcconfig; path = NetNewsWire_multiplatform_macOSapp_target.xcconfig; sourceTree = ""; }; + 51C051CD24A7A6DB00194D5E /* macOS-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "macOS-dev.entitlements"; sourceTree = ""; }; + 51C051CE24A7A72100194D5E /* iOS.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = iOS.entitlements; sourceTree = ""; }; + 51C051CF24A7A72100194D5E /* iOS-dev.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "iOS-dev.entitlements"; sourceTree = ""; }; 51C266E9238C334800F53014 /* ContextMenuPreviewViewController.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContextMenuPreviewViewController.swift; sourceTree = ""; }; 51C4524E226506F400C03939 /* UIStoryboard-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "UIStoryboard-Extensions.swift"; sourceTree = ""; }; 51C45250226506F400C03939 /* String-Extensions.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = "String-Extensions.swift"; sourceTree = ""; }; @@ -1887,6 +1906,20 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 51C0513A24A77DF800194D5E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51C0514124A77DF800194D5E /* Frameworks */ = { + isa = PBXFrameworksBuildPhase; + buildActionMask = 2147483647; + files = ( + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6581C73020CED60000F4AD34 /* Frameworks */ = { isa = PBXFrameworksBuildPhase; buildActionMask = 2147483647; @@ -2220,6 +2253,46 @@ path = CommonExtension; sourceTree = ""; }; + 51C0519224A77E3500194D5E /* Multiplatform */ = { + isa = PBXGroup; + children = ( + 51C0519524A77E8B00194D5E /* Shared */, + 51C0519424A77E6D00194D5E /* macOS */, + 51C0519324A77E6600194D5E /* iOS */, + ); + path = Multiplatform; + sourceTree = ""; + }; + 51C0519324A77E6600194D5E /* iOS */ = { + isa = PBXGroup; + children = ( + 51C0513F24A77DF800194D5E /* Info.plist */, + 51C051CE24A7A72100194D5E /* iOS.entitlements */, + 51C051CF24A7A72100194D5E /* iOS-dev.entitlements */, + ); + path = iOS; + sourceTree = ""; + }; + 51C0519424A77E6D00194D5E /* macOS */ = { + isa = PBXGroup; + children = ( + 51C0514624A77DF800194D5E /* Info.plist */, + 51C0514724A77DF800194D5E /* macOS.entitlements */, + 51C051CD24A7A6DB00194D5E /* macOS-dev.entitlements */, + ); + path = macOS; + sourceTree = ""; + }; + 51C0519524A77E8B00194D5E /* Shared */ = { + isa = PBXGroup; + children = ( + 51C0513624A77DF700194D5E /* NetNewsWire_MultiplatformApp.swift */, + 51C0513724A77DF700194D5E /* ContentView.swift */, + 51C0513824A77DF800194D5E /* Assets.xcassets */, + ); + path = Shared; + sourceTree = ""; + }; 51C45245226506C800C03939 /* UIKit Extensions */ = { isa = PBXGroup; children = ( @@ -2720,6 +2793,7 @@ 84CBDDAE1FD3674C005A61AA /* Technotes */, 84C9FC6522629B3900D921D6 /* Mac */, 84C9FC922262A0E600D921D6 /* iOS */, + 51C0519224A77E3500194D5E /* Multiplatform */, 84C9FC6822629C9A00D921D6 /* Shared */, 84C9FCA52262A1E600D921D6 /* Tests */, D5907CDA2002F084005947E5 /* xcconfig */, @@ -2747,6 +2821,8 @@ 51314637235A7BBE00387FDC /* NetNewsWire iOS Intents Extension.appex */, 65ED4083235DEF6C0081F399 /* NetNewsWire.app */, 65ED409D235DEF770081F399 /* Subscribe to Feed.appex */, + 51C0513D24A77DF800194D5E /* NetNewsWire.app */, + 51C0514424A77DF800194D5E /* NetNewsWire.app */, ); name = Products; sourceTree = ""; @@ -3101,19 +3177,21 @@ D5907CDA2002F084005947E5 /* xcconfig */ = { isa = PBXGroup; children = ( - D5907CDD2002F0BE005947E5 /* NetNewsWire_project_debug.xcconfig */, - D5907CDC2002F0BE005947E5 /* NetNewsWire_project_release.xcconfig */, - D5907CDE2002F0BE005947E5 /* NetNewsWire_project.xcconfig */, - D5907CE02002F0FA005947E5 /* NetNewsWire_macapp_target.xcconfig */, - 65ED40F2235DF5E00081F399 /* NetNewsWire_macapp_target_macappstore.xcconfig */, - D5907CDF2002F0F9005947E5 /* NetNewsWireTests_target.xcconfig */, - D519E74722EE553300923F27 /* NetNewsWire_safariextension_target.xcconfig */, - 65ED4186235E045B0081F399 /* NetNewsWire_safariextension_target_macappstore.xcconfig */, + 6543108B2322D90900658221 /* common */, 51121AA12265430A00BC0EC1 /* NetNewsWire_iOSapp_target.xcconfig */, 51314617235A797400387FDC /* NetNewsWire_iOSintentextension_target.xcconfig */, 515D4FCE2325B3D000EE1167 /* NetNewsWire_iOSshareextension_target.xcconfig */, 518B2EE92351B4C200400001 /* NetNewsWire_iOSTests_target.xcconfig */, - 6543108B2322D90900658221 /* common */, + 65ED40F2235DF5E00081F399 /* NetNewsWire_macapp_target_macappstore.xcconfig */, + D5907CE02002F0FA005947E5 /* NetNewsWire_macapp_target.xcconfig */, + 51C0519724A7808F00194D5E /* NetNewsWire_multiplatform_iOSapp_target.xcconfig */, + 51C0519824A7808F00194D5E /* NetNewsWire_multiplatform_macOSapp_target.xcconfig */, + D5907CDD2002F0BE005947E5 /* NetNewsWire_project_debug.xcconfig */, + D5907CDC2002F0BE005947E5 /* NetNewsWire_project_release.xcconfig */, + D5907CDE2002F0BE005947E5 /* NetNewsWire_project.xcconfig */, + 65ED4186235E045B0081F399 /* NetNewsWire_safariextension_target_macappstore.xcconfig */, + D519E74722EE553300923F27 /* NetNewsWire_safariextension_target.xcconfig */, + D5907CDF2002F0F9005947E5 /* NetNewsWireTests_target.xcconfig */, ); path = xcconfig; sourceTree = ""; @@ -3191,6 +3269,40 @@ productReference = 518B2ED22351B3DD00400001 /* NetNewsWire-iOSTests.xctest */; productType = "com.apple.product-type.bundle.unit-test"; }; + 51C0513C24A77DF800194D5E /* Multiplatform iOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 51C0518D24A77DF800194D5E /* Build configuration list for PBXNativeTarget "Multiplatform iOS" */; + buildPhases = ( + 51C0513924A77DF800194D5E /* Sources */, + 51C0513A24A77DF800194D5E /* Frameworks */, + 51C0513B24A77DF800194D5E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Multiplatform iOS"; + productName = iOS; + productReference = 51C0513D24A77DF800194D5E /* NetNewsWire.app */; + productType = "com.apple.product-type.application"; + }; + 51C0514324A77DF800194D5E /* Multiplatform macOS */ = { + isa = PBXNativeTarget; + buildConfigurationList = 51C0518E24A77DF800194D5E /* Build configuration list for PBXNativeTarget "Multiplatform macOS" */; + buildPhases = ( + 51C0514024A77DF800194D5E /* Sources */, + 51C0514124A77DF800194D5E /* Frameworks */, + 51C0514224A77DF800194D5E /* Resources */, + ); + buildRules = ( + ); + dependencies = ( + ); + name = "Multiplatform macOS"; + productName = macOS; + productReference = 51C0514424A77DF800194D5E /* NetNewsWire.app */; + productType = "com.apple.product-type.application"; + }; 6581C73220CED60000F4AD34 /* Subscribe to Feed */ = { isa = PBXNativeTarget; buildConfigurationList = 6581C75620CED60100F4AD34 /* Build configuration list for PBXNativeTarget "Subscribe to Feed" */; @@ -3340,7 +3452,7 @@ 849C64581ED37A5D003D8FC0 /* Project object */ = { isa = PBXProject; attributes = { - LastSwiftUpdateCheck = 1120; + LastSwiftUpdateCheck = 1200; LastUpgradeCheck = 0930; ORGANIZATIONNAME = "Ranchero Software"; TargetAttributes = { @@ -3361,6 +3473,16 @@ ProvisioningStyle = Automatic; TestTargetID = 840D617B2029031C009BC708; }; + 51C0513C24A77DF800194D5E = { + CreatedOnToolsVersion = 12.0; + DevelopmentTeam = SHJK2V3AJG; + ProvisioningStyle = Automatic; + }; + 51C0514324A77DF800194D5E = { + CreatedOnToolsVersion = 12.0; + DevelopmentTeam = SHJK2V3AJG; + ProvisioningStyle = Automatic; + }; 6581C73220CED60000F4AD34 = { DevelopmentTeam = SHJK2V3AJG; ProvisioningStyle = Automatic; @@ -3474,6 +3596,8 @@ 513C5CE5232571C2003D4054 /* NetNewsWire iOS Share Extension */, 51314636235A7BBE00387FDC /* NetNewsWire iOS Intents Extension */, 518B2ED12351B3DD00400001 /* NetNewsWire-iOSTests */, + 51C0513C24A77DF800194D5E /* Multiplatform iOS */, + 51C0514324A77DF800194D5E /* Multiplatform macOS */, ); }; /* End PBXProject section */ @@ -3816,6 +3940,22 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 51C0513B24A77DF800194D5E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 51C0516224A77DF800194D5E /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51C0514224A77DF800194D5E /* Resources */ = { + isa = PBXResourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 51C0516324A77DF800194D5E /* Assets.xcassets in Resources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6581C73120CED60000F4AD34 /* Resources */ = { isa = PBXResourcesBuildPhase; buildActionMask = 2147483647; @@ -4129,6 +4269,24 @@ ); runOnlyForDeploymentPostprocessing = 0; }; + 51C0513924A77DF800194D5E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 51C0516024A77DF800194D5E /* ContentView.swift in Sources */, + 51C0515E24A77DF800194D5E /* NetNewsWire_MultiplatformApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; + 51C0514024A77DF800194D5E /* Sources */ = { + isa = PBXSourcesBuildPhase; + buildActionMask = 2147483647; + files = ( + 51C0516124A77DF800194D5E /* ContentView.swift in Sources */, + 51C0515F24A77DF800194D5E /* NetNewsWire_MultiplatformApp.swift in Sources */, + ); + runOnlyForDeploymentPostprocessing = 0; + }; 6581C72F20CED60000F4AD34 /* Sources */ = { isa = PBXSourcesBuildPhase; buildActionMask = 2147483647; @@ -4990,6 +5148,32 @@ }; name = Release; }; + 51C0516424A77DF800194D5E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 51C0519724A7808F00194D5E /* NetNewsWire_multiplatform_iOSapp_target.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 51C0516524A77DF800194D5E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; + 51C0516624A77DF800194D5E /* Debug */ = { + isa = XCBuildConfiguration; + baseConfigurationReference = 51C0519824A7808F00194D5E /* NetNewsWire_multiplatform_macOSapp_target.xcconfig */; + buildSettings = { + }; + name = Debug; + }; + 51C0516724A77DF800194D5E /* Release */ = { + isa = XCBuildConfiguration; + buildSettings = { + }; + name = Release; + }; 6581C74720CED60100F4AD34 /* Debug */ = { isa = XCBuildConfiguration; baseConfigurationReference = D519E74722EE553300923F27 /* NetNewsWire_safariextension_target.xcconfig */; @@ -5124,6 +5308,24 @@ defaultConfigurationIsVisible = 0; defaultConfigurationName = Release; }; + 51C0518D24A77DF800194D5E /* Build configuration list for PBXNativeTarget "Multiplatform iOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 51C0516424A77DF800194D5E /* Debug */, + 51C0516524A77DF800194D5E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; + 51C0518E24A77DF800194D5E /* Build configuration list for PBXNativeTarget "Multiplatform macOS" */ = { + isa = XCConfigurationList; + buildConfigurations = ( + 51C0516624A77DF800194D5E /* Debug */, + 51C0516724A77DF800194D5E /* Release */, + ); + defaultConfigurationIsVisible = 0; + defaultConfigurationName = Release; + }; 6581C75620CED60100F4AD34 /* Build configuration list for PBXNativeTarget "Subscribe to Feed" */ = { isa = XCConfigurationList; buildConfigurations = ( diff --git a/NetNewsWire.xcodeproj/xcshareddata/xcschemes/Multiplatform iOS.xcscheme b/NetNewsWire.xcodeproj/xcshareddata/xcschemes/Multiplatform iOS.xcscheme new file mode 100644 index 000000000..fb13f1bad --- /dev/null +++ b/NetNewsWire.xcodeproj/xcshareddata/xcschemes/Multiplatform iOS.xcscheme @@ -0,0 +1,78 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/NetNewsWire.xcodeproj/xcshareddata/xcschemes/NetNewsWire.xcscheme b/NetNewsWire.xcodeproj/xcshareddata/xcschemes/NetNewsWire.xcscheme index 5a6644028..558eacef4 100644 --- a/NetNewsWire.xcodeproj/xcshareddata/xcschemes/NetNewsWire.xcscheme +++ b/NetNewsWire.xcodeproj/xcshareddata/xcschemes/NetNewsWire.xcscheme @@ -96,6 +96,16 @@ ReferencedContainer = "container:Frameworks/ArticlesDatabase/ArticlesDatabase.xcodeproj"> + + + + +// 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 +// the NetNewsWire Xcode project. +// +// Example: if your NetNewsWire Xcode project file is at +// /Users/Shared/git/NetNewsWire/NetNewsWire.xcodeproj +// create your DeveloperSettings.xcconfig file at +// /Users/Shared/git/SharedXcodeSettings/DeveloperSettings.xcconfig +// + +#include? "../../SharedXcodeSettings/ProjectSettings.xcconfig" +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" +#include "./common/NetNewsWire_ios_target_common.xcconfig" + +LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks +INFOPLIST_FILE = Multiplatform/iOS/Info.plist +CODE_SIGN_ENTITLEMENTS = Multiplatform/iOS/iOS$(DEVELOPER_ENTITLEMENTS).entitlements +PRODUCT_BUNDLE_IDENTIFIER = $(ORGANIZATION_IDENTIFIER).NetNewsWire.Multiplatform.iOS +PRODUCT_NAME = NetNewsWire + +// Override NetNewsWire_project.xcconfig until we are ready to only target 10.16 +IPHONEOS_DEPLOYMENT_TARGET = 14.0 +SWIFT_SWIFT3_OBJC_INFERENCE = Off +SWIFT_VERSION = 5.3 + diff --git a/xcconfig/NetNewsWire_multiplatform_macOSapp_target.xcconfig b/xcconfig/NetNewsWire_multiplatform_macOSapp_target.xcconfig new file mode 100644 index 000000000..faa0a0f0a --- /dev/null +++ b/xcconfig/NetNewsWire_multiplatform_macOSapp_target.xcconfig @@ -0,0 +1,46 @@ +CODE_SIGN_IDENTITY = Developer ID Application +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 +// This allows a pristine project to have code signing set up with the appropriate +// developer ID and certificates, and for dev to be able to have local settings +// without needing to check in anything into source control +// +// As an example, make a ../../SharedXcodeSettings/DeveloperSettings.xcconfig file and +// give it the contents +// +// CODE_SIGN_IDENTITY[sdk=macosx*] = Mac Developer +// CODE_SIGN_IDENTITY[sdk=iphoneos*] = iPhone Developer +// CODE_SIGN_IDENTITY[sdk=iphonesimulator*] = iPhone Developer +// 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 +// the NetNewsWire Xcode project. +// +// Example: if your NetNewsWire Xcode project file is at +// /Users/Shared/git/NetNewsWire/NetNewsWire.xcodeproj +// create your DeveloperSettings.xcconfig file at +// /Users/Shared/git/SharedXcodeSettings/DeveloperSettings.xcconfig +// + +#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig" +#include "./common/NetNewsWire_macapp_target_common.xcconfig" + +INFOPLIST_FILE = Multiplatform/macOS/Info.plist +CODE_SIGN_ENTITLEMENTS = Multiplatform/macOS/macOS$(DEVELOPER_ENTITLEMENTS).entitlements +PRODUCT_BUNDLE_IDENTIFIER = $(ORGANIZATION_IDENTIFIER).NetNewsWire.Multiplatform.macOS +PRODUCT_NAME = NetNewsWire + +// Override NetNewsWire_project.xcconfig until we are ready to only target 10.16 +MACOSX_DEPLOYMENT_TARGET = 10.16 +SWIFT_SWIFT3_OBJC_INFERENCE = Off +SWIFT_VERSION = 5.3