跳到主要内容

7 篇博文 含有标签「iOS」

查看所有标签

不同平台下的项目自动打包方式

· 阅读需 6 分钟
Danny He
Developer in ChengDu,China

iOS

iOS下的打包主要由xcodebuild来完成.在xcode 7以前我通过xcodebuild构建项目然后通过xcrun来生成ipa文件. 类似以下命令

xcodebuild -configuration ${BuildConfig} -target "${TargetName}" GCC_PREPROCESSOR_DEFINITIONS="\${GCC_PREPROCESSOR_DEFINITIONS} FREEVERSION=0" WARNING_LDFLAGS="\${WARNING_LDFLAGS} -w" CODE_SIGN_IDENTITY="${DistributionCodeIdentity}" PROVISIONING_PROFILE="${DistributionProvision}"
xcrun -sdk iphoneos PackageApplication -v "${ProductDir}/${TargetName}.app" -o "${PrjDir}/${IpaName}"

这种方式打包有很多局限:

说说Core Graphics

· 阅读需 4 分钟

记得11年左右做iOS开发的人真不多,大环境下大家学习iOS开发基本都靠WWDC和国外的文献,近几年随着iOS开发的火爆,好多技术都被挖掘出来(其实是自己以前英文不好,好多东西都是点到为止),最近比较闲重新看了下iOS相关的一些东西.感觉有些东西虽然不是常用的,但明白后可以更灵活的运用到日常的开发中.这里记录下我对iOS里一些特性理解.

广义的离屏渲染?

首先看GPU屏幕渲染两种方式:

  • On-Screen Rendering:意为当前屏幕渲染,指的是GPU的渲染操作是在当前用于显示的屏幕缓冲区中进行。
  • Off-Screen Rendering:意为离屏渲染,指的是GPU在当前屏幕缓冲区以外新开辟一个缓冲区进行渲染操作。

以ABS宏为例说说Clang中的宏定义方式技巧

· 阅读需 6 分钟

我们在iOS开发的时候经常使用宏定义,最常用的宏肯定是DEBUG,像下面这样:)

#if DEBUG
...
#endif

#if __has_feature(objc_arc_weak)
...
#elif __has_feature(objc_arc)
...
#else
...
#endif

#if (TARGET_OS_MAC || TARGET_OS_IPHONE)
...
#endif

记录下我对Clang中定义的宏ABS的理解(从零开始的理解),它的作用很简单:得到一个数的绝对值

quick的ScrollView随想

· 阅读需 6 分钟

一直使用quick。之前一直忙着做项目,都没有空停下来好好想想OpenGL的一些知识.今天和同事分析了下ClippingNode的实现,记录在这里。

quick的尴尬

quick用裁剪测试,实现了一个lua版的UIScrollView.lua,可以满足简单的裁剪和滑动需求.

最简单的方法将iOS中的NSLog写入文件

· 阅读需 1 分钟
#ifdef DEBUG
- (void) redirectConsoleLogToDocumentFolder {

NSArray *paths = NSSearchPathForDirectoriesInDomains(NSDocumentDirectory, NSUserDomainMask, YES);
NSString *documentsDirectory = [paths objectAtIndex:0];
NSString *logPath = [documentsDirectory stringByAppendingPathComponent:@"iOS.log"];
freopen([logPath cStringUsingEncoding:NSUTF8StringEncoding],"a+",stderr);
NSDateFormatter *formatter = [[NSDateFormatter alloc]init];
[formatter setDateFormat:@"yyyy-MM-dd HH:mm:ss"];
NSString *time = [formatter stringFromDate:[NSDate date]];
NSLog(@"-------------- Start Log [%@] --------------",time);
[formatter release];
}
#endif

在程序启动的时候调用即可,所有的NSLog日志都会记录到documents下的iOS.log内

#ifdef DEBUG
[self redirectConsoleLogToDocumentFolder];
#endif