Upgrade to Pro — share decks privately, control downloads, hide ads and more …

HopperでApple社員ゴッコしてみた

Sponsored · SiteGround - Reliable hosting with speed, security, and support you can count on.
Avatar for sozorogami sozorogami
January 15, 2015

 HopperでApple社員ゴッコしてみた

Avatar for sozorogami

sozorogami

January 15, 2015
Tweet

More Decks by sozorogami

Other Decks in Technology

Transcript

  1. [[UIApplication sharedApplication] cancelAllLocalNotifications];! for (NSDate *date in [self dates]) {!

    UILocalNotification *notification = [self defaultNotificationWithDate:date];! [[UIApplication sharedApplication] scheduleLocalNotification:notification];! }! NSLog(@"Notifications: %@", [[UIApplication sharedApplication] scheduledLocalNotifications]);!
  2. 2015-01-14 22:08:41.220 NotificationBug[81492:60b] Notifications: (! "<UIConcreteLocalNotification: 0x7feb39443c70>{fire date = Thursday,

    January 15, 2015 at 12:55:21 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 12:55:21 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7feb3943fb50>{fire date = Thursday, January 15, 2015 at 3:42:01 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 3:42:01 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7feb39446b90>{fire date = Thursday, January 15, 2015 at 6:28:41 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 6:28:41 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7feb394445d0>{fire date = Thursday, January 15, 2015 at 9:15:21 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 9:15:21 AM Japan Standard Time, user info = (null)}"! )! J04
  3. 2015-01-14 22:10:33.902 NotificationBug[81560:25743720] Notifications: (! "<UIConcreteLocalNotification: 0x7fec38c1f900>{fire date = Thursday,

    January 15, 2015 at 12:57:13 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 12:57:13 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec38c6c820>{fire date = Thursday, January 15, 2015 at 3:43:53 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 3:43:53 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec38c6da60>{fire date = Thursday, January 15, 2015 at 6:30:33 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 6:30:33 AM Japan Standard Time, user info = (null)}"! ) J04
  4. 2015-01-14 21:49:15.251 NotificationBug[80529:25728165] Notifications: (! "<UIConcreteLocalNotification: 0x7fb203586e60>{fire date = Thursday,

    January 15, 2015 at 12:35:55 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 12:35:55 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fb20353fc70>{fire date = Thursday, January 15, 2015 at 3:22:35 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 3:22:35 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fb2035850c0>{fire date = Thursday, January 15, 2015 at 6:09:15 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 6:09:15 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fb203587ca0>{fire date = Thursday, January 15, 2015 at 8:55:55 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 8:55:55 AM Japan Standard Time, user info = (null)}"! ) J04 ʢͱ͖Ͳ͖ʣ
  5. 000000000002c3f8 mov r14, rdx! 000000000002c3fb mov rbx, rdi! 000000000002c3fe lea

    r15, qword [ds:__UIApplicationLinkedOnVersion] ; __UIApplicationLinkedOnVersion! 000000000002c405 mov eax, dword [ds:r15]! 000000000002c408 test eax, eax! 000000000002c40a jne 0x2c42c! ! 000000000002c40c cmp qword [ds:__UIApplicationLinkedOnVersionOnce], 0xffffffffffffffff ; __UIApplicationLinkedOnVersionOnce! 000000000002c414 je 0x2c448! ! 000000000002c416 lea rdi, qword [ds:__UIApplicationLinkedOnVersionOnce] ; __UIApplicationLinkedOnVersionOnce, argument "predicate" for method imp___stubs__dispatch_once! 000000000002c41d lea rsi, qword [ds:___block_literal_global1030] ; ___block_literal_global1030, argument "block" for method imp___stubs__dispatch_once! 000000000002c424 call imp___stubs__dispatch_once! 000000000002c429 mov eax, dword [ds:r15]! ! 000000000002c42c cmp eax, 0x7ffff ; XREF=-[UIApplication scheduleLocalNotification:]+28! 000000000002c431 jbe 0x2c448! ! 000000000002c433 mov rsi, qword [ds:0xda56a8] ; @selector(validateNotification:), argument "selector" for method imp___got__objc_msgSend! 000000000002c43a mov rdi, rbx ; argument "instance" for method imp___got__objc_msgSend! 000000000002c43d mov rdx, r14! 000000000002c440 call qword [ds:imp___got__objc_msgSend]! 000000000002c446 jmp 0x2c495! ! 000000000002c448 mov rsi, qword [ds:0xda4d00] ; @selector(currentUserNotificationSettings), XREF=- [UIApplication scheduleLocalNotification:]+38, -[UIApplication scheduleLocalNotification:]+67! 000000000002c44f mov r15, qword [ds:imp___got__objc_msgSend] ; imp___got__objc_msgSend! 000000000002c456 mov rdi, rbx ; argument "instance" for method _objc_msgSend! 000000000002c459 call r15 ; _objc_msgSend! 000000000002c45c mov rsi, qword [ds:0xda4d08] ; @selector(types), argument "selector" for method _objc_msgSend! 000000000002c463 mov rdi, rax ; argument "instance" for method _objc_msgSend! 000000000002c466 call r15 ; _objc_msgSend! 000000000002c469 test al, 0x4! 000000000002c46b jne 0x2c495! ! 000000000002c46d mov rdi, qword [ds:objc_cls_ref_UIUserNotificationSettings] ; objc_cls_ref_UIUserNotificationSettings, argument "instance" for method _objc_msgSend! 000000000002c474 mov rsi, qword [ds:0xda4d10] ; @selector(settingsForTypes:categories:), argument "selector" for method _objc_msgSend! 000000000002c47b mov edx, 0x7! 000000000002c480 xor ecx, ecx! 000000000002c482 call r15 ; _objc_msgSend! 000000000002c485 mov rsi, qword [ds:0xda4d18] ; @selector(registerUserNotificationSettings:), argument "selector" for method _objc_msgSend! 000000000002c48c mov rdi, rbx ; argument "instance" for method _objc_msgSend! 000000000002c48f mov rdx, rax! 000000000002c492 call r15 ; _objc_msgSend! ! 000000000002c495 mov rdi, qword [ds:objc_cls_ref_SBSLocalNotificationClient] ; objc_cls_ref_SBSLocalNotificationClient, argument "instance" for method imp___got__objc_msgSend, XREF=-[UIApplication scheduleLocalNotification:]+88, -[UIApplication scheduleLocalNotification:]+125!
  6. void -[UIApplication scheduleLocalNotification:](void * self, void * _cmd, void *

    arg2) {! r14 = arg2;! rbx = self;! LODWORD(rax) = *(int32_t *)__UIApplicationLinkedOnVersion;! if (LODWORD(rax) != 0x0) goto loc_2c42c;! goto loc_2c40c;! ! loc_2c42c:! if (LODWORD(rax) > 0x7ffff) {! [rbx validateNotification:r14];! }! else {! if ((LOBYTE([[rbx currentUserNotificationSettings] types]) & 0x4) == 0x0) {! r15 = *objc_msgSend;! rax = [UIUserNotificationSettings settingsForTypes:0x7 categories:0x0];! [rbx registerUserNotificationSettings:rax];! }! }! ! loc_2c495:! rdx = r14;! rax = [SBSLocalNotificationClient scheduleLocalNotification:rdx];! return;! ! loc_2c40c:! if (*__UIApplicationLinkedOnVersionOnce == 0xffffffffffffffff) goto loc_2c448;! goto loc_2c416;! ! loc_2c448:! if ((LOBYTE([[rbx currentUserNotificationSettings] types]) & 0x4) == 0x0) {! r15 = *objc_msgSend;! rax = [UIUserNotificationSettings settingsForTypes:0x7 categories:0x0];! [rbx registerUserNotificationSettings:rax];! }! goto loc_2c495;! ! loc_2c416:! dispatch_once(__UIApplicationLinkedOnVersionOnce, void ^(void * _block) {! rax = dyld_get_program_sdk_version(_block);! *(int32_t *)__UIApplicationLinkedOnVersion = LODWORD(rax);! return;! });! LODWORD(rax) = *(int32_t *)__UIApplicationLinkedOnVersion;! goto loc_2c42c;! }!
  7. hoge! hoge! hoge! hoge! hoge! 2015-01-15 01:29:52.185 NotificationBug[81959:25825956] Notifications: (!

    "<UIConcreteLocalNotification: 0x7fec8bc792b0>{fire date = Thursday, January 15, 2015 at 4:16:31 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 4:16:31 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec8bc88d30>{fire date = Thursday, January 15, 2015 at 7:03:11 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 7:03:11 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec8bc88fb0>{fire date = Thursday, January 15, 2015 at 9:49:51 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 9:49:51 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec8bc89130>{fire date = Thursday, January 15, 2015 at 12:36:31 PM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 12:36:31 PM Japan Standard Time, user info = (null)}"! )! hoge! hoge! hoge! hoge! hoge! 2015-01-15 01:30:02.310 NotificationBug[81959:25825956] Notifications: (! "<UIConcreteLocalNotification: 0x7fec8bd3cef0>{fire date = Thursday, January 15, 2015 at 4:16:42 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 4:16:42 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec8bd7c3e0>{fire date = Thursday, January 15, 2015 at 7:03:22 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 7:03:22 AM Japan Standard Time, user info = (null)}",! "<UIConcreteLocalNotification: 0x7fec8bd7c4f0>{fire date = Thursday, January 15, 2015 at 9:50:02 AM Japan Standard Time, time zone = (null), repeat interval = 0, repeat count = UILocalNotificationInfiniteRepeatCount, next fire date = Thursday, January 15, 2015 at 9:50:02 AM Japan Standard Time, user info = (null)}"! )! IPHFT