[FIXED] Import of ubiquity changes was using wrong delegate method and MOC.
[FIXED] Password type change broken when password type causes a class change.
[IMPROVED] Fancier animation of emergency generator appearance.
[MOVED] iOS code from MPAppDelegate_Shared to MPiOSAppDelegate.
[FIXED] Perform MOC saving in MOC perform blocks.
[FIXED] Mac: Activate app when showing password window and not active.
[FIXED] Hide overlay while corruption dialog is up.
[FIXED] Hide corruption dialog when reloading store.
[ADDED] Migration to file-based StoreUUID.
[IMPROVED] Cleaner, more modular, migration code.
[FIXED] Don't hook activation to show password window: too annoying when focus shifts.
[FIXED] Don't set the active user when just importing ubiquity changes, it causes a log-out.
[ADDED] Mac: Ability to rebuild iCloud.
[REMOVED] Mac: wasRunning logic to avoid password window appearance on first activation.
[FIXED] Mac: Retrieve siteName from main thread.
[FIXED] Deselect new user avatar if MOC is unavailable when tapping it.
[FIXED] Position of avatars & spinner on iPhone 5.
[IMPROVED] Issue button in review dialog.
[ADDED] Safer store migration: don't delete the old store, allowing the client to downgrade.
[ADDED] Log checkpoints and send to TestFlight too.
[FIXED] Describe booleans as YES/NO, not 1/0.
[ADDED] Log Inspector, shake on preference screen to open log.
[ADDED] Trace Mode: Log at trace level.
[FIXED] Log messages weren't being recorded for inclusion in feedback.
[FIXED] More careful Core Data threading and context usage.
[FIXED] iOS bug when migrating, now using USM's copy migration.
[ADDED] Better handling of store changes while in Main VC and Element List VCs.
[UPDATED] TestFlight.
[FIXED] Mac: References to MPAppDelegate that should be OS-independant now use MPAppDelegate_Shared.
[FIXED] Mac: Threading and content UI updates.
[FIXED] iOS: Spinner was showing when going back to unlock VC.
[ADDED] Ability to change style of password window.
[FIXED] Some window activation oddities (WIP).
[UPDATED] Renamed executable iOS/Mac specific in the hopes of helping with IDE conflicts.
[FIXED] Don't create a moc when the main moc is unset.
[FIXED] Load the MPUserEntity into the moc when doing selectUser:
[FIXED] Remove KVO on activeUserObjectID, isn't used anymore. Instead, override setActiveUser:
[FIXED] Don't show the password window on launch.
[FIXED] Don't force unlock of the key whenever unset - only when the window pops.
[REMOVED] Migration - this app is not ready for explicit migration, additionally, this block appears to cause a lock-up of the PSC.
[ADDED] Emergency Generator!
[ADDED] Easier method for just using the master password algorithm bare.
[UPDATED] Pictograms in action popup and centering of text.
[UPDATED] Made activeUser access follow same pattern as activeElement which makes it more clear what the thread model is like.
[FIXED] Save after update of all elements.
[UPDATED] Tool tips hidden in IB now; makes it less cluttered.
[FIXED] Dismissing view controllers when logging out.
[UPDATED] Simplified AllSites VC in IB (removed the unused navVC).
[UPDATED] Outdated sites are now shown in the AllSites VC.
[ADDED] An update-all-sites button when showing outdated sites in the AllSites VC.
[REMOVED] Search scopes.
[ADDED] Sorting elements by recency and usage count now.
[FIXED] Initial positioning of help container.
[ADDED] Setup VC for rememberLogin.
[FIXED] Setup wasn't showing up on app load.
[FIXED] More temporary moc fixes and main thread fixes.
[IMPROVED] Guide now plays an introduction animation.
[FIXED] Setup iCloud switch is now functional.
[FIXED] Pass along temporary mocs, they appear to be stored __weak in the object and we can't rely on them not being nil.
[ADDED] Setup flow for initially setting the iCloud preference.
[ADDED] New guide.
[IMPROVED] Hierarchy and flow of unlock -> main.
[IMPROVED] Migration code cleanup.
[FIXED] When local store migration fails, fall back to opening the old local store if possible.
[FIXED] Better migration of cloud preferences.
[FIXED] Better checking of when to perform cloud store migration.
[FIXED] Always migrate the local store, even when the cloud store is enabled.
[UPDATED] Removed the loading indicator in favor of a loading overlay.
[UPDATED] Sorted the file references lexicographically.
[FIXED] Moved migration into the persistence queue by performing it on willLoadStore.
[FIXED] Re-enabled cloud after migration.
[UPDATED] Allow rebuilding the old cloud store if it got deleted locally.
[FIXED] Properties in categories aren't synthesized. Using fancy new PearlAssociateObjectProperty from Pearl now to make a fake property.
[FIXED] Show overlay on UI thread.
[FIXED] ONLY_ACTIVE_ARCH = NO because weird codesign errors happen on second build with it set to YES.
modified: External/Pearl
[ADDED] A more generic element listing controller, now used by the
search controller and all elements listing controller.
[IMPROVED] Improved change detection and UI handling in the element
listing controllers.
[FIXED] Bug with previewing generated password types for
non-generated elements.
[REMOVED] Facebook SDK.
[ADDED] Social framework integration for Twitter & Facebook.
[MOVED] User migration warning state moved into MainVC, out of
data model.
[UPDATED] Major overhaul of Core Data integration. Multiple contexts
and making sure we're on the right thread and the right
context even for read access.
[FIXED] Some iOS 6 deprecation fixes.
[FIXED] Some VC rotation issues.
[FIXED] Working migration of old store to new store.
[FIXED] We shouldn't be holding references to CoreData objects anywhere.
In that light, the user NSMenuItems have been fixed.
[MOVED] Extract user migration out of iOS specific codebase.
[UPDATED] iCloud persistence manager.
[ADDED] Mac: Hotkey for signing the user out.
[IMPROVED] Mac: Menu item handling and usability.
[FIXED] Behavior of the Mac menu item and appearance of the password
window.
[ADDED] Disabling menu items while not usable and explaining
disabled items with tooltips.
[UPDATED] Facebook integration bumped for iOS 6.
[FIXED] Bringing Mac version back up to date. Compiles again and
runs with UI bugs.
[ADDED] Mac: User selection.
[FIXED] Sending email with no recipient caused a crash.
[FIXED] Duplicate persistence coordinator.
[UPDATED] Crashlytics and Localytics SDKs.
[UPDATED] Don't continue the Localytics session when device locked.
[UPDATED] Put Localytics communication on HTTPS for confidentiality.
[ADDED] Tagging screens in Localytics.
[REMOVED] Cleaned up some check points that weren't really useful.
[ADDED] Added a few new checkpoints with new functionality.
[ADDED] An "other apps" page that introduces Gorillas and DeBlock.
[IMPROVED] Help is now toggled with a drag handle instead of an action
button.
[UPDATED] A nil type is never OK. Crash early if it is so.
[UPDATED] Set crashlytics identifiers using its userIdentifier and userName property for good metadata.
[FIXED] Make sure the MOC has a PSC with stores when returning it.
[FIXED] Don't reset the store for just any open error! Only if it's actually incompatible.
[IMPROVED] Remove timestamps from Crashlytics and TestFlight logs, they already provide them.
[FIXED] Avoid crashes in some odd cases where there's no type set.
[FIXED] Import fixes:
- Wait for MOC to become available.
- Progress UI while working.
- Import files exported with a different master password.
- Core Data crashes.
[RENAMED] Site's User name -> Login name.
[FIXED] Core Data crashes related to using entities from old MOCs.
[REMOVED] Disable TestFlight for release, it doesn't work anyway.
[FIXED] Properly handle unlock screen when there is no MOC yet.
[FIXED] Some log statements format strings & arguments.
[IMPROVED] Don't block when MOC is not yet ready, just return nil.
[IMPROVED] Outdated tip links to info, icon links to site search.
[IMPROVED] Minor improvements to error handling during import.
[ADDED] Word wall: Show some random dictionary words while user
thinks of a new master password to give him some
inspiration.
[IMPROVED] Only select user after he choose to reset.
[IMPROVED] Ugly backdrops in the guide images cleaned up.
[FIXED] Export of sites should now include a password version field.
[FIXED] Filename to save exported passwords into should use day of
the month instead of day of the year.
[FIXED] No search predicate was set when search scope button wasn't
set. As a result, sites from other users showed up.
[IMPROVED] A master password key is now better abstracted in an object.
[IMPROVED] A master password algorithm is now better astracted in an
object.
[ADDED] Elements now have a specific algorithm version.
[ADDED] Automatic/explicit migration of elements.
[ADDED] Searching outdated elements.
[ADDED] Allow saving a user name per site. This is an optional
addition, toggled by tapping the new settings icon.
Obviously user names can't be recovered after loss.
[ADDED] Versioning and explicit migration to MPElementEntity.
[ADDED] Upgrade button in case the element needs explicit migration.
[ADDED] Messages in Crashlytics and TestFlight logs upon
initialization so we can easily see it worked and what the
client's versioning looks like.
[IMPROVED] Only show firstRun UI tooltips once.
[IMPROVED] Automatically select the latest user upon load of unlock.
[IMPROVED] Automatically select the user when his password is reset.
[IMPROVED] Hide active element when logging a user out.
[ADDED] Page controller in guide to see where in the guide you are.
[ADDED] FontReplacer to be able to "use" Exo from IB (by
substituting "Futura").
[FIXED] A crash when loading the main VC because of the reset
password gesture recogniser.
[IMPROVED] Font in tables to standard system fonts.
[IMPROVED] Guide content positioning and sizing making space for pager.
[IMPROVED] Use action sheets instead of alerts when showing destructive
action choices.
[IMPROVED] Make tappable regions at least 44x44pt.
[IMPROVED] Title/message for alert/sheets.
[REMOVED] Apptentive is now implemented by a standard iOS mail
composer window and can optionally include logs.
[IMPROVED] Better inf-level logging of what's going on.
[AUDITED] Made sure no personal is going out through inf+ levels.
[ADDED] User preference for default password type.
[RENAMED] Secure type to Maximum Security.
[FIXED] Logging bug in password generation.
[ADDED] Confirmation popup after new user creation.
[UPDATED] Crashlytics.
[IMPROVED] Sending logs and configuration to crashlytics, added
sendDebugInfo option that allows the user to choose to send
more info. Now also sending a device identifier.
[ADDED] Avatar selection dialog when a new user is created.
[UPDATED] Algorithm updated to reflect advice from randombit.net
cryptography list:
- Add in a salt (user name) to defeat rainbow tables.
- Add in a fixed string to scope the algorithm and avoid
colliding with someone else's similar or identical
algorithm (also helps protect against precalculated
rainbow tables).
- Use HMAC instead of plain SHA to avoid SHA weaknesses.
The old implementation wasn't vulnerable to extension
attacks or other known weaknesses, but HMAC is a safer
choice and will bring up less suspicion.
- Prefix strings by length as an extra precautionary
measure against possible bugs in hash functions.
[ADDED] A new password type: Secure password. 20 characters, not
word-based, very high entropy.
[FIXED] UI bugs and improvements with the avatar display and
password checking state display.
[FIXED] Unlock screen.
[FIXED] Internal fixes.
[ADDED] Avatar selection in preferences.
[ADDED] Implementation of the other preferences.
[IMPROVED] UI of unlock and preferences screens.
[REMOVED] Stop using apptentive for rating questions. Pearl's
built-in functionality seems nicer and more basic.
[ADDED] Some more tool-tips to help the user, to be shown on first
run only.
[FIXED] The site name tip wasn't showing anymore.
[FIXED] Some language and formatting in help.html.
[IMPROVED] Make persistence more lazy to avoid UI blocks.
[IMPROVED] Use "Master Password" as CFBundleDisplayName at runtime. No
home-screen length restrictions there.
[FIXED] Inform Apptentive of significant events.
[FIXED] Immediately open the application on the password entry view
if the key is forgotten instead of revealing the internals
in a blink.
[FIXED] Clean up the UI better when switching between master
passwords.
[ADDED] Ask spelling confirmation when a master password is used
that doesn't have any known sites yet.
[ADDED] iPad HD quality icon.
[IMPROVED] Artworks re-generated, downscale improved, convertImages
improved.
[IMPROVED] Small guide text improvements.
[UPDATED] Help texts updated for current operation and UI.
[IMPROVED] MP-15: Audit and improve log messages.
[ADDED] If an element's counter is 0, generate a time-based OTP
instead. The OTP changes every 5 minutes.
[UPDATED] Change TestFlight preprocessor toggles to
TESTFLIGHT_SDK_VERSION.
[IMPROVED] Change logic behind shared MPAppDelegate to inheritance,
allowing for the common files to implement methods that the
platform-specific class can override.
[IMPROVED] Handling and checking of config changes.
[ADDED] iCloud config toggle, allowing a user to turn on and off
the iCloud store.
[IMPROVED] Explanation of iCloud.
[UPDATED] Check TARGET_OS_IPHONE instead of
__IPHONE_OS_VERSION_MIN_REQUIRED.
[UPDATED] A few TestFlight checkpoints names have been updated.
[ADDED] A few new TestFlight checkpoints for new features.
[ADDED] Warn the user when he's not using iCloud and allow him to
switch back to iCloud.
[FIXED] Migration problems should be fixed non-interactively: The
main thread may well be unavailable which means we may not
be able to actually get a message through to the user. This
would dead-lock the migration problem recovery.
[ADDED] OS X: Lots of warning checks when compiling.
[ADDED] OS X: Ability to enable and disable iCloud.
[ADDED] OS X: Support for rememberKey & saveKey.
[UPDATED] storeKey -> saveKey: makes more sense to people.
[IMPROVED] OS X: Password display window fancier.
[UPDATED] Moved shared MPAppDelegate code into separate files
depending on the code's responsibility.
[UPDATED] iCloud implementation removed in favor of
iCloudStoreManager's managed implementation.
[FIXED] iCloud configuration made AppStore friendly.
[UPDATED] Pearl to ARC.
[FIXED] Crash related to persistence changes that caused UI updates
while other UI changes were ongoing.
[IMPROVED] Real description of MPElementEntities and use content
whenever the password is requested.
[IMPROVED] iOS: Handling of search result fetching and table reloading.
[REMOVED] OS X: Disabled ability to add new sites from OS X until I
have time to implement it properly without causing
duplicates etc.
[MOVED] iCloud and Core Data support was centralised to iOS and OS X
to make sure both platforms always use the same container
configuration.
[FIXED] iCloud sync problems.
[REMOVED] iCloud KV is not used/needed.
[ADDED] Crashlytics, Localytics.
[IMPROVED] Async TestFlight takeOff.
[REMOVED] TestFlight token hidden.
[FIXED] Warnings, mostly to do with sign conversions.
[ADDED] Warning messages whenever site's password changes, allowing
the user to cancel the operation.
[ADDED] Make password counter resettable by holding down on the
counter increment button.
[FIXED] Switching between guide and unlock screen.
[ADDED] Sign out button in action so you can sign in with a
different master password.
[REMOVED] Change password from MPConfig. There are better facilities
for this now.
[FIXED] Image names in the lockscreen.
[UPDATED] TestFlight SDK updated to 0.8.3
[ADDED] Log >=info messages to TestFlight
[ADDED] Hide status bar while locked.
[ADDED] Show all sites when search results icon is tapped.
[IMPROVED] Search table cells.
[IMPROVED] Use SHA-1 instead of MD-4 for hashing the user givens.
[UPDATED] Remember master password on by default.
[IMPROVED] More and improved FAQ.
[ADDED] Auto-generate build/version values in Info.plist and
Settings Root.plist.
[ADDED] Settings for remembering and storing the master password.
[ADDED] KeyChain used to store master password & hash.
[IMPROVED] Remember whether help is hidden.
[FIXED] Making passwords stored.
[ADDED] Generated password counter. Edit stored passwords.
[IMPROVED] UI prettier and better documented.
[ADDED] Warnings when changing a site's password.