Skip to content

Commit

Permalink
Merge pull request #181 from homebysix/dev
Browse files Browse the repository at this point in the history
2.1.0 merge to master
  • Loading branch information
homebysix committed Nov 15, 2020
2 parents 6e117fa + a0f2993 commit 78213ec
Show file tree
Hide file tree
Showing 10 changed files with 345 additions and 12 deletions.
15 changes: 15 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,21 @@

All notable changes to this project will be documented in this file. This project adheres to [Semantic Versioning](http://semver.org/).

## Unreleased

Nothing yet.

## [2.1.0] - 2020-11-14

### Added
- Recipe Robot is now codesigned with a shiny new developer certificate and notarized!
- Unit tests for `curl` related functions that will help detect and prevent release of bugs.

### Fixed
- Fixed a bug that would fail recipe generation if a `expected_authority_names` list is used for `CodeSignatureVerifier`.
- Resolved an uncaught exception resulting from the `RecipeIdentifierPrefix` or `RecipeCreateLocation` preferences being unset. (#179)
- Corrected minimum system version back to 10.13. (#180)


## [2.0.0] - 2020-11-03

Expand Down
5 changes: 1 addition & 4 deletions RELEASING.md
Original file line number Diff line number Diff line change
Expand Up @@ -23,10 +23,7 @@

1. Run Recipe Robot unit tests and fix any errors. (See __scripts/test/README.md__ for detailed steps.)

1. Build a new version of the Recipe Robot app:

/usr/bin/xcodebuild clean -workspace "Recipe Robot.xcworkspace" -scheme "Recipe Robot - Release"
/usr/bin/xcodebuild build -workspace "Recipe Robot.xcworkspace" -scheme "Recipe Robot - Release" OBJROOT=$(pwd)/build SYMROOT=$(pwd)/build
1. (TEMPORARY) Use Xcode to build an archive of the signed app, upload to Apple for notarization, and export the notarized app to __build/Release/Recipe Robot.app__.

1. Build a release disk image:

Expand Down
22 changes: 20 additions & 2 deletions app/Recipe Robot.xcodeproj/project.pbxproj
Original file line number Diff line number Diff line change
Expand Up @@ -70,6 +70,7 @@
8B8F78D21BF3D5DB008F2440 /* Feed Me Drop Zone.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Feed Me Drop Zone.png"; sourceTree = "<group>"; };
8BC7598E1BE413190074040F /* Credits.rtf */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.rtf; name = Credits.rtf; path = "Recipe Robot/Credits.rtf"; sourceTree = SOURCE_ROOT; };
8BD5A1CC1BCB6E3F00D16D0A /* scripts */ = {isa = PBXFileReference; lastKnownFileType = folder; name = scripts; path = ../../scripts; sourceTree = "<group>"; };
9F2C3B992560BFC3001460D1 /* Recipe Robot.entitlements */ = {isa = PBXFileReference; lastKnownFileType = text.plist.entitlements; path = "Recipe Robot.entitlements"; sourceTree = "<group>"; };
BE007DB91BE93CFE00E31479 /* RecipeType.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = RecipeType.swift; sourceTree = "<group>"; };
BE09DAAD1BBA1C03007F8FF4 /* icon_128x128.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; name = icon_128x128.png; path = Images.xcassets/AppIcon.appiconset/icon_128x128.png; sourceTree = "<group>"; };
BE328F171BDC0DFD00EAF2E5 /* NotificationListener.swift */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.swift; path = NotificationListener.swift; sourceTree = "<group>"; };
Expand Down Expand Up @@ -149,6 +150,7 @@
8B42AC801B5C5BEC0058A814 /* Recipe Robot */ = {
isa = PBXGroup;
children = (
9F2C3B992560BFC3001460D1 /* Recipe Robot.entitlements */,
BE34C8351B7EC5DF00E0822E /* Main.storyboard */,
8B42AC831B5C5BEC0058A814 /* AppDelegate.swift */,
BE34C8331B7EC5D400E0822E /* RecipeRobotViewController.swift */,
Expand Down Expand Up @@ -273,7 +275,9 @@
TargetAttributes = {
8B42AC7D1B5C5BEC0058A814 = {
CreatedOnToolsVersion = 6.3.2;
DevelopmentTeam = 32SVX952DB;
LastSwiftMigration = 1020;
ProvisioningStyle = Automatic;
};
8B42AC8D1B5C5BEC0058A814 = {
CreatedOnToolsVersion = 6.3.2;
Expand Down Expand Up @@ -438,14 +442,21 @@
isa = XCBuildConfiguration;
baseConfigurationReference = D541641C220E96EC00A886AF /* Recipe Robot-Debug.xcconfig */;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "Recipe Robot/Recipe Robot.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1038;
DEVELOPMENT_TEAM = 32SVX952DB;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MARKETING_VERSION = 2.0.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.elliotjordan.recipe-robot";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Debug;
Expand All @@ -454,14 +465,21 @@
isa = XCBuildConfiguration;
baseConfigurationReference = D541641D220E96EC00A886AF /* Recipe Robot-Release.xcconfig */;
buildSettings = {
CODE_SIGN_ENTITLEMENTS = "Recipe Robot/Recipe Robot.entitlements";
CODE_SIGN_IDENTITY = "Apple Development";
CODE_SIGN_STYLE = Automatic;
CURRENT_PROJECT_VERSION = 1038;
DEVELOPMENT_TEAM = 32SVX952DB;
ENABLE_HARDENED_RUNTIME = YES;
FRAMEWORK_SEARCH_PATHS = (
"$(inherited)",
"$(PROJECT_DIR)/Carthage/Build/Mac",
);
LD_RUNPATH_SEARCH_PATHS = "$(inherited) @executable_path/../Frameworks";
MARKETING_VERSION = 2.0.0;
MACOSX_DEPLOYMENT_TARGET = 10.13;
MARKETING_VERSION = 2.1.0;
PRODUCT_BUNDLE_IDENTIFIER = "com.elliotjordan.recipe-robot";
PROVISIONING_PROFILE_SPECIFIER = "";
SWIFT_VERSION = 5.0;
};
name = Release;
Expand Down
2 changes: 1 addition & 1 deletion app/Recipe Robot/Info.plist
Original file line number Diff line number Diff line change
Expand Up @@ -21,7 +21,7 @@
<key>CFBundleSignature</key>
<string>RRBT</string>
<key>CFBundleVersion</key>
<string>1219</string>
<string>1228</string>
<key>LSApplicationCategoryType</key>
<string>public.app-category.utilities</string>
<key>LSMinimumSystemVersion</key>
Expand Down
5 changes: 5 additions & 0 deletions app/Recipe Robot/Recipe Robot.entitlements
Original file line number Diff line number Diff line change
@@ -0,0 +1,5 @@
<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict/>
</plist>
2 changes: 1 addition & 1 deletion app/Recipe Robot/StringExtensions.swift
Original file line number Diff line number Diff line change
Expand Up @@ -37,7 +37,7 @@ extension String {
return self.trimmingCharacters(in: CharacterSet.whitespacesAndNewlines)
}

/// Timmed whitespace
/// Trimmed whitespace
public var trimmed: String {
return self.trimmingCharacters(in: CharacterSet.whitespaces)
}
Expand Down
14 changes: 12 additions & 2 deletions scripts/recipe-robot
Original file line number Diff line number Diff line change
Expand Up @@ -268,11 +268,20 @@ def init_prefs(facts):
Returns:
prefs: A fully populated preference dictionary.
"""

args = facts["args"]
recipes = facts["recipes"]

# The preference keys that are minimally required for a basic run.
required_pref_keys = (
"RecipeCreateLocation",
"RecipeIdentifierPrefix",
"RecipeTypes",
)

# If prefs file exists, try to read from it.
prefs = get_user_defaults()
if prefs and prefs.get("RecipeTypes"):
if prefs and all((prefs.get(x) for x in required_pref_keys)):
for recipe in recipes:
# Load preferred recipe types.
recipe["preferred"] = recipe["type"] in prefs["RecipeTypes"]
Expand All @@ -289,7 +298,8 @@ def init_prefs(facts):
)

else:
# The prefs file doesn't exist.
# The prefs file doesn't exist or is missing required keys.
# TODO: Rebuild only the missing keys, retaining the ones that already exist.
message = "No prefs file found. Building new preferences..."
facts["warnings"].append(message)
prefs = build_prefs({}, facts)
Expand Down
2 changes: 1 addition & 1 deletion scripts/recipe_robot_lib/recipe_generator.py
Original file line number Diff line number Diff line change
Expand Up @@ -470,7 +470,7 @@ def get_code_signature_verifier(input_path, facts):
codesigverifier.input_path = input_path
if facts.get("codesign_reqs"):
codesigverifier.requirement = facts["codesign_reqs"]
elif len(facts["codesign_authorities"] > 0):
elif len(facts["codesign_authorities"]) > 0:
codesigverifier.expected_authority_names = list(facts["codesign_authorities"])
return codesigverifier

Expand Down
2 changes: 1 addition & 1 deletion scripts/recipe_robot_lib/tools.py
Original file line number Diff line number Diff line change
Expand Up @@ -54,7 +54,7 @@
# pylint: enable=no-name-in-module


__version__ = "2.0.0"
__version__ = "2.1.0"
ENDC = "\033[0m"
BUNDLE_ID = "com.elliotjordan.recipe-robot"
PREFS_FILE = os.path.expanduser("~/Library/Preferences/%s.plist" % BUNDLE_ID)
Expand Down
Loading

0 comments on commit 78213ec

Please sign in to comment.