Всем привет! Меня зовут Николай Морев, и я разрабатываю приложение Почты Mail.Ru для iOS. Для тех, кто никогда о нем не слышал, несколько фактов:
- Это email клиент, позволяющий работать с любым почтовым сервисом, а не только
| // ==UserScript== | |
| // @name Open LOC in AppCode | |
| // @namespace http://kolia.pp.ru/ | |
| // @version 0.1 | |
| // @description try to take over the world! | |
| // @author [email protected] | |
| // @match https://github.yandex-team.ru/taxi/mobile-taxi-client-ios/pull/* | |
| // @grant none | |
| // ==/UserScript== |
| import lldb | |
| import re | |
| import shlex | |
| # This script allows Xcode to selectively ignore Obj-C exceptions | |
| # based on any selector on the NSException instance | |
| def getRegister(target): | |
| if target.triple.startswith('x86_64'): | |
| return "rdi" |
Всем привет! Меня зовут Николай Морев, и я разрабатываю приложение Почты Mail.Ru для iOS. Для тех, кто никогда о нем не слышал, несколько фактов:
| SANDBOX_PATH=`SSH_TO_DEVICE ipainstaller -i "$BUNDLE_ID" | grep '^Data: ' | awk '{print $2}'` | |
| SANDBOX_PATH="${SANDBOX_PATH//[$'\t\r\n ']}" | |
| COMPLETION_PATH="$SANDBOX_PATH/Documents/$COMPLETION_INDICATOR" | |
| LOG_PATH="$SANDBOX_PATH/Documents/$LOG_NAME" | |
| for i in $(seq 1 $NUMBER_OF_RUNS) | |
| do | |
| SSH_TO_DEVICE open "$BUNDLE_ID" | |
| sleep $MOUNT_SECONDS_PEDIOD |
| for i in $(seq 1 $NUMBER_OF_RUNS) | |
| do | |
| $IDEVICEDEBUG --udid "$DEVICE_ID" run "$BUNDLE_ID" >/dev/null 2>/dev/null & | |
| COMPLETION_PATH="$MOUNTPOINT_PATH/$COMPLETION_INDICATOR" | |
| LOG_PATH="$MOUNTPOINT_PATH/$LOG_NAME" | |
| for j in $(seq 1 5) | |
| do | |
| sleep $MOUNT_SECONDS_PEDIOD |
| APP_BUNDLE="$PROJECT_ROOT/build/${CONFIGURATION}-iphoneos/$PRODUCT.app" | |
| cd "$PROJECT_ROOT/build" | |
| rm -rf Payload; mkdir -p Payload | |
| cp -a "$APP_BUNDLE" Payload/ | |
| rm -f MRMail.ipa; zip -r MRMail.ipa Payload | |
| SCP_TO_DEVICE MRMail.ipa root@localhost: | |
| SSH_TO_DEVICE ipainstaller MRMail.ipa |
| APP_BUNDLE="$PROJECT_ROOT/build/${CONFIGURATION}-iphoneos/$PRODUCT.app" | |
| $IOS_DEPLOY --bundle "$APP_BUNDLE" --id "$DEVICE_ID" \ | |
| --noninteractive --justlaunch |
| $XCODEBUILD -project MRMail.xcodeproj -target "$TARGET" -configuration "$CONFIGURATION" \ | |
| -destination "platform=iOS" -parallelizeTargets -jobs 4 \ | |
| CODE_SIGN_IDENTITY="iPhone Developer" \ | |
| MAIN_INFOPLIST_FILE="tools/profiler/Info.plist" \ | |
| GCC_PREPROCESSOR_DEFINITIONS='$GCC_PREPROCESSOR_DEFINITIONS ENABLE_TIME_LOGGER=1 DISABLE_FLURRY=1' |
| + (UIImage *)imageWithBlock:(UIImage *(^)(void))block { | |
| MRLazyImage *lazyImage = [(MRLazyImage *)[self alloc] initWithBlock:block]; | |
| return (UIImage *)lazyImage; | |
| } | |
| - (UIImage *)image { | |
| if (!_image && self.block) { | |
| _image = self.block(); | |
| self.block = nil; | |
| } |
| static void LayoutLoggingForClassSelector(Class cls, SEL selector) { | |
| static NSMutableDictionary *counters = nil; | |
| if (!counters) { | |
| counters = [NSMutableDictionary dictionary]; | |
| } | |
| SEL selector = NSSelectorFromString(selectorName); | |
| [cls aspect_hookSelector:selector withOptions:AspectPositionBefore usingBlock:^(id<AspectInfo> info) { | |
| TLLOG(NL(@"lob %s %p"), class_getName([[info instance] class]), (void *)[info instance]); | |
| } error:nil]; |