
Archives
Categories
Meta
A. China Mobile, http://www.chinamobileltd.com/en/global/home.php
B. China Unicom, http://www.chinaunicom.com.cn/
C. China Telecom, http://www.chinatelecom.com.cn/
D. Tencent, http://www.qq.com/
E. Baidu, http://www.baidu.com/
F. Sina, http://www.sina.com.cn/
G. iFeng, http://www.ifeng.com/
H. Novagin, http://www.novagin.com/cn/index.htm
I. IGRS Lab, http://www.tivic.com/
J. Front network, http://www.frontnetwork.com/
K. Middling industries, http://www.middlingindustries.com/
L. iLouShi, http://www.iloushi.cn/
M. Duopeng, http://www.duopeng.com/
N. VoiceFrom, http://voicefrom.me/
O. Distance Education Group, http://www.sdeg.cn/sdegPortal/
P. MesonTech, http://www.mesontech.com.cn/home/mesontech.jsp
@interface Location : BeeActiveRecord
…
@end
@interface User : BeeActiveRecord
…
@end
@interface User2 : User
@property (nonatomic, retain) Location * location;
…
@end
self
.HTTP_GET( @”http://www.qq.com” )
.HEADER( @”header1″, @”xxx” )
.HEADER( @”header2″, @”xxx” )
.HEADER( @”header3″, @”xxx” )
.PARAM( @”key1″, @”xxx” )
.PARAM( @”key2″, @”xxx” )
.PARAM( @”key3″, @”xxx” )
.FILE( @”photo1.png”, [NSData data] )
.FILE( @”photo2.png”, [NSData data] )
.FILE( @”photo3.png”, [NSData data] );
iOS Crash文件分析 一. iOS crashs 一般有如下四种: Application crash Low memory Watchdog timeout User force-quit 当前我们的 ERead 程序遇到了前三种 core 问题。只有 Application crash 文件才会提供有用的
iOS Crash文件分析
一.iOS crashs一般有如下四种:
Application crash
Low memory
Watchdog timeout
User force-quit
当前我们的ERead程序遇到了前三种core问题。只有Application crash文件才会提供有用的crash堆栈。
Low memory 主要是程序申请不到可用的内存或者剩余内存不足以支持程序运行而产生的crash.
WatchDog timeout 是程序100%暂用cpu超过10s而产生的crash文件。
User force-quit :暂时还没搞清什么情况下会出现。
二.如何找到crash文件
a)
iPhone真机上Crash文件的存储路径为:/var/mobile/Library/Logs/CrashReporter
可以通过PhoneView(mac下),91助手(windows下)读取。
b)
需要保存***.app.dSYM 符号文件(生产版本的时候和***.app同在build目录)
c)
获取crash文件:
i.
可以直接连接到itunes,itunes会自动把crash文件同步到pc机,在pc上的目录是:~/Library/Logs/CrashReporter/MobileDevice下面。
同步完成后也可以在XCode的Window的Organizer下面,找到相应Device设备,选择DeviceLog标签,找到相应的crash文件。

