Compare commits
15 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
850978cbe3 | ||
|
|
e8c00296bd | ||
|
|
52b8033c37 | ||
|
|
6f2bc83806 | ||
|
|
2a48c9d272 | ||
|
|
27d0373a6e | ||
|
|
96b50f7ef0 | ||
|
|
dc7ff5f668 | ||
|
|
0c9c9737d9 | ||
|
|
8ef099d707 | ||
|
|
6da15306b0 | ||
|
|
699d0869fc | ||
|
|
83efa853fc | ||
|
|
75de4b443f | ||
|
|
42c7fb446e |
2
External/Pearl
vendored
@@ -39,6 +39,8 @@
|
|||||||
DA350A0715F11F9400C14A8E /* pull-down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0315F11F9400C14A8E /* pull-down@2x.png */; };
|
DA350A0715F11F9400C14A8E /* pull-down@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0315F11F9400C14A8E /* pull-down@2x.png */; };
|
||||||
DA350A0815F11F9400C14A8E /* pull-up.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0415F11F9400C14A8E /* pull-up.png */; };
|
DA350A0815F11F9400C14A8E /* pull-up.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0415F11F9400C14A8E /* pull-up.png */; };
|
||||||
DA350A0915F11F9400C14A8E /* pull-up@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0515F11F9400C14A8E /* pull-up@2x.png */; };
|
DA350A0915F11F9400C14A8E /* pull-up@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA350A0515F11F9400C14A8E /* pull-up@2x.png */; };
|
||||||
|
DA3EE946160145C700C68F6D /* Default-568h.png in Resources */ = {isa = PBXBuildFile; fileRef = DA3EE944160145C700C68F6D /* Default-568h.png */; };
|
||||||
|
DA3EE947160145C700C68F6D /* Default-568h@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA3EE945160145C700C68F6D /* Default-568h@2x.png */; };
|
||||||
DA3EF17B15A47744003ABF4E /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */; };
|
DA3EF17B15A47744003ABF4E /* SenTestingKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */; };
|
||||||
DA3EF17C15A47744003ABF4E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA48147E415C00F98B1E /* UIKit.framework */; };
|
DA3EF17C15A47744003ABF4E /* UIKit.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA48147E415C00F98B1E /* UIKit.framework */; };
|
||||||
DA3EF17D15A47744003ABF4E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DA3EF17D15A47744003ABF4E /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
@@ -120,6 +122,13 @@
|
|||||||
DA6061D715F20C0900097266 /* page-deblock@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D115F20C0900097266 /* page-deblock@2x.png */; };
|
DA6061D715F20C0900097266 /* page-deblock@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D115F20C0900097266 /* page-deblock@2x.png */; };
|
||||||
DA6061D815F20C0900097266 /* page-gorillas.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D215F20C0900097266 /* page-gorillas.png */; };
|
DA6061D815F20C0900097266 /* page-gorillas.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D215F20C0900097266 /* page-gorillas.png */; };
|
||||||
DA6061D915F20C0900097266 /* page-gorillas@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D315F20C0900097266 /* page-gorillas@2x.png */; };
|
DA6061D915F20C0900097266 /* page-gorillas@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA6061D315F20C0900097266 /* page-gorillas@2x.png */; };
|
||||||
|
DA609F581600CE980030AE31 /* LocalyticsDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DA609F511600CE980030AE31 /* LocalyticsDatabase.h */; };
|
||||||
|
DA609F591600CE980030AE31 /* LocalyticsDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = DA609F521600CE980030AE31 /* LocalyticsDatabase.m */; };
|
||||||
|
DA609F5A1600CE980030AE31 /* LocalyticsSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DA609F531600CE980030AE31 /* LocalyticsSession.h */; };
|
||||||
|
DA609F5B1600CE980030AE31 /* LocalyticsSession.m in Sources */ = {isa = PBXBuildFile; fileRef = DA609F541600CE980030AE31 /* LocalyticsSession.m */; };
|
||||||
|
DA609F5C1600CE980030AE31 /* LocalyticsUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = DA609F551600CE980030AE31 /* LocalyticsUploader.h */; };
|
||||||
|
DA609F5D1600CE980030AE31 /* LocalyticsUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = DA609F561600CE980030AE31 /* LocalyticsUploader.m */; };
|
||||||
|
DA609F5E1600CE980030AE31 /* WebserviceConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = DA609F571600CE980030AE31 /* WebserviceConstants.h */; };
|
||||||
DA672D2F14F92C6B004A189C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DA672D2E14F92C6B004A189C /* libz.dylib */; };
|
DA672D2F14F92C6B004A189C /* libz.dylib in Frameworks */ = {isa = PBXBuildFile; fileRef = DA672D2E14F92C6B004A189C /* libz.dylib */; };
|
||||||
DA672D3014F9413D004A189C /* libPearl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC77CAD148291A600BCF976 /* libPearl.a */; };
|
DA672D3014F9413D004A189C /* libPearl.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAC77CAD148291A600BCF976 /* libPearl.a */; };
|
||||||
DA829E52159847E0002417D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DA829E52159847E0002417D3 /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
@@ -770,20 +779,11 @@
|
|||||||
DACABB8D1572A4A5008BA211 /* tip_basic_black_top_right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8B1572A4A4008BA211 /* tip_basic_black_top_right@2x.png */; };
|
DACABB8D1572A4A5008BA211 /* tip_basic_black_top_right@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8B1572A4A4008BA211 /* tip_basic_black_top_right@2x.png */; };
|
||||||
DACABB901572B76A008BA211 /* tip_basic_black_top.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8E1572B769008BA211 /* tip_basic_black_top.png */; };
|
DACABB901572B76A008BA211 /* tip_basic_black_top.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8E1572B769008BA211 /* tip_basic_black_top.png */; };
|
||||||
DACABB911572B76A008BA211 /* tip_basic_black_top@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8F1572B769008BA211 /* tip_basic_black_top@2x.png */; };
|
DACABB911572B76A008BA211 /* tip_basic_black_top@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DACABB8F1572B769008BA211 /* tip_basic_black_top@2x.png */; };
|
||||||
|
DAD18EF4160A760600D15088 /* libTestFlight.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD3126215528C9C00A3F9ED /* libTestFlight.a */; };
|
||||||
DAD3126715528C9C00A3F9ED /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD3125F15528C9C00A3F9ED /* Crashlytics.framework */; };
|
DAD3126715528C9C00A3F9ED /* Crashlytics.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD3125F15528C9C00A3F9ED /* Crashlytics.framework */; };
|
||||||
DAD3126815528C9C00A3F9ED /* Crashlytics.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3126015528C9C00A3F9ED /* Crashlytics.plist */; };
|
DAD3126815528C9C00A3F9ED /* Crashlytics.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3126015528C9C00A3F9ED /* Crashlytics.plist */; };
|
||||||
DAD3126915528C9C00A3F9ED /* libTestFlight.a in Frameworks */ = {isa = PBXBuildFile; fileRef = DAD3126215528C9C00A3F9ED /* libTestFlight.a */; };
|
|
||||||
DAD3126C15528C9C00A3F9ED /* TestFlight.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3126615528C9C00A3F9ED /* TestFlight.plist */; };
|
DAD3126C15528C9C00A3F9ED /* TestFlight.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3126615528C9C00A3F9ED /* TestFlight.plist */; };
|
||||||
DAD3127215528CD200A3F9ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
DAD3127215528CD200A3F9ED /* Foundation.framework in Frameworks */ = {isa = PBXBuildFile; fileRef = DA5BFA4A147E415C00F98B1E /* Foundation.framework */; };
|
||||||
DAD3128715528D0F00A3F9ED /* LocalyticsDatabase.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD3127E15528D0F00A3F9ED /* LocalyticsDatabase.h */; };
|
|
||||||
DAD3128815528D0F00A3F9ED /* LocalyticsDatabase.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD3127F15528D0F00A3F9ED /* LocalyticsDatabase.m */; };
|
|
||||||
DAD3128915528D0F00A3F9ED /* LocalyticsSession.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD3128015528D0F00A3F9ED /* LocalyticsSession.h */; };
|
|
||||||
DAD3128A15528D0F00A3F9ED /* LocalyticsSession.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD3128115528D0F00A3F9ED /* LocalyticsSession.m */; };
|
|
||||||
DAD3128B15528D0F00A3F9ED /* LocalyticsUploader.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD3128215528D0F00A3F9ED /* LocalyticsUploader.h */; };
|
|
||||||
DAD3128C15528D0F00A3F9ED /* LocalyticsUploader.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD3128315528D0F00A3F9ED /* LocalyticsUploader.m */; };
|
|
||||||
DAD3128D15528D0F00A3F9ED /* UploaderThread.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD3128415528D0F00A3F9ED /* UploaderThread.h */; };
|
|
||||||
DAD3128E15528D0F00A3F9ED /* UploaderThread.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD3128515528D0F00A3F9ED /* UploaderThread.m */; };
|
|
||||||
DAD3128F15528D0F00A3F9ED /* WebserviceConstants.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD3128615528D0F00A3F9ED /* WebserviceConstants.h */; };
|
|
||||||
DAD3129015528D1600A3F9ED /* Localytics.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3127D15528D0F00A3F9ED /* Localytics.plist */; };
|
DAD3129015528D1600A3F9ED /* Localytics.plist in Resources */ = {isa = PBXBuildFile; fileRef = DAD3127D15528D0F00A3F9ED /* Localytics.plist */; };
|
||||||
DAD312BB1552977200A3F9ED /* UIColor+Expanded.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD312B71552977200A3F9ED /* UIColor+Expanded.h */; };
|
DAD312BB1552977200A3F9ED /* UIColor+Expanded.h in Headers */ = {isa = PBXBuildFile; fileRef = DAD312B71552977200A3F9ED /* UIColor+Expanded.h */; };
|
||||||
DAD312BC1552977200A3F9ED /* UIColor+Expanded.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD312B81552977200A3F9ED /* UIColor+Expanded.m */; };
|
DAD312BC1552977200A3F9ED /* UIColor+Expanded.m in Sources */ = {isa = PBXBuildFile; fileRef = DAD312B81552977200A3F9ED /* UIColor+Expanded.m */; };
|
||||||
@@ -1022,6 +1022,8 @@
|
|||||||
DA350A0315F11F9400C14A8E /* pull-down@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-down@2x.png"; sourceTree = "<group>"; };
|
DA350A0315F11F9400C14A8E /* pull-down@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-down@2x.png"; sourceTree = "<group>"; };
|
||||||
DA350A0415F11F9400C14A8E /* pull-up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-up.png"; sourceTree = "<group>"; };
|
DA350A0415F11F9400C14A8E /* pull-up.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-up.png"; sourceTree = "<group>"; };
|
||||||
DA350A0515F11F9400C14A8E /* pull-up@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-up@2x.png"; sourceTree = "<group>"; };
|
DA350A0515F11F9400C14A8E /* pull-up@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "pull-up@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA3EE944160145C700C68F6D /* Default-568h.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h.png"; sourceTree = "<group>"; };
|
||||||
|
DA3EE945160145C700C68F6D /* Default-568h@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "Default-568h@2x.png"; sourceTree = "<group>"; };
|
||||||
DA3EF17915A47744003ABF4E /* Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
|
DA3EF17915A47744003ABF4E /* Tests.octest */ = {isa = PBXFileReference; explicitFileType = wrapper.cfbundle; includeInIndex = 0; path = Tests.octest; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
DA3EF17A15A47744003ABF4E /* SenTestingKit.framework */ = {isa = PBXFileReference; lastKnownFileType = wrapper.framework; name = SenTestingKit.framework; path = Library/Frameworks/SenTestingKit.framework; sourceTree = DEVELOPER_DIR; };
|
||||||
DA3EF18015A47744003ABF4E /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
|
DA3EF18015A47744003ABF4E /* Tests-Info.plist */ = {isa = PBXFileReference; lastKnownFileType = text.plist.xml; path = "Tests-Info.plist"; sourceTree = "<group>"; };
|
||||||
@@ -1180,6 +1182,13 @@
|
|||||||
DA6061D115F20C0900097266 /* page-deblock@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-deblock@2x.png"; sourceTree = "<group>"; };
|
DA6061D115F20C0900097266 /* page-deblock@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-deblock@2x.png"; sourceTree = "<group>"; };
|
||||||
DA6061D215F20C0900097266 /* page-gorillas.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-gorillas.png"; sourceTree = "<group>"; };
|
DA6061D215F20C0900097266 /* page-gorillas.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-gorillas.png"; sourceTree = "<group>"; };
|
||||||
DA6061D315F20C0900097266 /* page-gorillas@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-gorillas@2x.png"; sourceTree = "<group>"; };
|
DA6061D315F20C0900097266 /* page-gorillas@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "page-gorillas@2x.png"; sourceTree = "<group>"; };
|
||||||
|
DA609F511600CE980030AE31 /* LocalyticsDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsDatabase.h; sourceTree = "<group>"; };
|
||||||
|
DA609F521600CE980030AE31 /* LocalyticsDatabase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsDatabase.m; sourceTree = "<group>"; };
|
||||||
|
DA609F531600CE980030AE31 /* LocalyticsSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsSession.h; sourceTree = "<group>"; };
|
||||||
|
DA609F541600CE980030AE31 /* LocalyticsSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsSession.m; sourceTree = "<group>"; };
|
||||||
|
DA609F551600CE980030AE31 /* LocalyticsUploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsUploader.h; sourceTree = "<group>"; };
|
||||||
|
DA609F561600CE980030AE31 /* LocalyticsUploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsUploader.m; sourceTree = "<group>"; };
|
||||||
|
DA609F571600CE980030AE31 /* WebserviceConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebserviceConstants.h; sourceTree = "<group>"; };
|
||||||
DA672D2E14F92C6B004A189C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
DA672D2E14F92C6B004A189C /* libz.dylib */ = {isa = PBXFileReference; lastKnownFileType = "compiled.mach-o.dylib"; name = libz.dylib; path = usr/lib/libz.dylib; sourceTree = SDKROOT; };
|
||||||
DA79A9BB1557DB6F00BAA07A /* libscryptenc-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libscryptenc-ios.a"; sourceTree = "<group>"; };
|
DA79A9BB1557DB6F00BAA07A /* libscryptenc-ios.a */ = {isa = PBXFileReference; lastKnownFileType = archive.ar; path = "libscryptenc-ios.a"; sourceTree = "<group>"; };
|
||||||
DA79A9BD1557DDC700BAA07A /* scrypt.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = scrypt.xcodeproj; path = External/Pearl/External/iOSPorts/ports/security/scrypt/scrypt.xcodeproj; sourceTree = "<group>"; };
|
DA79A9BD1557DDC700BAA07A /* scrypt.xcodeproj */ = {isa = PBXFileReference; lastKnownFileType = "wrapper.pb-project"; name = scrypt.xcodeproj; path = External/Pearl/External/iOSPorts/ports/security/scrypt/scrypt.xcodeproj; sourceTree = "<group>"; };
|
||||||
@@ -1919,15 +1928,6 @@
|
|||||||
DAD3126615528C9C00A3F9ED /* TestFlight.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = TestFlight.plist; sourceTree = "<group>"; };
|
DAD3126615528C9C00A3F9ED /* TestFlight.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = TestFlight.plist; sourceTree = "<group>"; };
|
||||||
DAD3127115528CD200A3F9ED /* libLocalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libLocalytics.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
DAD3127115528CD200A3F9ED /* libLocalytics.a */ = {isa = PBXFileReference; explicitFileType = archive.ar; includeInIndex = 0; path = libLocalytics.a; sourceTree = BUILT_PRODUCTS_DIR; };
|
||||||
DAD3127D15528D0F00A3F9ED /* Localytics.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Localytics.plist; sourceTree = "<group>"; };
|
DAD3127D15528D0F00A3F9ED /* Localytics.plist */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = text.plist.xml; path = Localytics.plist; sourceTree = "<group>"; };
|
||||||
DAD3127E15528D0F00A3F9ED /* LocalyticsDatabase.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsDatabase.h; sourceTree = "<group>"; };
|
|
||||||
DAD3127F15528D0F00A3F9ED /* LocalyticsDatabase.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsDatabase.m; sourceTree = "<group>"; };
|
|
||||||
DAD3128015528D0F00A3F9ED /* LocalyticsSession.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsSession.h; sourceTree = "<group>"; };
|
|
||||||
DAD3128115528D0F00A3F9ED /* LocalyticsSession.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsSession.m; sourceTree = "<group>"; };
|
|
||||||
DAD3128215528D0F00A3F9ED /* LocalyticsUploader.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = LocalyticsUploader.h; sourceTree = "<group>"; };
|
|
||||||
DAD3128315528D0F00A3F9ED /* LocalyticsUploader.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = LocalyticsUploader.m; sourceTree = "<group>"; };
|
|
||||||
DAD3128415528D0F00A3F9ED /* UploaderThread.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = UploaderThread.h; sourceTree = "<group>"; };
|
|
||||||
DAD3128515528D0F00A3F9ED /* UploaderThread.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = UploaderThread.m; sourceTree = "<group>"; };
|
|
||||||
DAD3128615528D0F00A3F9ED /* WebserviceConstants.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = WebserviceConstants.h; sourceTree = "<group>"; };
|
|
||||||
DAD312B71552977200A3F9ED /* UIColor+Expanded.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Expanded.h"; path = "External/Pearl/External/uicolor-utilities/UIColor+Expanded.h"; sourceTree = SOURCE_ROOT; };
|
DAD312B71552977200A3F9ED /* UIColor+Expanded.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+Expanded.h"; path = "External/Pearl/External/uicolor-utilities/UIColor+Expanded.h"; sourceTree = SOURCE_ROOT; };
|
||||||
DAD312B81552977200A3F9ED /* UIColor+Expanded.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Expanded.m"; path = "External/Pearl/External/uicolor-utilities/UIColor+Expanded.m"; sourceTree = SOURCE_ROOT; };
|
DAD312B81552977200A3F9ED /* UIColor+Expanded.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = "UIColor+Expanded.m"; path = "External/Pearl/External/uicolor-utilities/UIColor+Expanded.m"; sourceTree = SOURCE_ROOT; };
|
||||||
DAD312B91552977200A3F9ED /* UIColor+HSV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+HSV.h"; path = "External/Pearl/External/uicolor-utilities/UIColor+HSV.h"; sourceTree = SOURCE_ROOT; };
|
DAD312B91552977200A3F9ED /* UIColor+HSV.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = "UIColor+HSV.h"; path = "External/Pearl/External/uicolor-utilities/UIColor+HSV.h"; sourceTree = SOURCE_ROOT; };
|
||||||
@@ -2108,9 +2108,9 @@
|
|||||||
DA5BFA4D147E415C00F98B1E /* CoreGraphics.framework in Frameworks */,
|
DA5BFA4D147E415C00F98B1E /* CoreGraphics.framework in Frameworks */,
|
||||||
DA5BFA4F147E415C00F98B1E /* CoreData.framework in Frameworks */,
|
DA5BFA4F147E415C00F98B1E /* CoreData.framework in Frameworks */,
|
||||||
DAD3126715528C9C00A3F9ED /* Crashlytics.framework in Frameworks */,
|
DAD3126715528C9C00A3F9ED /* Crashlytics.framework in Frameworks */,
|
||||||
DAD3126915528C9C00A3F9ED /* libTestFlight.a in Frameworks */,
|
|
||||||
93D399433EA75E50656040CB /* Twitter.framework in Frameworks */,
|
93D399433EA75E50656040CB /* Twitter.framework in Frameworks */,
|
||||||
DA55878015E82C0300860B4F /* FacebookSDK.framework in Frameworks */,
|
DA55878015E82C0300860B4F /* FacebookSDK.framework in Frameworks */,
|
||||||
|
DAD18EF4160A760600D15088 /* libTestFlight.a in Frameworks */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -2168,6 +2168,16 @@
|
|||||||
/* End PBXFrameworksBuildPhase section */
|
/* End PBXFrameworksBuildPhase section */
|
||||||
|
|
||||||
/* Begin PBXGroup section */
|
/* Begin PBXGroup section */
|
||||||
|
DA3EE95B1601C06000C68F6D /* Facebook */ = {
|
||||||
|
isa = PBXGroup;
|
||||||
|
children = (
|
||||||
|
DA5587B715E838CD00860B4F /* DeprecatedHeaders */,
|
||||||
|
DA55878115E82C2B00860B4F /* FacebookSDKResources.bundle */,
|
||||||
|
DA55877F15E82C0300860B4F /* FacebookSDK.framework */,
|
||||||
|
);
|
||||||
|
name = Facebook;
|
||||||
|
sourceTree = "<group>";
|
||||||
|
};
|
||||||
DA3EF17E15A47744003ABF4E /* Tests */ = {
|
DA3EF17E15A47744003ABF4E /* Tests */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
@@ -2377,6 +2387,7 @@
|
|||||||
DAD3126115528C9C00A3F9ED /* TestFlight */,
|
DAD3126115528C9C00A3F9ED /* TestFlight */,
|
||||||
DAD3127315528CD200A3F9ED /* Localytics */,
|
DAD3127315528CD200A3F9ED /* Localytics */,
|
||||||
DA5587F715E8B7B200860B4F /* Google+ */,
|
DA5587F715E8B7B200860B4F /* Google+ */,
|
||||||
|
DA3EE95B1601C06000C68F6D /* Facebook */,
|
||||||
DA4425D71557BF260052177D /* iCloudStoreManager */,
|
DA4425D71557BF260052177D /* iCloudStoreManager */,
|
||||||
DA829E5D15984812002417D3 /* FontReplacer */,
|
DA829E5D15984812002417D3 /* FontReplacer */,
|
||||||
DA3EF17E15A47744003ABF4E /* Tests */,
|
DA3EF17E15A47744003ABF4E /* Tests */,
|
||||||
@@ -2405,9 +2416,6 @@
|
|||||||
DA5BFA47147E415C00F98B1E /* Frameworks */ = {
|
DA5BFA47147E415C00F98B1E /* Frameworks */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
DA5587B715E838CD00860B4F /* DeprecatedHeaders */,
|
|
||||||
DA55878115E82C2B00860B4F /* FacebookSDKResources.bundle */,
|
|
||||||
DA55877F15E82C0300860B4F /* FacebookSDK.framework */,
|
|
||||||
93D394077F8FAB8167647187 /* Twitter.framework */,
|
93D394077F8FAB8167647187 /* Twitter.framework */,
|
||||||
DAAC35DD156BD77D00C5FD93 /* CoreTelephony.framework */,
|
DAAC35DD156BD77D00C5FD93 /* CoreTelephony.framework */,
|
||||||
DAD312C01552A20800A3F9ED /* libsqlite3.dylib */,
|
DAD312C01552A20800A3F9ED /* libsqlite3.dylib */,
|
||||||
@@ -2639,6 +2647,8 @@
|
|||||||
DAB8D46F15036BF600CED3BC /* Resources */ = {
|
DAB8D46F15036BF600CED3BC /* Resources */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DA3EE944160145C700C68F6D /* Default-568h.png */,
|
||||||
|
DA3EE945160145C700C68F6D /* Default-568h@2x.png */,
|
||||||
DA6061CE15F20C0900097266 /* book.png */,
|
DA6061CE15F20C0900097266 /* book.png */,
|
||||||
DA6061CF15F20C0900097266 /* book@2x.png */,
|
DA6061CF15F20C0900097266 /* book@2x.png */,
|
||||||
DA6061D015F20C0900097266 /* page-deblock.png */,
|
DA6061D015F20C0900097266 /* page-deblock.png */,
|
||||||
@@ -3473,16 +3483,14 @@
|
|||||||
DAD3127315528CD200A3F9ED /* Localytics */ = {
|
DAD3127315528CD200A3F9ED /* Localytics */ = {
|
||||||
isa = PBXGroup;
|
isa = PBXGroup;
|
||||||
children = (
|
children = (
|
||||||
|
DA609F511600CE980030AE31 /* LocalyticsDatabase.h */,
|
||||||
|
DA609F521600CE980030AE31 /* LocalyticsDatabase.m */,
|
||||||
|
DA609F531600CE980030AE31 /* LocalyticsSession.h */,
|
||||||
|
DA609F541600CE980030AE31 /* LocalyticsSession.m */,
|
||||||
|
DA609F551600CE980030AE31 /* LocalyticsUploader.h */,
|
||||||
|
DA609F561600CE980030AE31 /* LocalyticsUploader.m */,
|
||||||
|
DA609F571600CE980030AE31 /* WebserviceConstants.h */,
|
||||||
DAD3127D15528D0F00A3F9ED /* Localytics.plist */,
|
DAD3127D15528D0F00A3F9ED /* Localytics.plist */,
|
||||||
DAD3127E15528D0F00A3F9ED /* LocalyticsDatabase.h */,
|
|
||||||
DAD3127F15528D0F00A3F9ED /* LocalyticsDatabase.m */,
|
|
||||||
DAD3128015528D0F00A3F9ED /* LocalyticsSession.h */,
|
|
||||||
DAD3128115528D0F00A3F9ED /* LocalyticsSession.m */,
|
|
||||||
DAD3128215528D0F00A3F9ED /* LocalyticsUploader.h */,
|
|
||||||
DAD3128315528D0F00A3F9ED /* LocalyticsUploader.m */,
|
|
||||||
DAD3128415528D0F00A3F9ED /* UploaderThread.h */,
|
|
||||||
DAD3128515528D0F00A3F9ED /* UploaderThread.m */,
|
|
||||||
DAD3128615528D0F00A3F9ED /* WebserviceConstants.h */,
|
|
||||||
);
|
);
|
||||||
path = Localytics;
|
path = Localytics;
|
||||||
sourceTree = "<group>";
|
sourceTree = "<group>";
|
||||||
@@ -3743,11 +3751,10 @@
|
|||||||
isa = PBXHeadersBuildPhase;
|
isa = PBXHeadersBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
DAD3128715528D0F00A3F9ED /* LocalyticsDatabase.h in Headers */,
|
DA609F581600CE980030AE31 /* LocalyticsDatabase.h in Headers */,
|
||||||
DAD3128915528D0F00A3F9ED /* LocalyticsSession.h in Headers */,
|
DA609F5A1600CE980030AE31 /* LocalyticsSession.h in Headers */,
|
||||||
DAD3128B15528D0F00A3F9ED /* LocalyticsUploader.h in Headers */,
|
DA609F5C1600CE980030AE31 /* LocalyticsUploader.h in Headers */,
|
||||||
DAD3128D15528D0F00A3F9ED /* UploaderThread.h in Headers */,
|
DA609F5E1600CE980030AE31 /* WebserviceConstants.h in Headers */,
|
||||||
DAD3128F15528D0F00A3F9ED /* WebserviceConstants.h in Headers */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -4678,6 +4685,8 @@
|
|||||||
DA6061D715F20C0900097266 /* page-deblock@2x.png in Resources */,
|
DA6061D715F20C0900097266 /* page-deblock@2x.png in Resources */,
|
||||||
DA6061D815F20C0900097266 /* page-gorillas.png in Resources */,
|
DA6061D815F20C0900097266 /* page-gorillas.png in Resources */,
|
||||||
DA6061D915F20C0900097266 /* page-gorillas@2x.png in Resources */,
|
DA6061D915F20C0900097266 /* page-gorillas@2x.png in Resources */,
|
||||||
|
DA3EE946160145C700C68F6D /* Default-568h.png in Resources */,
|
||||||
|
DA3EE947160145C700C68F6D /* Default-568h@2x.png in Resources */,
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -4703,13 +4712,15 @@
|
|||||||
files = (
|
files = (
|
||||||
);
|
);
|
||||||
inputPaths = (
|
inputPaths = (
|
||||||
|
"$(SRCROOT)/External/facebook-ios-sdk/src",
|
||||||
);
|
);
|
||||||
name = "Run Script: FacebookSDK";
|
name = "Run Script: FacebookSDK";
|
||||||
outputPaths = (
|
outputPaths = (
|
||||||
|
"$(SRCROOT)/External/facebook-ios-sdk/build",
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
shellPath = /bin/sh;
|
shellPath = /bin/sh;
|
||||||
shellScript = "[ -d External/facebook-ios-sdk/build ] || env -i PATH=\"$PATH\" ./External/facebook-ios-sdk/scripts/build_framework.sh";
|
shellScript = "env -i PATH=\"$PATH\" ./External/facebook-ios-sdk/scripts/build_framework.sh";
|
||||||
showEnvVarsInLog = 0;
|
showEnvVarsInLog = 0;
|
||||||
};
|
};
|
||||||
DA6556E314D55F3000841C99 /* Run Script: GIT version -> Info.plist */ = {
|
DA6556E314D55F3000841C99 /* Run Script: GIT version -> Info.plist */ = {
|
||||||
@@ -4935,10 +4946,9 @@
|
|||||||
isa = PBXSourcesBuildPhase;
|
isa = PBXSourcesBuildPhase;
|
||||||
buildActionMask = 2147483647;
|
buildActionMask = 2147483647;
|
||||||
files = (
|
files = (
|
||||||
DAD3128815528D0F00A3F9ED /* LocalyticsDatabase.m in Sources */,
|
DA609F591600CE980030AE31 /* LocalyticsDatabase.m in Sources */,
|
||||||
DAD3128A15528D0F00A3F9ED /* LocalyticsSession.m in Sources */,
|
DA609F5B1600CE980030AE31 /* LocalyticsSession.m in Sources */,
|
||||||
DAD3128C15528D0F00A3F9ED /* LocalyticsUploader.m in Sources */,
|
DA609F5D1600CE980030AE31 /* LocalyticsUploader.m in Sources */,
|
||||||
DAD3128E15528D0F00A3F9ED /* UploaderThread.m in Sources */,
|
|
||||||
);
|
);
|
||||||
runOnlyForDeploymentPostprocessing = 0;
|
runOnlyForDeploymentPostprocessing = 0;
|
||||||
};
|
};
|
||||||
@@ -5138,7 +5148,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
ARCHS = armv7;
|
||||||
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||||
@@ -5199,7 +5209,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
ARCHS = armv7;
|
||||||
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||||
@@ -5208,7 +5218,7 @@
|
|||||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
|
CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
@@ -5248,7 +5258,7 @@
|
|||||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "${TARGET_NAME}";
|
PRODUCT_NAME = "${TARGET_NAME}";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "1C557CB8-083F-4EFE-A88E-41171ADF7611";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -5285,6 +5295,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = MasterPassword/iOS/MasterPassword.entitlements;
|
CODE_SIGN_ENTITLEMENTS = MasterPassword/iOS/MasterPassword.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/Crashlytics\"",
|
"\"$(SRCROOT)/Crashlytics\"",
|
||||||
@@ -5299,6 +5310,7 @@
|
|||||||
"\"$(SRCROOT)/External/Pearl/Pearl-Crypto\"",
|
"\"$(SRCROOT)/External/Pearl/Pearl-Crypto\"",
|
||||||
"\"$(SRCROOT)/External/google-plus-ios-sdk/lib\"",
|
"\"$(SRCROOT)/External/google-plus-ios-sdk/lib\"",
|
||||||
);
|
);
|
||||||
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "DC0CD5E6-3ADC-40FF-8A6D-02BA6D8F5039";
|
||||||
SKIP_INSTALL = NO;
|
SKIP_INSTALL = NO;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
};
|
};
|
||||||
@@ -5351,7 +5363,7 @@
|
|||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
ALWAYS_SEARCH_USER_PATHS = NO;
|
ALWAYS_SEARCH_USER_PATHS = NO;
|
||||||
ARCHS = "$(ARCHS_STANDARD_32_BIT)";
|
ARCHS = armv7;
|
||||||
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
CLANG_WARN_CXX0X_EXTENSIONS = YES;
|
||||||
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
CLANG_WARN_DEPRECATED_OBJC_IMPLEMENTATIONS = YES;
|
||||||
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
CLANG_WARN_IMPLICIT_SIGN_CONVERSION = YES;
|
||||||
@@ -5360,7 +5372,7 @@
|
|||||||
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
CLANG_WARN_SUSPICIOUS_IMPLICIT_CONVERSION = YES;
|
||||||
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
CLANG_WARN__DUPLICATE_METHOD_MATCH = YES;
|
||||||
CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
|
CLANG_WARN__EXIT_TIME_DESTRUCTORS = YES;
|
||||||
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont";
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution";
|
||||||
COPY_PHASE_STRIP = YES;
|
COPY_PHASE_STRIP = YES;
|
||||||
GCC_C_LANGUAGE_STANDARD = gnu99;
|
GCC_C_LANGUAGE_STANDARD = gnu99;
|
||||||
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
GCC_PRECOMPILE_PREFIX_HEADER = YES;
|
||||||
@@ -5400,7 +5412,7 @@
|
|||||||
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
IPHONEOS_DEPLOYMENT_TARGET = 5.0;
|
||||||
OTHER_LDFLAGS = "-ObjC";
|
OTHER_LDFLAGS = "-ObjC";
|
||||||
PRODUCT_NAME = "${TARGET_NAME}";
|
PRODUCT_NAME = "${TARGET_NAME}";
|
||||||
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "1C557CB8-083F-4EFE-A88E-41171ADF7611";
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "";
|
||||||
SDKROOT = iphoneos;
|
SDKROOT = iphoneos;
|
||||||
SKIP_INSTALL = YES;
|
SKIP_INSTALL = YES;
|
||||||
TARGETED_DEVICE_FAMILY = "1,2";
|
TARGETED_DEVICE_FAMILY = "1,2";
|
||||||
@@ -5413,6 +5425,7 @@
|
|||||||
buildSettings = {
|
buildSettings = {
|
||||||
CLANG_ENABLE_OBJC_ARC = YES;
|
CLANG_ENABLE_OBJC_ARC = YES;
|
||||||
CODE_SIGN_ENTITLEMENTS = MasterPassword/iOS/MasterPassword.entitlements;
|
CODE_SIGN_ENTITLEMENTS = MasterPassword/iOS/MasterPassword.entitlements;
|
||||||
|
"CODE_SIGN_IDENTITY[sdk=iphoneos*]" = "iPhone Distribution: Maarten Billemont";
|
||||||
FRAMEWORK_SEARCH_PATHS = (
|
FRAMEWORK_SEARCH_PATHS = (
|
||||||
"$(inherited)",
|
"$(inherited)",
|
||||||
"\"$(SRCROOT)/Crashlytics\"",
|
"\"$(SRCROOT)/Crashlytics\"",
|
||||||
@@ -5427,6 +5440,7 @@
|
|||||||
"\"$(SRCROOT)/External/Pearl/Pearl-Crypto\"",
|
"\"$(SRCROOT)/External/Pearl/Pearl-Crypto\"",
|
||||||
"\"$(SRCROOT)/External/google-plus-ios-sdk/lib\"",
|
"\"$(SRCROOT)/External/google-plus-ios-sdk/lib\"",
|
||||||
);
|
);
|
||||||
|
"PROVISIONING_PROFILE[sdk=iphoneos*]" = "3EF104A5-610A-429E-ACF0-232A2C8A7E1C";
|
||||||
SKIP_INSTALL = NO;
|
SKIP_INSTALL = NO;
|
||||||
TARGETED_DEVICE_FAMILY = 1;
|
TARGETED_DEVICE_FAMILY = 1;
|
||||||
};
|
};
|
||||||
@@ -5572,6 +5586,7 @@
|
|||||||
DAD3127A15528CD200A3F9ED /* Debug */ = {
|
DAD3127A15528CD200A3F9ED /* Debug */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
CLANG_WARN_OBJCPP_ARC_ABI = NO;
|
||||||
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
||||||
};
|
};
|
||||||
name = Debug;
|
name = Debug;
|
||||||
@@ -5579,6 +5594,7 @@
|
|||||||
DAD3127B15528CD200A3F9ED /* AdHoc */ = {
|
DAD3127B15528CD200A3F9ED /* AdHoc */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
CLANG_WARN_OBJCPP_ARC_ABI = NO;
|
||||||
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
||||||
};
|
};
|
||||||
name = AdHoc;
|
name = AdHoc;
|
||||||
@@ -5586,6 +5602,7 @@
|
|||||||
DAD3127C15528CD200A3F9ED /* AppStore */ = {
|
DAD3127C15528CD200A3F9ED /* AppStore */ = {
|
||||||
isa = XCBuildConfiguration;
|
isa = XCBuildConfiguration;
|
||||||
buildSettings = {
|
buildSettings = {
|
||||||
|
CLANG_WARN_OBJCPP_ARC_ABI = NO;
|
||||||
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
GCC_WARN_INHIBIT_ALL_WARNINGS = YES;
|
||||||
};
|
};
|
||||||
name = AppStore;
|
name = AppStore;
|
||||||
|
|||||||
@@ -1,4 +1,9 @@
|
|||||||
#!/usr/bin/env bash
|
#!/usr/bin/env bash
|
||||||
|
|
||||||
|
# Uncomment this to set your user name. Master Password will no longer ask you for a user name.
|
||||||
|
# export MP_USERNAME="Robert Lee Mitchell"
|
||||||
|
# Uncomment this to hardcode your master password. Make sure this file's permissions are tight. Master Password will not ask you for your master password anymore. This is probably not a good idea.
|
||||||
|
# export MP_PASSWORD="banana colored duckling"
|
||||||
|
|
||||||
cd "${BASH_SOURCE[0]%/*}"
|
cd "${BASH_SOURCE[0]%/*}"
|
||||||
java -jar masterpassword-cli-GIT-SNAPSHOT.jar "$@"
|
java -jar masterpassword-cli-GIT-SNAPSHOT.jar "$@"
|
||||||
|
|||||||
@@ -16,9 +16,11 @@
|
|||||||
static NSDictionary *keyQuery(MPUserEntity *user) {
|
static NSDictionary *keyQuery(MPUserEntity *user) {
|
||||||
|
|
||||||
return [PearlKeyChain createQueryForClass:kSecClassGenericPassword
|
return [PearlKeyChain createQueryForClass:kSecClassGenericPassword
|
||||||
attributes:@{(__bridge id)kSecAttrService: @"Saved Master Password",
|
attributes:@{
|
||||||
(__bridge id)kSecAttrAccount: user.name}
|
(__bridge id)kSecAttrService: @"Saved Master Password",
|
||||||
matches:nil];
|
(__bridge id)kSecAttrAccount: IfNotNilElse(user.name, @"")
|
||||||
|
}
|
||||||
|
matches:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
- (MPKey *)loadSavedKeyFor:(MPUserEntity *)user {
|
- (MPKey *)loadSavedKeyFor:(MPUserEntity *)user {
|
||||||
@@ -185,7 +187,9 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
|
|||||||
if (password) {
|
if (password) {
|
||||||
inf(@"Login failed for: %@", user.userID);
|
inf(@"Login failed for: %@", user.userID);
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointSignInFailed];
|
[TestFlight passCheckpoint:MPCheckpointSignInFailed];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignInFailed attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignInFailed attributes:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -200,7 +204,9 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
|
|||||||
|
|
||||||
@try {
|
@try {
|
||||||
if ([[MPiOSConfig get].sendInfo boolValue]) {
|
if ([[MPiOSConfig get].sendInfo boolValue]) {
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight addCustomEnvironmentInformation:user.userID forKey:@"username"];
|
[TestFlight addCustomEnvironmentInformation:user.userID forKey:@"username"];
|
||||||
|
#endif
|
||||||
[Crashlytics setObjectValue:user.userID forKey:@"username"];
|
[Crashlytics setObjectValue:user.userID forKey:@"username"];
|
||||||
[Crashlytics setUserName:user.userID];
|
[Crashlytics setUserName:user.userID];
|
||||||
}
|
}
|
||||||
@@ -218,7 +224,9 @@ static NSDictionary *keyQuery(MPUserEntity *user) {
|
|||||||
[[MPAppDelegate_Shared get] saveContext];
|
[[MPAppDelegate_Shared get] saveContext];
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedIn object:self];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationSignedIn object:self];
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointSignedIn];
|
[TestFlight passCheckpoint:MPCheckpointSignedIn];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignedIn attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSignedIn attributes:nil];
|
||||||
|
|
||||||
return YES;
|
return YES;
|
||||||
|
|||||||
@@ -43,6 +43,7 @@
|
|||||||
[managedObjectContext performBlockAndWait:^{
|
[managedObjectContext performBlockAndWait:^{
|
||||||
managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy;
|
managedObjectContext.mergePolicy = NSMergeByPropertyObjectTrumpMergePolicy;
|
||||||
managedObjectContext.undoManager = [NSUndoManager new];
|
managedObjectContext.undoManager = [NSUndoManager new];
|
||||||
|
managedObjectContext.persistentStoreCoordinator = self.storeManager.persistentStoreCoordinator;
|
||||||
}];
|
}];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -132,7 +133,9 @@
|
|||||||
iCloudEnabled = manager.iCloudEnabled;
|
iCloudEnabled = manager.iCloudEnabled;
|
||||||
inf(@"Using iCloud? %@", iCloudEnabled? @"YES": @"NO");
|
inf(@"Using iCloud? %@", iCloudEnabled? @"YES": @"NO");
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:iCloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled];
|
[TestFlight passCheckpoint:iCloudEnabled? MPCheckpointCloudEnabled: MPCheckpointCloudDisabled];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCloud attributes:@{
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCloud attributes:@{
|
||||||
@"enabled": iCloudEnabled? @"YES": @"NO"
|
@"enabled": iCloudEnabled? @"YES": @"NO"
|
||||||
}];
|
}];
|
||||||
@@ -145,7 +148,9 @@
|
|||||||
|
|
||||||
err(@"StoreManager: cause=%d, context=%@, error=%@", cause, context, error);
|
err(@"StoreManager: cause=%d, context=%@, error=%@", cause, context, error);
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:PearlString(MPCheckpointMPErrorUbiquity @"_%d", cause)];
|
[TestFlight passCheckpoint:PearlString(MPCheckpointMPErrorUbiquity @"_%d", cause)];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointMPErrorUbiquity attributes:@{
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointMPErrorUbiquity attributes:@{
|
||||||
@"cause": @(cause),
|
@"cause": @(cause),
|
||||||
@"error.domain": error.domain,
|
@"error.domain": error.domain,
|
||||||
@@ -164,7 +169,9 @@
|
|||||||
if (error.code == NSMigrationMissingSourceModelError) {
|
if (error.code == NSMigrationMissingSourceModelError) {
|
||||||
wrn(@"Resetting the local store.");
|
wrn(@"Resetting the local store.");
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointLocalStoreReset];
|
[TestFlight passCheckpoint:MPCheckpointLocalStoreReset];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointLocalStoreReset attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointLocalStoreReset attributes:nil];
|
||||||
manager.hardResetEnabled = YES;
|
manager.hardResetEnabled = YES;
|
||||||
[manager hardResetLocalStorage];
|
[manager hardResetLocalStorage];
|
||||||
@@ -180,7 +187,9 @@
|
|||||||
if (error.code == NSMigrationMissingSourceModelError) {
|
if (error.code == NSMigrationMissingSourceModelError) {
|
||||||
wrn(@"Resetting the iCloud store.");
|
wrn(@"Resetting the iCloud store.");
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointCloudStoreReset];
|
[TestFlight passCheckpoint:MPCheckpointCloudStoreReset];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCloudStoreReset attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCloudStoreReset attributes:nil];
|
||||||
manager.hardResetEnabled = YES;
|
manager.hardResetEnabled = YES;
|
||||||
[manager hardResetCloudStorage];
|
[manager hardResetCloudStorage];
|
||||||
@@ -412,7 +421,9 @@
|
|||||||
[self saveContext];
|
[self saveContext];
|
||||||
success = YES;
|
success = YES;
|
||||||
inf(@"Import completed successfully.");
|
inf(@"Import completed successfully.");
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointSitesImported];
|
[TestFlight passCheckpoint:MPCheckpointSitesImported];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesImported attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesImported attributes:nil];
|
||||||
|
|
||||||
return MPImportResultSuccess;
|
return MPImportResultSuccess;
|
||||||
@@ -475,7 +486,9 @@
|
|||||||
? content: @""];
|
? content: @""];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointSitesExported];
|
[TestFlight passCheckpoint:MPCheckpointSitesExported];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesExported attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointSitesExported attributes:nil];
|
||||||
|
|
||||||
return export;
|
return export;
|
||||||
|
|||||||
@@ -1,9 +1,9 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>
|
||||||
<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1487" systemVersion="12B19" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
|
<model name="" userDefinedModelVersionIdentifier="" type="com.apple.IDECoreDataModeler.DataModel" documentVersion="1.0" lastSavedToolsVersion="1810" systemVersion="12B19" minimumToolsVersion="Automatic" macOSVersion="Automatic" iOSVersion="Automatic">
|
||||||
<entity name="MPElementEntity" representedClassName="MPElementEntity" isAbstract="YES" syncable="YES">
|
<entity name="MPElementEntity" representedClassName="MPElementEntity" isAbstract="YES" syncable="YES">
|
||||||
<attribute name="content" optional="YES" transient="YES" attributeType="Transformable" syncable="YES"/>
|
<attribute name="content" optional="YES" transient="YES" attributeType="Transformable" syncable="YES"/>
|
||||||
<attribute name="lastUsed" attributeType="Date" indexed="YES" syncable="YES"/>
|
<attribute name="lastUsed" attributeType="Date" indexed="YES" syncable="YES"/>
|
||||||
<attribute name="loginName" optional="YES" attributeType="String" syncable="YES"/>
|
<attribute name="loginName" optional="YES" attributeType="String" elementID="A1B9F981-D33C-4BFE-9F94-C9D3E1F78E51" syncable="YES"/>
|
||||||
<attribute name="name" attributeType="String" minValueString="1" indexed="YES" syncable="YES"/>
|
<attribute name="name" attributeType="String" minValueString="1" indexed="YES" syncable="YES"/>
|
||||||
<attribute name="requiresExplicitMigration_" attributeType="Boolean" defaultValueString="NO">
|
<attribute name="requiresExplicitMigration_" attributeType="Boolean" defaultValueString="NO">
|
||||||
<userInfo/>
|
<userInfo/>
|
||||||
|
|||||||
@@ -6,7 +6,10 @@
|
|||||||
// Copyright (c) 2011 Lyndir. All rights reserved.
|
// Copyright (c) 2011 Lyndir. All rights reserved.
|
||||||
//
|
//
|
||||||
|
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wnewline-eof"
|
||||||
#import <FacebookSDK/FacebookSDK.h>
|
#import <FacebookSDK/FacebookSDK.h>
|
||||||
|
#pragma clang diagnostic pop
|
||||||
|
|
||||||
#import "MPAppDelegate.h"
|
#import "MPAppDelegate.h"
|
||||||
#import "MPAppDelegate_Key.h"
|
#import "MPAppDelegate_Key.h"
|
||||||
@@ -51,19 +54,22 @@
|
|||||||
[[[NSBundle mainBundle] mutableInfoDictionary] setObject:@"Master Password" forKey:@"CFBundleDisplayName"];
|
[[[NSBundle mainBundle] mutableInfoDictionary] setObject:@"Master Password" forKey:@"CFBundleDisplayName"];
|
||||||
[[[NSBundle mainBundle] mutableLocalizedInfoDictionary] setObject:@"Master Password" forKey:@"CFBundleDisplayName"];
|
[[[NSBundle mainBundle] mutableLocalizedInfoDictionary] setObject:@"Master Password" forKey:@"CFBundleDisplayName"];
|
||||||
|
|
||||||
#ifdef ADHOC
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
@try {
|
@try {
|
||||||
NSString *testFlightToken = [self testFlightToken];
|
NSString *testFlightToken = [self testFlightToken];
|
||||||
if ([testFlightToken length]) {
|
if ([testFlightToken length]) {
|
||||||
inf(@"Initializing TestFlight");
|
inf(@"Initializing TestFlight");
|
||||||
|
#ifdef ADHOC
|
||||||
[TestFlight setDeviceIdentifier:[(id)[UIDevice currentDevice] uniqueIdentifier]];
|
[TestFlight setDeviceIdentifier:[(id)[UIDevice currentDevice] uniqueIdentifier]];
|
||||||
//[TestFlight setDeviceIdentifier[PearlKeyChain deviceIdentifier]];
|
#else
|
||||||
|
[TestFlight setDeviceIdentifier:[PearlKeyChain deviceIdentifier]];
|
||||||
|
#endif
|
||||||
[TestFlight addCustomEnvironmentInformation:@"Anonymous" forKey:@"username"];
|
[TestFlight addCustomEnvironmentInformation:@"Anonymous" forKey:@"username"];
|
||||||
[TestFlight addCustomEnvironmentInformation:[PearlKeyChain deviceIdentifier] forKey:@"deviceIdentifier"];
|
[TestFlight addCustomEnvironmentInformation:[PearlKeyChain deviceIdentifier] forKey:@"deviceIdentifier"];
|
||||||
[TestFlight setOptions:[NSDictionary dictionaryWithObjectsAndKeys:
|
[TestFlight setOptions:[NSDictionary dictionaryWithObjectsAndKeys:
|
||||||
[NSNumber numberWithBool:NO], @"logToConsole",
|
[NSNumber numberWithBool:NO], @"logToConsole",
|
||||||
[NSNumber numberWithBool:NO], @"logToSTDERR",
|
[NSNumber numberWithBool:NO], @"logToSTDERR",
|
||||||
nil]];
|
nil]];
|
||||||
[TestFlight takeOff:testFlightToken];
|
[TestFlight takeOff:testFlightToken];
|
||||||
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
||||||
PearlLogLevel level = PearlLogLevelWarn;
|
PearlLogLevel level = PearlLogLevelWarn;
|
||||||
@@ -116,8 +122,10 @@
|
|||||||
NSString *localyticsKey = [self localyticsKey];
|
NSString *localyticsKey = [self localyticsKey];
|
||||||
if ([localyticsKey length]) {
|
if ([localyticsKey length]) {
|
||||||
inf(@"Initializing Localytics");
|
inf(@"Initializing Localytics");
|
||||||
|
[[LocalyticsSession sharedLocalyticsSession] LocalyticsSession:localyticsKey];
|
||||||
|
[[LocalyticsSession sharedLocalyticsSession] open];
|
||||||
[LocalyticsSession sharedLocalyticsSession].enableHTTPS = YES;
|
[LocalyticsSession sharedLocalyticsSession].enableHTTPS = YES;
|
||||||
[[LocalyticsSession sharedLocalyticsSession] startSession:localyticsKey];
|
[[LocalyticsSession sharedLocalyticsSession] upload];
|
||||||
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
[[PearlLogger get] registerListener:^BOOL(PearlLogMessage *message) {
|
||||||
if (message.level >= PearlLogLevelWarn)
|
if (message.level >= PearlLogLevelWarn)
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:@"Problem"
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:@"Problem"
|
||||||
@@ -407,6 +415,7 @@
|
|||||||
[[Crashlytics sharedInstance] setIntValue:[[PearlConfig get].reviewAfterLaunches intValue] forKey:@"reviewAfterLaunches"];
|
[[Crashlytics sharedInstance] setIntValue:[[PearlConfig get].reviewAfterLaunches intValue] forKey:@"reviewAfterLaunches"];
|
||||||
[[Crashlytics sharedInstance] setObjectValue:[PearlConfig get].reviewedVersion forKey:@"reviewedVersion"];
|
[[Crashlytics sharedInstance] setObjectValue:[PearlConfig get].reviewedVersion forKey:@"reviewedVersion"];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].rememberLogin boolValue]? @"YES": @"NO" forKey:@"rememberLogin"];
|
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].rememberLogin boolValue]? @"YES": @"NO" forKey:@"rememberLogin"];
|
||||||
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].iCloud boolValue]? @"YES": @"NO" forKey:@"iCloud"];
|
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].iCloud boolValue]? @"YES": @"NO" forKey:@"iCloud"];
|
||||||
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].iCloudDecided boolValue]? @"YES": @"NO" forKey:@"iCloudDecided"];
|
[TestFlight addCustomEnvironmentInformation:[[MPConfig get].iCloudDecided boolValue]? @"YES": @"NO" forKey:@"iCloudDecided"];
|
||||||
@@ -420,28 +429,20 @@
|
|||||||
[TestFlight addCustomEnvironmentInformation:[PearlConfig get].reviewedVersion forKey:@"reviewedVersion"];
|
[TestFlight addCustomEnvironmentInformation:[PearlConfig get].reviewedVersion forKey:@"reviewedVersion"];
|
||||||
|
|
||||||
[TestFlight passCheckpoint:MPCheckpointConfig];
|
[TestFlight passCheckpoint:MPCheckpointConfig];
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointConfig attributes:
|
#endif
|
||||||
@{
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointConfig attributes:@{
|
||||||
@"rememberLogin": [[MPConfig get].rememberLogin boolValue]
|
@"rememberLogin": [[MPConfig get].rememberLogin boolValue]? @"YES": @"NO",
|
||||||
? @"YES": @"NO",
|
@"iCloud": [[MPConfig get].iCloud boolValue]? @"YES": @"NO",
|
||||||
@"iCloud": [[MPConfig get].iCloud boolValue]? @"YES"
|
@"iCloudDecided": [[MPConfig get].iCloudDecided boolValue]? @"YES": @"NO",
|
||||||
: @"NO",
|
@"sendInfo": [[MPiOSConfig get].sendInfo boolValue]? @"YES": @"NO",
|
||||||
@"iCloudDecided": [[MPConfig get].iCloudDecided boolValue]
|
@"helpHidden": [[MPiOSConfig get].helpHidden boolValue]? @"YES": @"NO",
|
||||||
? @"YES": @"NO",
|
@"showQuickStart": [[MPiOSConfig get].showQuickStart boolValue]? @"YES": @"NO",
|
||||||
@"sendInfo": [[MPiOSConfig get].sendInfo boolValue]
|
@"firstRun": [[PearlConfig get].firstRun boolValue]? @"YES": @"NO",
|
||||||
? @"YES": @"NO",
|
@"launchCount": NilToNSNull([[PearlConfig get].launchCount description]),
|
||||||
@"helpHidden": [[MPiOSConfig get].helpHidden boolValue]
|
@"askForReviews": [[PearlConfig get].askForReviews boolValue]? @"YES": @"NO",
|
||||||
? @"YES": @"NO",
|
@"reviewAfterLaunches": NilToNSNull([[PearlConfig get].reviewAfterLaunches description]),
|
||||||
@"showQuickStart": [[MPiOSConfig get].showQuickStart boolValue]
|
@"reviewedVersion": NilToNSNull([PearlConfig get].reviewedVersion)
|
||||||
? @"YES": @"NO",
|
}];
|
||||||
@"firstRun": [[PearlConfig get].firstRun boolValue]
|
|
||||||
? @"YES": @"NO",
|
|
||||||
@"launchCount": [[PearlConfig get].launchCount description],
|
|
||||||
@"askForReviews": [[PearlConfig get].askForReviews boolValue]
|
|
||||||
? @"YES": @"NO",
|
|
||||||
@"reviewAfterLaunches": [[PearlConfig get].reviewAfterLaunches description],
|
|
||||||
@"reviewedVersion": [PearlConfig get].reviewedVersion
|
|
||||||
}];
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -449,7 +450,9 @@
|
|||||||
|
|
||||||
[self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self];
|
[self.navigationController performSegueWithIdentifier:@"MP_Guide" sender:self];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointShowGuide];
|
[TestFlight passCheckpoint:MPCheckpointShowGuide];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointShowGuide attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointShowGuide attributes:nil];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -460,7 +463,9 @@
|
|||||||
|
|
||||||
- (void)showReview {
|
- (void)showReview {
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointReview];
|
[TestFlight passCheckpoint:MPCheckpointReview];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointReview attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointReview attributes:nil];
|
||||||
|
|
||||||
[super showReview];
|
[super showReview];
|
||||||
@@ -509,13 +514,13 @@
|
|||||||
[PearlInfoPlist get].CFBundleShortVersionString,
|
[PearlInfoPlist get].CFBundleShortVersionString,
|
||||||
[PearlInfoPlist get].CFBundleVersion)
|
[PearlInfoPlist get].CFBundleVersion)
|
||||||
|
|
||||||
attachments:logs
|
attachments:(logs
|
||||||
? [[PearlEMailAttachment alloc] initWithContent:[[[PearlLogger get] formatMessagesWithLevel:logLevel] dataUsingEncoding:NSUTF8StringEncoding]
|
? [[PearlEMailAttachment alloc] initWithContent:[[[PearlLogger get] formatMessagesWithLevel:logLevel] dataUsingEncoding:NSUTF8StringEncoding]
|
||||||
mimeType:@"text/plain"
|
mimeType:@"text/plain"
|
||||||
fileName:PearlString(@"%@-%@.log",
|
fileName:PearlString(@"%@-%@.log",
|
||||||
[[NSDateFormatter rfc3339DateFormatter] stringFromDate:[NSDate date]],
|
[[NSDateFormatter rfc3339DateFormatter] stringFromDate:[NSDate date]],
|
||||||
[PearlKeyChain deviceIdentifier])]
|
[PearlKeyChain deviceIdentifier])]
|
||||||
: nil, nil]
|
: nil), nil]
|
||||||
showComposerForVC:viewController];
|
showComposerForVC:viewController];
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -608,7 +613,9 @@
|
|||||||
if (didReset)
|
if (didReset)
|
||||||
didReset();
|
didReset();
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
[TestFlight passCheckpoint:MPCheckpointChangeMP];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointChangeMP attributes:nil];
|
||||||
}
|
}
|
||||||
cancelTitle:[PearlStrings get].commonButtonAbort
|
cancelTitle:[PearlStrings get].commonButtonAbort
|
||||||
|
|||||||
@@ -26,7 +26,9 @@
|
|||||||
|
|
||||||
- (IBAction)gorillas:(UIButton *)sender {
|
- (IBAction)gorillas:(UIButton *)sender {
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointAppGorillas];
|
[TestFlight passCheckpoint:MPCheckpointAppGorillas];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointAppGorillas attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointAppGorillas attributes:nil];
|
||||||
|
|
||||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/gorillas/id302275459?mt=8"]];
|
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/gorillas/id302275459?mt=8"]];
|
||||||
@@ -34,7 +36,9 @@
|
|||||||
|
|
||||||
- (IBAction)deblock:(UIButton *)sender {
|
- (IBAction)deblock:(UIButton *)sender {
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointAppDeBlock];
|
[TestFlight passCheckpoint:MPCheckpointAppDeBlock];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointAppDeBlock attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointAppDeBlock attributes:nil];
|
||||||
|
|
||||||
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/deblock/id325058485?mt=8"]];
|
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"http://itunes.apple.com/app/lyndir/deblock/id325058485?mt=8"]];
|
||||||
|
|||||||
@@ -71,7 +71,9 @@
|
|||||||
|
|
||||||
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
[[UIApplication sharedApplication] setStatusBarHidden:YES withAnimation:UIStatusBarAnimationSlide];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointApps];
|
[TestFlight passCheckpoint:MPCheckpointApps];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointApps attributes:nil];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointApps attributes:nil];
|
||||||
|
|
||||||
[super viewWillAppear:animated];
|
[super viewWillAppear:animated];
|
||||||
|
|||||||
@@ -338,7 +338,9 @@
|
|||||||
|
|
||||||
- (void)setHelpChapter:(NSString *)chapter {
|
- (void)setHelpChapter:(NSString *)chapter {
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:PearlString(MPCheckpointHelpChapter @"_%@", chapter)];
|
[TestFlight passCheckpoint:PearlString(MPCheckpointHelpChapter @"_%@", chapter)];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointHelpChapter attributes:@{@"chapter": chapter}];
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointHelpChapter attributes:@{@"chapter": chapter}];
|
||||||
|
|
||||||
dispatch_async(dispatch_get_main_queue(), ^{
|
dispatch_async(dispatch_get_main_queue(), ^{
|
||||||
@@ -483,15 +485,19 @@
|
|||||||
|
|
||||||
- (IBAction)copyContent {
|
- (IBAction)copyContent {
|
||||||
|
|
||||||
if (!self.activeElement)
|
id content = self.activeElement.content;
|
||||||
|
if (!content)
|
||||||
|
// Nothing to copy.
|
||||||
return;
|
return;
|
||||||
|
|
||||||
inf(@"Copying password for: %@", self.activeElement.name);
|
inf(@"Copying password for: %@", self.activeElement.name);
|
||||||
[UIPasteboard generalPasteboard].string = [self.activeElement.content description];
|
[UIPasteboard generalPasteboard].string = [content description];
|
||||||
|
|
||||||
[self showContentTip:@"Copied!" withIcon:nil];
|
[self showContentTip:@"Copied!" withIcon:nil];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointCopyToPasteboard];
|
[TestFlight passCheckpoint:MPCheckpointCopyToPasteboard];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCopyToPasteboard
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCopyToPasteboard
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -507,7 +513,9 @@
|
|||||||
|
|
||||||
[self showLoginNameTip:@"Copied!"];
|
[self showLoginNameTip:@"Copied!"];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointCopyLoginNameToPasteboard];
|
[TestFlight passCheckpoint:MPCheckpointCopyLoginNameToPasteboard];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCopyLoginNameToPasteboard
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointCopyLoginNameToPasteboard
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -528,7 +536,9 @@
|
|||||||
inf(@"Incrementing password counter for: %@", self.activeElement.name);
|
inf(@"Incrementing password counter for: %@", self.activeElement.name);
|
||||||
++((MPElementGeneratedEntity *)self.activeElement).counter;
|
++((MPElementGeneratedEntity *)self.activeElement).counter;
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointIncrementPasswordCounter];
|
[TestFlight passCheckpoint:MPCheckpointIncrementPasswordCounter];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointIncrementPasswordCounter
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointIncrementPasswordCounter
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -555,7 +565,9 @@
|
|||||||
inf(@"Resetting password counter for: %@", self.activeElement.name);
|
inf(@"Resetting password counter for: %@", self.activeElement.name);
|
||||||
((MPElementGeneratedEntity *)self.activeElement).counter = 1;
|
((MPElementGeneratedEntity *)self.activeElement).counter = 1;
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointResetPasswordCounter];
|
[TestFlight passCheckpoint:MPCheckpointResetPasswordCounter];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointResetPasswordCounter
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointResetPasswordCounter
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -574,7 +586,9 @@
|
|||||||
self.loginNameField.enabled = YES;
|
self.loginNameField.enabled = YES;
|
||||||
[self.loginNameField becomeFirstResponder];
|
[self.loginNameField becomeFirstResponder];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointEditLoginName];
|
[TestFlight passCheckpoint:MPCheckpointEditLoginName];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointEditLoginName attributes:@{@"type": self.activeElement.typeName,
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointEditLoginName attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
}
|
}
|
||||||
@@ -616,7 +630,9 @@
|
|||||||
self.contentField.enabled = YES;
|
self.contentField.enabled = YES;
|
||||||
[self.contentField becomeFirstResponder];
|
[self.contentField becomeFirstResponder];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointEditPassword];
|
[TestFlight passCheckpoint:MPCheckpointEditPassword];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointEditPassword
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointEditPassword
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -637,7 +653,9 @@
|
|||||||
inf(@"Explicitly migrating element: %@", self.activeElement);
|
inf(@"Explicitly migrating element: %@", self.activeElement);
|
||||||
[self.activeElement migrateExplicitly:YES];
|
[self.activeElement migrateExplicitly:YES];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointExplicitMigration];
|
[TestFlight passCheckpoint:MPCheckpointExplicitMigration];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointExplicitMigration
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointExplicitMigration
|
||||||
attributes:@{@"type": self.activeElement.typeName,
|
attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
@@ -706,7 +724,7 @@
|
|||||||
[self performSegueWithIdentifier:@"OtherApps" sender:self];
|
[self performSegueWithIdentifier:@"OtherApps" sender:self];
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
#ifdef ADHOC
|
#if defined(ADHOC) && defined(TESTFLIGHT_SDK_VERSION)
|
||||||
case 4: {
|
case 4: {
|
||||||
inf(@"Action: Feedback via TestFlight");
|
inf(@"Action: Feedback via TestFlight");
|
||||||
[TestFlight openFeedbackView];
|
[TestFlight openFeedbackView];
|
||||||
@@ -807,7 +825,9 @@
|
|||||||
}];
|
}];
|
||||||
|
|
||||||
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationElementUpdated object:self.activeElement];
|
[[NSNotificationCenter defaultCenter] postNotificationName:MPNotificationElementUpdated object:self.activeElement];
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:PearlString(MPCheckpointUseType @"_%@", self.activeElement.typeShortName)];
|
[TestFlight passCheckpoint:PearlString(MPCheckpointUseType @"_%@", self.activeElement.typeShortName)];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointUseType attributes:@{@"type": self.activeElement.typeName,
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointUseType attributes:@{@"type": self.activeElement.typeName,
|
||||||
@"version": @(self.activeElement.version)}];
|
@"version": @(self.activeElement.version)}];
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -406,7 +406,9 @@ forRowAtIndexPath:(NSIndexPath *)indexPath {
|
|||||||
inf(@"Deleting element: %@", element.name);
|
inf(@"Deleting element: %@", element.name);
|
||||||
[self.fetchedResultsController.managedObjectContext deleteObject:element];
|
[self.fetchedResultsController.managedObjectContext deleteObject:element];
|
||||||
|
|
||||||
|
#ifdef TESTFLIGHT_SDK_VERSION
|
||||||
[TestFlight passCheckpoint:MPCheckpointDeleteElement];
|
[TestFlight passCheckpoint:MPCheckpointDeleteElement];
|
||||||
|
#endif
|
||||||
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement
|
[[LocalyticsSession sharedLocalyticsSession] tagEvent:MPCheckpointDeleteElement
|
||||||
attributes:@{@"type": element.typeName,
|
attributes:@{@"type": element.typeName,
|
||||||
@"version": @(element.version)}];
|
@"version": @(element.version)}];
|
||||||
|
|||||||
@@ -9,7 +9,10 @@
|
|||||||
#import <QuartzCore/QuartzCore.h>
|
#import <QuartzCore/QuartzCore.h>
|
||||||
#import <Twitter/Twitter.h>
|
#import <Twitter/Twitter.h>
|
||||||
|
|
||||||
|
#pragma clang diagnostic push
|
||||||
|
#pragma clang diagnostic ignored "-Wnewline-eof"
|
||||||
#import "Facebook.h"
|
#import "Facebook.h"
|
||||||
|
#pragma clang diagnostic pop
|
||||||
#import "GooglePlusShare.h"
|
#import "GooglePlusShare.h"
|
||||||
|
|
||||||
#import "MPUnlockViewController.h"
|
#import "MPUnlockViewController.h"
|
||||||
@@ -86,7 +89,9 @@
|
|||||||
} options:0];
|
} options:0];
|
||||||
[avatar onSelect:^(BOOL selected) {
|
[avatar onSelect:^(BOOL selected) {
|
||||||
if (selected)
|
if (selected)
|
||||||
user.avatar = (unsigned)avatar.tag;
|
[user.managedObjectContext performBlock:^{
|
||||||
|
user.avatar = (unsigned)avatar.tag;
|
||||||
|
}];
|
||||||
} options:0];
|
} options:0];
|
||||||
avatar.selected = (a == user.avatar);
|
avatar.selected = (a == user.avatar);
|
||||||
if (avatar.selected)
|
if (avatar.selected)
|
||||||
@@ -134,6 +139,7 @@
|
|||||||
self.fbOperationQueue = [NSOperationQueue new];
|
self.fbOperationQueue = [NSOperationQueue new];
|
||||||
[self.fbOperationQueue setSuspended:YES];
|
[self.fbOperationQueue setSuspended:YES];
|
||||||
|
|
||||||
|
[self.avatarsView addGestureRecognizer:self.targetedUserActionGesture];
|
||||||
self.avatarsView.decelerationRate = UIScrollViewDecelerationRateFast;
|
self.avatarsView.decelerationRate = UIScrollViewDecelerationRateFast;
|
||||||
self.avatarsView.clipsToBounds = NO;
|
self.avatarsView.clipsToBounds = NO;
|
||||||
self.nameLabel.layer.cornerRadius = 5;
|
self.nameLabel.layer.cornerRadius = 5;
|
||||||
@@ -190,7 +196,7 @@
|
|||||||
else
|
else
|
||||||
[self updateLayoutAnimated:YES allowScroll:YES completion:nil];
|
[self updateLayoutAnimated:YES allowScroll:YES completion:nil];
|
||||||
|
|
||||||
[UIView animateWithDuration:0.3 animations:^{
|
[UIView animateWithDuration:0.5 animations:^{
|
||||||
self.uiContainer.alpha = 1;
|
self.uiContainer.alpha = 1;
|
||||||
}];
|
}];
|
||||||
|
|
||||||
@@ -237,9 +243,11 @@
|
|||||||
[self.avatarToUser removeAllObjects];
|
[self.avatarToUser removeAllObjects];
|
||||||
|
|
||||||
// Create avatars.
|
// Create avatars.
|
||||||
for (MPUserEntity *user in users)
|
[moc performBlockAndWait:^{
|
||||||
[self setupAvatar:[self.avatarTemplate clone] forUser:user];
|
for (MPUserEntity *user in users)
|
||||||
[self setupAvatar:[self.avatarTemplate clone] forUser:nil];
|
[self setupAvatar:[self.avatarTemplate clone] forUser:user];
|
||||||
|
[self setupAvatar:[self.avatarTemplate clone] forUser:nil];
|
||||||
|
}];
|
||||||
|
|
||||||
// Scroll view's content changed, update its content size.
|
// Scroll view's content changed, update its content size.
|
||||||
[self.avatarsView autoSizeContentIgnoreHidden:YES ignoreInvisible:YES limitPadding:NO ignoreSubviews:nil];
|
[self.avatarsView autoSizeContentIgnoreHidden:YES ignoreInvisible:YES limitPadding:NO ignoreSubviews:nil];
|
||||||
@@ -348,7 +356,9 @@
|
|||||||
}
|
}
|
||||||
|
|
||||||
// Save
|
// Save
|
||||||
newUser.name = [alert textFieldAtIndex:0].text;
|
[newUser.managedObjectContext performBlock:^{
|
||||||
|
newUser.name = [alert textFieldAtIndex:0].text;
|
||||||
|
}];
|
||||||
[self showNewUserAvatarAlertFor:newUser completion:completion];
|
[self showNewUserAvatarAlertFor:newUser completion:completion];
|
||||||
}
|
}
|
||||||
cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonSave, nil];
|
cancelTitle:[PearlStrings get].commonButtonCancel otherTitles:[PearlStrings get].commonButtonSave, nil];
|
||||||
@@ -545,6 +555,10 @@
|
|||||||
|
|
||||||
- (void)tryMasterPassword {
|
- (void)tryMasterPassword {
|
||||||
|
|
||||||
|
if (!self.selectedUser)
|
||||||
|
// No user selected, can't try sign-in.
|
||||||
|
return;
|
||||||
|
|
||||||
[self setSpinnerActive:YES];
|
[self setSpinnerActive:YES];
|
||||||
|
|
||||||
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
dispatch_async(dispatch_get_global_queue(DISPATCH_QUEUE_PRIORITY_DEFAULT, 0), ^{
|
||||||
|
|||||||
@@ -1,8 +1,8 @@
|
|||||||
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
<?xml version="1.0" encoding="UTF-8" standalone="no"?>
|
||||||
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2549" systemVersion="12B19" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="KZF-fe-y9n">
|
<document type="com.apple.InterfaceBuilder3.CocoaTouch.Storyboard.XIB" version="2.0" toolsVersion="2840" systemVersion="12B19" targetRuntime="iOS.CocoaTouch" propertyAccessControl="none" initialViewController="KZF-fe-y9n">
|
||||||
<dependencies>
|
<dependencies>
|
||||||
<deployment defaultVersion="1296" identifier="iOS"/>
|
<deployment defaultVersion="1536" identifier="iOS"/>
|
||||||
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1498"/>
|
<plugIn identifier="com.apple.InterfaceBuilder.IBCocoaTouchPlugin" version="1926"/>
|
||||||
</dependencies>
|
</dependencies>
|
||||||
<scenes>
|
<scenes>
|
||||||
<!--Type View Controller - Type-->
|
<!--Type View Controller - Type-->
|
||||||
@@ -419,7 +419,7 @@ Your passwords will be AES-encrypted with your master password.</string>
|
|||||||
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
<rect key="frame" x="0.0" y="64" width="320" height="416"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="bottom" image="background.png" id="0hY-LL-ITu">
|
<imageView clipsSubviews="YES" userInteractionEnabled="NO" contentMode="center" image="background.png" id="0hY-LL-ITu">
|
||||||
<rect key="frame" x="0.0" y="44" width="320" height="372"/>
|
<rect key="frame" x="0.0" y="44" width="320" height="372"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
@@ -1166,7 +1166,6 @@ Pink fluffy door frame.</string>
|
|||||||
<!--App View Controller-->
|
<!--App View Controller-->
|
||||||
<scene sceneID="aYk-5V-FnG">
|
<scene sceneID="aYk-5V-FnG">
|
||||||
<objects>
|
<objects>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="hkm-U7-Dm7" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
<viewController storyboardIdentifier="MPAppViewController_0" id="yIx-9U-bOF" customClass="MPAppViewController" sceneMemberID="viewController">
|
<viewController storyboardIdentifier="MPAppViewController_0" id="yIx-9U-bOF" customClass="MPAppViewController" sceneMemberID="viewController">
|
||||||
<view key="view" contentMode="scaleToFill" id="Yea-s2-C8N">
|
<view key="view" contentMode="scaleToFill" id="Yea-s2-C8N">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="305" height="400"/>
|
<rect key="frame" x="0.0" y="0.0" width="305" height="400"/>
|
||||||
@@ -1214,6 +1213,7 @@ Pink fluffy door frame.</string>
|
|||||||
<navigationItem key="navigationItem" id="zZZ-QZ-Yur"/>
|
<navigationItem key="navigationItem" id="zZZ-QZ-Yur"/>
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||||
</viewController>
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="hkm-U7-Dm7" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="463" y="-381"/>
|
<point key="canvasLocation" x="463" y="-381"/>
|
||||||
</scene>
|
</scene>
|
||||||
@@ -1225,7 +1225,7 @@ Pink fluffy door frame.</string>
|
|||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
<subviews>
|
<subviews>
|
||||||
<imageView userInteractionEnabled="NO" contentMode="top" image="background.png" id="QWe-Gw-rD3">
|
<imageView userInteractionEnabled="NO" contentMode="center" image="background.png" id="QWe-Gw-rD3">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
||||||
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
<autoresizingMask key="autoresizingMask" widthSizable="YES" heightSizable="YES"/>
|
||||||
</imageView>
|
</imageView>
|
||||||
@@ -1417,7 +1417,6 @@ Pink fluffy door frame.</string>
|
|||||||
<gestureRecognizers/>
|
<gestureRecognizers/>
|
||||||
<connections>
|
<connections>
|
||||||
<outlet property="delegate" destination="Nbn-Rv-sP1" id="E1h-WA-PYV"/>
|
<outlet property="delegate" destination="Nbn-Rv-sP1" id="E1h-WA-PYV"/>
|
||||||
<outletCollection property="gestureRecognizers" destination="9WS-yS-aqQ" appends="YES" id="B9k-bg-gqA"/>
|
|
||||||
</connections>
|
</connections>
|
||||||
</scrollView>
|
</scrollView>
|
||||||
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="left" text="Maarten Billemont" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="8s0-nT-Aoq">
|
<label opaque="NO" clipsSubviews="YES" userInteractionEnabled="NO" alpha="0.0" contentMode="left" text="Maarten Billemont" textAlignment="center" lineBreakMode="tailTruncation" numberOfLines="0" baselineAdjustment="alignBaselines" minimumFontSize="10" id="8s0-nT-Aoq">
|
||||||
@@ -1623,7 +1622,6 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<!--Apps View Controller-->
|
<!--Apps View Controller-->
|
||||||
<scene sceneID="3cC-Qq-rgU">
|
<scene sceneID="3cC-Qq-rgU">
|
||||||
<objects>
|
<objects>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="pv9-cA-JY5" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
<viewController wantsFullScreenLayout="YES" id="2Th-Tb-22a" customClass="MPAppsViewController" sceneMemberID="viewController">
|
<viewController wantsFullScreenLayout="YES" id="2Th-Tb-22a" customClass="MPAppsViewController" sceneMemberID="viewController">
|
||||||
<view key="view" contentMode="scaleToFill" id="DHZ-5g-6vT">
|
<view key="view" contentMode="scaleToFill" id="DHZ-5g-6vT">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
<rect key="frame" x="0.0" y="0.0" width="320" height="480"/>
|
||||||
@@ -1660,6 +1658,7 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<outlet property="pagePositionView" destination="QQT-37-azo" id="TSf-0y-3VK"/>
|
<outlet property="pagePositionView" destination="QQT-37-azo" id="TSf-0y-3VK"/>
|
||||||
</connections>
|
</connections>
|
||||||
</viewController>
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="pv9-cA-JY5" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="-85" y="-421"/>
|
<point key="canvasLocation" x="-85" y="-421"/>
|
||||||
</scene>
|
</scene>
|
||||||
@@ -2020,7 +2019,6 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<!--App View Controller-->
|
<!--App View Controller-->
|
||||||
<scene sceneID="7oa-Tk-zt7">
|
<scene sceneID="7oa-Tk-zt7">
|
||||||
<objects>
|
<objects>
|
||||||
<placeholder placeholderIdentifier="IBFirstResponder" id="LHv-Mk-8Kp" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
|
||||||
<viewController storyboardIdentifier="MPAppViewController_1" id="vOg-Xq-hKm" customClass="MPAppViewController" sceneMemberID="viewController">
|
<viewController storyboardIdentifier="MPAppViewController_1" id="vOg-Xq-hKm" customClass="MPAppViewController" sceneMemberID="viewController">
|
||||||
<view key="view" contentMode="scaleToFill" id="jzQ-Oa-Gdj">
|
<view key="view" contentMode="scaleToFill" id="jzQ-Oa-Gdj">
|
||||||
<rect key="frame" x="0.0" y="0.0" width="305" height="400"/>
|
<rect key="frame" x="0.0" y="0.0" width="305" height="400"/>
|
||||||
@@ -2068,6 +2066,7 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<navigationItem key="navigationItem" id="Pm8-fx-hfM"/>
|
<navigationItem key="navigationItem" id="Pm8-fx-hfM"/>
|
||||||
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
<freeformSimulatedSizeMetrics key="simulatedDestinationMetrics"/>
|
||||||
</viewController>
|
</viewController>
|
||||||
|
<placeholder placeholderIdentifier="IBFirstResponder" id="LHv-Mk-8Kp" userLabel="First Responder" sceneMemberID="firstResponder"/>
|
||||||
</objects>
|
</objects>
|
||||||
<point key="canvasLocation" x="1004" y="-381"/>
|
<point key="canvasLocation" x="1004" y="-381"/>
|
||||||
</scene>
|
</scene>
|
||||||
@@ -2075,7 +2074,7 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<resources>
|
<resources>
|
||||||
<image name="Square-bottom.png" width="551" height="58"/>
|
<image name="Square-bottom.png" width="551" height="58"/>
|
||||||
<image name="avatar-0.png" width="110" height="110"/>
|
<image name="avatar-0.png" width="110" height="110"/>
|
||||||
<image name="background.png" width="480" height="480"/>
|
<image name="background.png" width="568" height="568"/>
|
||||||
<image name="book.png" width="320" height="480"/>
|
<image name="book.png" width="320" height="480"/>
|
||||||
<image name="guide_page_0.png" width="320" height="480"/>
|
<image name="guide_page_0.png" width="320" height="480"/>
|
||||||
<image name="guide_page_1.png" width="320" height="480"/>
|
<image name="guide_page_1.png" width="320" height="480"/>
|
||||||
@@ -2091,8 +2090,8 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<image name="icon_person.png" width="32" height="32"/>
|
<image name="icon_person.png" width="32" height="32"/>
|
||||||
<image name="icon_plus.png" width="32" height="32"/>
|
<image name="icon_plus.png" width="32" height="32"/>
|
||||||
<image name="icon_up.png" width="32" height="32"/>
|
<image name="icon_up.png" width="32" height="32"/>
|
||||||
<image name="page-deblock.png" width="305" height="399"/>
|
<image name="page-deblock.png" width="305" height="400"/>
|
||||||
<image name="page-gorillas.png" width="305" height="399"/>
|
<image name="page-gorillas.png" width="305" height="400"/>
|
||||||
<image name="pull-down.png" width="60" height="10"/>
|
<image name="pull-down.png" width="60" height="10"/>
|
||||||
<image name="pull-up.png" width="60" height="20"/>
|
<image name="pull-up.png" width="60" height="20"/>
|
||||||
<image name="social-facebook.png" width="44" height="44"/>
|
<image name="social-facebook.png" width="44" height="44"/>
|
||||||
@@ -2113,139 +2112,6 @@ You could use the word wall for inspiration in finding a memorable master passw
|
|||||||
<image name="ui_spinner.png" width="75" height="75"/>
|
<image name="ui_spinner.png" width="75" height="75"/>
|
||||||
<image name="ui_textfield.png" width="158" height="34"/>
|
<image name="ui_textfield.png" width="158" height="34"/>
|
||||||
</resources>
|
</resources>
|
||||||
<classes>
|
|
||||||
<class className="MPAppViewController" superclassName="UIViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPAppViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="deblock:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="action" name="gorillas:" candidateClass="UIButton"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPAppsViewController" superclassName="UIViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPAppsViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="exit"/>
|
|
||||||
<relationship kind="outlet" name="pagePositionView" candidateClass="UIImageView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPGuideViewController" superclassName="UIViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPGuideViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="close"/>
|
|
||||||
<relationship kind="outlet" name="pageControl" candidateClass="UIPageControl"/>
|
|
||||||
<relationship kind="outlet" name="scrollView" candidateClass="UIScrollView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPMainViewController" superclassName="UIViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPMainViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="action:" candidateClass="UIBarButtonItem"/>
|
|
||||||
<relationship kind="action" name="closeAlert"/>
|
|
||||||
<relationship kind="action" name="closeOutdatedAlert"/>
|
|
||||||
<relationship kind="action" name="copyContent"/>
|
|
||||||
<relationship kind="action" name="copyLoginName:" candidateClass="UITapGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="editLoginName:" candidateClass="UILongPressGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="editPassword"/>
|
|
||||||
<relationship kind="action" name="incrementPasswordCounter"/>
|
|
||||||
<relationship kind="action" name="infoOutdatedAlert"/>
|
|
||||||
<relationship kind="action" name="panHelpDown:" candidateClass="UIPanGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="panHelpUp:" candidateClass="UIPanGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="resetPasswordCounter:" candidateClass="UILongPressGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="searchOutdatedElements"/>
|
|
||||||
<relationship kind="action" name="toggleUser"/>
|
|
||||||
<relationship kind="action" name="upgradePassword"/>
|
|
||||||
<relationship kind="outlet" name="actionsTipContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="alertBody" candidateClass="UITextView"/>
|
|
||||||
<relationship kind="outlet" name="alertContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="alertTitle" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="contentContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="contentField" candidateClass="UITextField"/>
|
|
||||||
<relationship kind="outlet" name="contentTipBody" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="contentTipContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="displayContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="helpContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="helpView" candidateClass="UIWebView"/>
|
|
||||||
<relationship kind="outlet" name="loginNameContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="loginNameField" candidateClass="UITextField"/>
|
|
||||||
<relationship kind="outlet" name="loginNameTipBody" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="loginNameTipContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="outdatedAlertBack" candidateClass="UIImageView"/>
|
|
||||||
<relationship kind="outlet" name="outdatedAlertCloseButton" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="outdatedAlertContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="passwordCounter" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="passwordEdit" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="passwordIncrementer" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="passwordUpgrade" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="passwordUser" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="pullDownGesture" candidateClass="UIPanGestureRecognizer"/>
|
|
||||||
<relationship kind="outlet" name="pullDownView" candidateClass="UIImageView"/>
|
|
||||||
<relationship kind="outlet" name="pullUpGesture" candidateClass="UIPanGestureRecognizer"/>
|
|
||||||
<relationship kind="outlet" name="pullUpView" candidateClass="UIImageView"/>
|
|
||||||
<relationship kind="outlet" name="searchDelegate" candidateClass="MPSearchDelegate"/>
|
|
||||||
<relationship kind="outlet" name="searchTipContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="siteName" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="toolTipBody" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="toolTipContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="toolTipEditIcon" candidateClass="UIImageView"/>
|
|
||||||
<relationship kind="outlet" name="typeButton" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="typeTipContainer" candidateClass="UIView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPPreferencesViewController" superclassName="UITableViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPPreferencesViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="didToggleSwitch:" candidateClass="UISwitch"/>
|
|
||||||
<relationship kind="action" name="settings:"/>
|
|
||||||
<relationship kind="outlet" name="avatarTemplate" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="avatarsView" candidateClass="UIScrollView"/>
|
|
||||||
<relationship kind="outlet" name="changeMPCell" candidateClass="UITableViewCell"/>
|
|
||||||
<relationship kind="outlet" name="defaultTypeLabel" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="exportCell" candidateClass="UITableViewCell"/>
|
|
||||||
<relationship kind="outlet" name="savePasswordSwitch" candidateClass="UISwitch"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPSearchDelegate" superclassName="NSObject">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPSearchDelegate.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="outlet" name="delegate"/>
|
|
||||||
<relationship kind="outlet" name="searchDisplayController" candidateClass="UISearchDisplayController"/>
|
|
||||||
<relationship kind="outlet" name="searchTipContainer" candidateClass="UIView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPTypeViewController" superclassName="UITableViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPTypeViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="outlet" name="recommendedTipContainer" candidateClass="UIView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
<class className="MPUnlockViewController" superclassName="UIViewController">
|
|
||||||
<source key="sourceIdentifier" type="project" relativePath="./Classes/MPUnlockViewController.h"/>
|
|
||||||
<relationships>
|
|
||||||
<relationship kind="action" name="add:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="action" name="facebook:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="action" name="google:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="action" name="mail:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="action" name="targetedUserAction:" candidateClass="UILongPressGestureRecognizer"/>
|
|
||||||
<relationship kind="action" name="twitter:" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="avatarTemplate" candidateClass="UIButton"/>
|
|
||||||
<relationship kind="outlet" name="avatarsView" candidateClass="UIScrollView"/>
|
|
||||||
<relationship kind="outlet" name="createPasswordTipView" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="loadingUsersIndicator" candidateClass="UIActivityIndicatorView"/>
|
|
||||||
<relationship kind="outlet" name="nameLabel" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="oldNameLabel" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="passwordField" candidateClass="UITextField"/>
|
|
||||||
<relationship kind="outlet" name="passwordFieldLabel" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="passwordTipLabel" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="passwordTipView" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="passwordView" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="spinner" candidateClass="UIImageView"/>
|
|
||||||
<relationship kind="outlet" name="targetedUserActionGesture" candidateClass="UILongPressGestureRecognizer"/>
|
|
||||||
<relationship kind="outlet" name="tip" candidateClass="UILabel"/>
|
|
||||||
<relationship kind="outlet" name="uiContainer" candidateClass="UIView"/>
|
|
||||||
<relationship kind="outlet" name="wordWall" candidateClass="UIView"/>
|
|
||||||
</relationships>
|
|
||||||
</class>
|
|
||||||
</classes>
|
|
||||||
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
<simulatedMetricsContainer key="defaultSimulatedMetrics">
|
||||||
<nil key="statusBar"/>
|
<nil key="statusBar"/>
|
||||||
<simulatedOrientationMetrics key="orientation"/>
|
<simulatedOrientationMetrics key="orientation"/>
|
||||||
|
|||||||
@@ -19,9 +19,6 @@
|
|||||||
#import "TestFlight.h"
|
#import "TestFlight.h"
|
||||||
#import <Crashlytics/Crashlytics.h>
|
#import <Crashlytics/Crashlytics.h>
|
||||||
|
|
||||||
//#define Crashlytics PearlNil
|
|
||||||
//#define TestFlight PearlNil
|
|
||||||
|
|
||||||
#import "MPTypes.h"
|
#import "MPTypes.h"
|
||||||
#import "MPiOSConfig.h"
|
#import "MPiOSConfig.h"
|
||||||
|
|
||||||
|
|||||||
BIN
Resources/AppStore-iOS-1136.png
Normal file
|
After Width: | Height: | Size: 660 KiB |
|
Before Width: | Height: | Size: 53 KiB After Width: | Height: | Size: 70 KiB |
|
Before Width: | Height: | Size: 235 KiB After Width: | Height: | Size: 247 KiB |
BIN
Resources/Default-568h.png
Normal file
|
After Width: | Height: | Size: 43 KiB |
BIN
Resources/Default-568h@2x.png
Normal file
|
After Width: | Height: | Size: 145 KiB |
|
Before Width: | Height: | Size: 61 KiB After Width: | Height: | Size: 38 KiB |
|
Before Width: | Height: | Size: 173 KiB After Width: | Height: | Size: 126 KiB |
|
Before Width: | Height: | Size: 122 KiB After Width: | Height: | Size: 122 KiB |
|
Before Width: | Height: | Size: 162 KiB After Width: | Height: | Size: 162 KiB |
BIN
Site/img/objc468x60.png
Normal file
|
After Width: | Height: | Size: 1.2 KiB |
@@ -155,7 +155,7 @@
|
|||||||
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
<!--span class="tip appstore">Great feedback may earn you a free copy for a friend!</span-->
|
||||||
<img src="img/appstore.png" />
|
<img src="img/appstore.png" />
|
||||||
</a><br />
|
</a><br />
|
||||||
<form id="sendtophone">
|
<!--form id="sendtophone">
|
||||||
<span class="field">
|
<span class="field">
|
||||||
Or send to your phone:<br />
|
Or send to your phone:<br />
|
||||||
<input type="text" name="email" placeholder="E-mail or phone number" />
|
<input type="text" name="email" placeholder="E-mail or phone number" />
|
||||||
@@ -164,7 +164,7 @@
|
|||||||
<span class="confirm">
|
<span class="confirm">
|
||||||
Message sent!
|
Message sent!
|
||||||
</span>
|
</span>
|
||||||
</form>
|
</form-->
|
||||||
</div>
|
</div>
|
||||||
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
<h1><a href="."><img class="logo" src="img/iTunesArtwork-Bare.png" /> Master Password</a></h1>
|
||||||
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
<div class="footnote"><a href="mailto:masterpassword+remove_this@lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/mail']);">Contact</a> | <a href="http://www.lyndir.com" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a> | <a href="https://plus.google.com/116256327773442623984/about" rel="publisher" onclick="_gaq.push(['_trackPageview', '/outbound/google+']);">Google+</a></div>
|
||||||
@@ -198,7 +198,7 @@
|
|||||||
<meta itemprop="price" content="5.99" />
|
<meta itemprop="price" content="5.99" />
|
||||||
<meta itemprop="priceCurrency" content="USD" />
|
<meta itemprop="priceCurrency" content="USD" />
|
||||||
<a itemprop="url" href="http://itunes.apple.com/app/id510296984">
|
<a itemprop="url" href="http://itunes.apple.com/app/id510296984">
|
||||||
<img itemprop="image" class="badge" src="img/price.png" />
|
<!--img itemprop="image" class="badge" src="img/price.png" /-->
|
||||||
</a>
|
</a>
|
||||||
</span>
|
</span>
|
||||||
<img src="img/frontpage_phone.png" />
|
<img src="img/frontpage_phone.png" />
|
||||||
@@ -341,6 +341,8 @@
|
|||||||
</section>
|
</section>
|
||||||
|
|
||||||
<footer>
|
<footer>
|
||||||
|
<a href="http://www.jetbrains.com/objc/" style="display:inline-block; background:url('img/objc468x60.png') no-repeat 10px 50%; margin:0;padding:0;text-decoration:none;text-indent:0;letter-spacing:-0.001em; width:466px; height:58px" alt="Smarter and faster IDE for iOS and Mac OS applications development" title="Smarter and faster IDE for iOS and Mac OS applications development"><span style="margin: 2px 0 0 65px;padding: 0;float: left;font-size: 12px;cursor:pointer; background-image:none;border:0;color: #435570; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Developed with</span><span style="margin:0 0 0 200px;padding:18px 0 2px 0; line-height:14px;font-size:15px;cursor:pointer; background-image:none;border:0;display:block; width:265px; color:#435570; font-family: trebuchet ms,arial,sans-serif;font-weight: normal;text-align:left;">Smarter and faster IDE for iOS and<br/>Mac OS applications development</span></a>
|
||||||
|
<br /> <br />
|
||||||
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
Master Password is a security and productivity product by <a href="http://www.lyndir.com" rel="author" onclick="_gaq.push(['_trackPageview', '/outbound/lyndir.com']);">Lyndir</a>, © 2011.
|
||||||
</footer>
|
</footer>
|
||||||
</body>
|
</body>
|
||||||
|
|||||||
@@ -2,6 +2,8 @@
|
|||||||
set -e
|
set -e
|
||||||
|
|
||||||
cd "${BASH_SOURCE[0]%/*}"
|
cd "${BASH_SOURCE[0]%/*}"
|
||||||
|
s3cmd sync . s3://masterpassword.lyndir.com/
|
||||||
|
s3cmd sync . s3://www.masterpasswordapp.com/
|
||||||
nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX \
|
nice rsync --partial --progress --delete --sparse --archive --no-owner --no-perms --no-group --chmod=ugo=rwX \
|
||||||
--exclude rate-limit \
|
--exclude rate-limit \
|
||||||
. masterpassword.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/
|
. satura.lyndir.com:/usr/local/www/masterpassword.lyndir.com/htdocs/
|
||||||
|
|||||||