diff --git a/iOS/IntentsExtension/Info.plist b/iOS/IntentsExtension/Info.plist
index aabff631b..8c87f51c5 100644
--- a/iOS/IntentsExtension/Info.plist
+++ b/iOS/IntentsExtension/Info.plist
@@ -21,9 +21,9 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 5.0
+ $(MARKETING_VERSION)
CFBundleVersion
- 2
+ $(CURRENT_PROJECT_VERSION)
NSExtension
NSExtensionAttributes
diff --git a/iOS/Resources/Info.plist b/iOS/Resources/Info.plist
index e8a304709..dfcacffa8 100644
--- a/iOS/Resources/Info.plist
+++ b/iOS/Resources/Info.plist
@@ -23,7 +23,7 @@
CFBundlePackageType
APPL
CFBundleShortVersionString
- 5.0
+ $(MARKETING_VERSION)
CFBundleURLTypes
@@ -48,7 +48,7 @@
CFBundleVersion
- 2
+ $(CURRENT_PROJECT_VERSION)
LSRequiresIPhoneOS
NSAppTransportSecurity
diff --git a/iOS/ShareExtension/Info.plist b/iOS/ShareExtension/Info.plist
index 5eee36979..fc1cd201d 100644
--- a/iOS/ShareExtension/Info.plist
+++ b/iOS/ShareExtension/Info.plist
@@ -21,9 +21,9 @@
CFBundlePackageType
$(PRODUCT_BUNDLE_PACKAGE_TYPE)
CFBundleShortVersionString
- 5.0
+ $(MARKETING_VERSION)
CFBundleVersion
- 2
+ $(CURRENT_PROJECT_VERSION)
NSExtension
NSExtensionAttributes
diff --git a/xcconfig/NetNewsWire_iOSapp_target.xcconfig b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
index 3caf8ea44..1b099b259 100644
--- a/xcconfig/NetNewsWire_iOSapp_target.xcconfig
+++ b/xcconfig/NetNewsWire_iOSapp_target.xcconfig
@@ -32,19 +32,10 @@ PROVISIONING_PROFILE_SPECIFIER =
#include? "../../SharedXcodeSettings/ProjectSettings.xcconfig"
#include? "../../SharedXcodeSettings/DeveloperSettings.xcconfig"
-
-ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
-ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
-CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
-
-COMBINE_HIDPI_IMAGES = YES
-FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)/Frameworks/Vendor
-GCC_C_LANGUAGE_STANDARD = gnu11;
+#include "./common/NetNewsWire_ios_target_common.xcconfig"
LD_RUNPATH_SEARCH_PATHS = $(inherited) @executable_path/Frameworks
INFOPLIST_FILE = iOS/Resources/Info.plist
CODE_SIGN_ENTITLEMENTS = iOS/Resources/NetNewsWire.entitlements
PRODUCT_BUNDLE_IDENTIFIER = $(ORGANIZATION_IDENTIFIER).NetNewsWire.iOS
PRODUCT_NAME = NetNewsWire
-SDKROOT = iphoneos;
-TARGETED_DEVICE_FAMILY = 1,2
diff --git a/xcconfig/NetNewsWire_iOSintentextension_target.xcconfig b/xcconfig/NetNewsWire_iOSintentextension_target.xcconfig
index dad1a564d..52b19615c 100644
--- a/xcconfig/NetNewsWire_iOSintentextension_target.xcconfig
+++ b/xcconfig/NetNewsWire_iOSintentextension_target.xcconfig
@@ -1,4 +1,38 @@
-#include "./NetNewsWire_iOSapp_target.xcconfig"
+CODE_SIGN_IDENTITY= iPhone Developer
+DEVELOPMENT_TEAM = M8L2WTLA8W
+CODE_SIGN_STYLE = Automatic
+ORGANIZATION_IDENTIFIER = com.ranchero
+PROVISIONING_PROFILE_SPECIFIER =
+
+// 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 =
+// BUNDLE_ROOT =
+// CODE_SIGN_STYLE = Automatic
+// 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
CODE_SIGN_ENTITLEMENTS = iOS/ShareExtension/NetNewsWire_iOS_ShareExtension.entitlements
diff --git a/xcconfig/NetNewsWire_iOSshareextension_target.xcconfig b/xcconfig/NetNewsWire_iOSshareextension_target.xcconfig
index 0177ecbca..8e17d8de9 100644
--- a/xcconfig/NetNewsWire_iOSshareextension_target.xcconfig
+++ b/xcconfig/NetNewsWire_iOSshareextension_target.xcconfig
@@ -1,4 +1,38 @@
-#include "./NetNewsWire_iOSapp_target.xcconfig"
+CODE_SIGN_IDENTITY= iPhone Developer
+DEVELOPMENT_TEAM = M8L2WTLA8W
+CODE_SIGN_STYLE = Automatic
+ORGANIZATION_IDENTIFIER = com.ranchero
+PROVISIONING_PROFILE_SPECIFIER =
+
+// 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 =
+// BUNDLE_ROOT =
+// CODE_SIGN_STYLE = Automatic
+// 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
CODE_SIGN_ENTITLEMENTS = iOS/ShareExtension/NetNewsWire_iOS_ShareExtension.entitlements
diff --git a/xcconfig/common/NetNewsWire_ios_target_common.xcconfig b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig
new file mode 100644
index 000000000..00416d6cf
--- /dev/null
+++ b/xcconfig/common/NetNewsWire_ios_target_common.xcconfig
@@ -0,0 +1,13 @@
+
+// High Level Settings common to both the iOS application and any extensions we bundle with it
+MARKETING_VERSION = 5.0
+CURRENT_PROJECT_VERSION = 2
+
+ALWAYS_EMBED_SWIFT_STANDARD_LIBRARIES = YES
+ASSETCATALOG_COMPILER_APPICON_NAME = AppIcon
+CLANG_CXX_LANGUAGE_STANDARD = "gnu++14";
+COMBINE_HIDPI_IMAGES = YES
+FRAMEWORK_SEARCH_PATHS = $(inherited) $(PROJECT_DIR)/Frameworks/Vendor
+GCC_C_LANGUAGE_STANDARD = gnu11;
+SDKROOT = iphoneos;
+TARGETED_DEVICE_FAMILY = 1,2