三. crash文件介绍
⒈一般如果是内存过低引起的core问题,crash文件会命名为“LowMemory-2011-06-05-044757.log”的格式,其中的日期为同步到pc时的日期
2.如果是其他原因引起的core问题,crash文件会命名为“ETReader_2011-04-12-103850_adminmato-iPad.crash”的格式,其中日
期为同步到pc的时间,adminmato-iPad指的是当前所有设备所取的名称
一般情况下,我们只看第二种的crash文件,第一种crash文件是和手机内存大小及程序占用内存有关,一般情况下不做处理
四.通过crash文件定位问题(针对Application crash,其他crash文件无法提供有效信息)
把***.app.dSYM和crash文件放到同一个目录下
执行命令:symbolicatecrash ***.crash ***.app.dSYM | less
就会得到符号化好的crash文件。如果crash是通过itunes同步到pc机,并且在Organizer中查看的话,那么看到的crash是已经由xcode调用symbolicatecrash 命令符号化好了的(右键Reveal Log in Finder可以得到该crash文件)。
crash例子文件如下:
Incident Identifier: 2664D48C-C1D7-43EC-8E89-01D27EE2E7E0
CrashReporter Key:
ae8ae7a933bd6670313190b38a0b7a9cd6fb5329
Hardware Model:
iPhone2,1
Process: ETReader [3445]
Path:
/var/mobile/Applications/C7C76450-4A8D-4CFE-B662-923523CFADB1/ETReader.app/ETReader
Identifier: ETReader
Version:
??? (???)
Code Type: ARM (Native)
Parent Process: punchd [1]
Date/Time: 2011-04-14 15:21:24.064 +0800
OS Version: iPhone OS 4.2.1 (8C148a)
Report Version: 104
Exception Type: EXC_BAD_ACCESS (SIGBUS)
Exception Codes: KERN_PROTECTION_FAILURE at 0×00000004
Crashed Thread: 0
Thread 0 Crashed:
0 ETReader 0x0009dcc8 0×1000 + 642248
1 ETReader 0x0003baf2 0×1000 + 240370
2 Foundation 0x31cd861c 0x31cc4000 + 83484
3 CoreFoundation 0x3145711c 0×31430000 + 160028
4 CoreFoundation 0x31456dbc 0×31430000 + 159164
5 Foundation 0x31cc7d1c 0x31cc4000 + 15644
6 Foundation 0x31cd123a 0x31cc4000 + 53818
7 UIKit 0x338ff904 0x3389e000 + 399620
8 UIKit 0x338fdbb8 0x3389e000 + 392120
9 UIKit 0x338a27a6 0x3389e000 + 18342
Binary Images:
0×1000 -
0xd2fff +ETReader armv7
<e2cd3c3a2d5d5cecc3ceec0792b50309> /var/mobile/Applications/C7C76450-4A8D-4CFE-B662-923523CFADB1/ETReader.app/ETReader
0x1f5000 -
0x1f5fff +MobileSubstrate.dylib armv6
<93c7cc820225e9453a9f93d3b21a25fa> /Library/MobileSubstrate/MobileSubstrate.dylib
0×225000 -
0x226fff +SubstrateLoader.dylib armv6
<073e8f5afee21e96e513e796622bfd6f> /Library/Frameworks/CydiaSubstrate.framework/Libraries/SubstrateLoader.dylib
0x22a000 -
0x22bfff
dns.so armv7
<fcefecb2d5e095ba88127eec3af57ec0> /usr/lib/info/dns.so
0×246000 -
0x258fff +SBPandaHome.dylib armv6
<8bfff4a460e806aca029a0b989419225> /Library/MobileSubstrate/DynamicLibraries/SBPandaHome.dylib
0×264000 -
0x267fff
libsubstrate.dylib armv6
<9ad52a9dd3b8e54ae1b0a0e5fc58c7a2> /usr/lib/libsubstrate.dylib
发现有针对ETReader的堆栈地址:
0 ETReader 0x0009dcc8 0×1000 + 642248
1 ETReader 0x0003baf2 0×1000 + 240370
但是如何把地址映射到相应的文件对应的函数呢。
需要在命令行执行如下命令:
dwarftdump –lookup 0x0009dcc8
–arch
armv7
***.app.dSYM
此处到底是armv7还是armv6,在 Binary Images附近可以查看体系结构(红色大字体标注)。
执行完该命令会在控制台上打印出一堆定位信息,好啦后面我就不啰嗦了,可以自己分析啦。
转至:http://www.di15.com/tag/ipa-%E6%A0%BC%E5%BC%8F%E8%AF%A6%E8%A7%A3/
问:ipa 是什么格式,为什么网络上有很多ipa格式的iPad,iPhone软件?
答:ipa是苹果iPad、iPhone 4,iPod Touch 等iOS系统通用软件格式,用iTunes可以把ipa格式的软件下载安装进iPad,iPad 2,iPhone和iPod Touch,其实ipa可以说是苹果设备的游戏与软件格式。
以下为 ipa 格式 详细解释:
ipa 文件实质是一个 zip 压缩包(不是 rar 或 7z 包),包含 3 个组件:payload 目录下的 .app 目录,这个是软件的主程序;iTunesArtwork,实质是一个无后缀名的 png 图片,用来在 iTunes 中显示图标;iTunesMetadata.plist,记录购买者信息、售价等数据。
ipa 解包后并非直接放置于 Applications 目录下,而是放在一串由随机码构成的目录下,其作用在于,只允许这个软件运行在一个特定的沙盒(Sandbox)中,不能干扰其他软件。因此那串随机码目 录下,除了 ipa 本身的三个组件之外,还有三个目录:Library,一般是用了储存设置文件等数据;Documents,存储数据,多用了保存存档;tmp,临时文件 夹。
由于这个软件只能在这个特定的目录下运行(当然了,部分程序会调用系统的通讯录、相机等组件,但仍然是受限制的),从而保证了整个iOS系统的安全性和稳定性。
关于如何安装ipa:ipa 安装到iPad,iPhone 4,iPod Touch 十分便捷,无论是直接在设备上用App Store安装,还是用 iTunes 来同步,抑或是用 Installous 和 iFunbox等 这类第三方软件来安装,都是很方便快速的安装方式。
关于卸载ipa 软件:超级简单的卸载方式【只需在设备界面按住软件图标2秒左右,就会出现一个叉叉在图标的左上角】,此时只需要点一个 X 就能卸载。完全删除,不会留下任何垃圾文件(如存档、设置文件等)总体来说破解还是比较容易的,但现在越来越多软件加入了防破解措施。