[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.