I'm creating a drawing app using Xamarin. Althought, my question is also addressed to iOS developers.
My app loads huge images (20k x 20k). I'm using CATiledLayer to load image tiles dynamically. Thanks to that, zoom and scrool run smoothly.
However, I need to implement effective drawing mechanism. My first attempt was to draw a shape as a separate UIView and add it to TiledView's Subviews. Unfortunately, when I add about 20/30 new shapes then app crashes (I guess it's a problem with memory).
I need to find a better solution. My shapes need to be editable, so I need to recognize selection on each shape which is already drawn on the TiledView.
What could be the best mechanism to avoid memory trouble in that case?
CRASH LOG:
ncident Identifier: C9C8CCA2-C696-47E2-AA9D-A8C31FFBAF31
CrashReporter Key: a67a03df60dd7720558ad435b234abe43d11b3f7
Hardware Model: iPad5,4
OS Version: iPhone OS 8.1.3 (12B466)
Kernel Version: Darwin Kernel Version 14.0.0: Mon Jan 12 21:30:33 PST 2015; root:xnu-2783.3.26~3/RELEASE_ARM64_T7001
Date: 2015-09-10 17:03:33 +0200
Time since snapshot: 90 ms
Free pages: 1933
Active pages: 121405
Inactive pages: 60751
Speculative pages: 80
Throttled pages: 0
Purgeable pages: 2
Wired pages: 315568
File-backed pages: 58380
Anonymous pages: 123856
Compressions: 1741284
Decompressions: 447152
Compressor Size: 8767
Uncompressed Pages in Compressor: 74266
Page Size: 16384
Largest process: MyAppMobileiOS
Processes
Name | | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
lockbot <53895193cd6633249ce169c478502497> 0.055 202 0 - 725 50 (daemon) (idle)
pfd <8ce9eb62121b30789b79e1f436991382> 0.015 142 0 - 292 50 (daemon) (idle)
cloudd <c52c2112d0273e96b8590473a61e7620> 6.121 690 0 - 2504 50 (daemon) (idle)
WirelessRadioMan <c4181e6d863133e8aa0c95e77a7bb206> 0.026 289 0 - 835 50 (daemon) (idle)
adid <4311d58b77b73fd4bf2c9e9e0bbe7102> 0.028 138 0 - 567 50 (daemon) (idle)
com.apple.Mobile <a1ced7e68eda30b1937b477edc680e47> 0.020 185 0 - 716 50 (daemon) (idle)
com.apple.Mobile <865e9aa3dce0392393a2445e115bc26f> 0.022 185 0 - 518 50 (daemon) (idle)
softwareupdated <fbc339ae37193ef1b1bd2a9d5e9bcbe4> 0.031 212 0 - 601 50 (daemon) (idle)
mobileassetd <2a22e27544cc3061a22b02482e465e18> 0.336 581 0 - 2101 50 (daemon) (idle)
misd <33855e3c639237059e7c9d7dda6aca90> 0.033 206 0 - 823 50 (daemon) (idle)
CallHistorySyncH <bc9285858ef43d54840605171b184fa2> 0.060 431 0 - 1252 50 (daemon) (idle)
IMDPersistenceAg <5fa1bcbbda9430798334affdb70def14> 0.030 277 0 - 930 50 (daemon) (idle)
timed <6fa98ab7f5de312b9bfed47e04e3a43e> 0.032 277 0 - 1031 50 (daemon) (idle)
AppleIDAuthAgent <32f4603750953460b1a7cb4969fd7cf5> 0.045 318 0 - 1743 50 (daemon) (idle)
keybagd <04b17e6606dd367885be8033ee6f077a> 0.015 161 0 - 381 50 (daemon) (idle)
biometrickitd <6298f82913613677b4b7207a26c585ec> 0.421 261 0 - 786 50 (daemon) (idle)
mediaremoted <baa09addc0ae3b55a72cfe7b2699a962> 0.033 318 0 - 1294 50 (daemon) (idle)
recentsd <c21dbb35d7a232298410e388a1752a23> 0.063 420 0 - 1455 50 (daemon) (idle)
softwareupdatese <4709ed9e2ad1314c8967b0ccefdd61eb> 0.258 977 0 - 1713 50 (daemon) (idle)
geod <0f816c02eb453d968c7bd1e4c1ecb994> 0.149 642 0 - 1539 50 (daemon) (idle)
MobileGestaltHel <7c83454f8c06366ebf04aea3bb88684b> 0.040 180 0 - 559 50 (daemon) (idle)
calaccessd <0a7ad7bbfb523bfdbae43aa6f21279f6> 0.191 631 0 - 1786 50 (daemon) (idle)
awdd <58036e1703903ee798a8803de204c300> 0.059 443 0 - 1216 50 (daemon) (idle)
lsuseractivityd <a9a6b77429543057b3e8dcf41f843882> 0.065 425 0 - 1977 50 (daemon) (idle)
com.apple.uifoun <87486c98c2873ab7a0a1a044a5a0cfd3> 0.029 275 0 - 939 50 (daemon) (idle)
DuetHeuristic-BM <e333cee8cc9e3dc282446623596bab84> 0.117 300 0 - 1117 50 (daemon) (idle)
healthd <9c827f1747f83866b20dcf4e398cc04d> 0.034 306 0 - 1035 50 (daemon) (idle)
com.apple.Stream <203112144ccc3e84acf77312bcf37070> 2.857 187 0 - 753 50 (daemon) (idle)
bird <646b4254a19a34caa4840f8001fd4420> 0.058 427 0 - 1779 50 (daemon) (idle)
assetsd <4f3af4038d6a31e8877838accafce687> 0.096 671 0 - 2159 50 (daemon) (idle)
findmydeviced <36e2b8af21133fb7a5a6271ab4d4f8de> 0.139 638 0 - 2122 50 (daemon) (idle)
nehelper <8837f4419593305c9831c00d25a97eaf> 0.869 258 0 - 822 50 (daemon) (idle)
assistantd <dff049e87a5932fabdffe16c4714f9a7> 0.071 544 0 - 2332 50 (daemon) (idle)
profiled <7b81e857b6ef3a7587f5d82f33801dcb> 1.409 596 0 - 2416 50 (daemon) (idle)
pkd <caa0944ef38235e7ac99199add47d66d> 0.038 289 0 - 707 50 (daemon) (idle)
accountsd <75b3925e9bec337abda4f51e69fc8aa3> 8.768 712 0 - 1816 50 (daemon) (idle)
mobactivationd <73043288866c3d4ca5eac0125c844edf> 0.084 244 0 - 858 50 (daemon) (idle)
misagent <ddb04cb78e2537a088fbe6c299c0ed8e> 0.046 177 0 - 418 50 (daemon) (idle)
mobile_installat <edbce91b2e3c348f8f4ad95fb6b1ad46> 0.447 289 0 - 1015 50 (daemon) (idle)
streaming_zip_co <60920fc5a7c335beb44817afc5fe72c3> 3.391 281 0 - 1111 50 (daemon) (idle)
coreduetd <aef9d0f50b733e809cad3a94e579e421> 82.665 1127 0 - 2401 50 (daemon) (idle)
sandboxd <bd8f8b9f25243f9986b3ce97fee405cc> 0.374 196 0 - 732 50 (daemon) (idle)
installd <99b95276bb41375fa847581e6fbe6374> 0.707 359 0 - 1339 50 (daemon) (idle)
swcd <05434abfd6103a369f3321d5bd15c96e> 0.011 194 0 - 533 50 (daemon) (idle)
containermanager <7036996ffbed3c0e9b50d8868efe28e0> 0.214 248 0 - 702 50 (daemon) (idle)
securityd <90eafc65815f356fab632f1752d53b24> 22.648 661 0 - 1707 50 (daemon) (idle)
gamecontrollerd <f41fdd3b557336b6b146bb00a33eab9f> 0.028 287 0 - 1200 50 (daemon) (idle)
aosnotifyd <8928d77645f134aa9150588fe1c143cf> 0.131 581 0 - 2008 50 (daemon) (idle)
syncdefaultsd <6f6a68c431cc37238c9e618de999477c> 0.065 421 0 - 1260 50 (daemon) (idle)
nsurlstoraged <85de3fa57a65304a959e6c2956042080> 1.553 451 0 - 1471 50 (daemon) (idle)
coresymbolicatio <09a629143bfc3a7d9228b414bb958ae9> 0.015 132 0 - 727 50 (daemon) (idle)
diagnosticd <274578acfd6d358a95c961c0bab148a9> 0.012 148 0 - 269 50 (daemon) (idle)
seld <c955a19f0fbd33118c611afe19061379> 3.394 303 0 - 1156 50 (daemon)
nsurlsessiond <ab90763d8a453fc68012fabc4b4f55fb> 2952.876 624 0 - 2134 50 (daemon)
nfcd <edf2425212b632dbb5ef155ee1600bbb> 2.724 255 0 - 680 50 (daemon)
passd <56971afa88b53f05a37688cad47b4160> 157.996 810 0 - 2715 50 (daemon)
afcd <4c7ac1d53ab73eada82020285315196f> 0.038 177 0 - 402 50 (daemon)
notification_pro <b143453e80393938a7ba23a0181dc52c> 2.654 215 0 - 625 50 (daemon)
MobileMail <4b48abd990e93dbea47db1cbf328da9e> 0.317 1302 0 - 3650 50 (resume) (continuous)
lsd <f554bd07b90a3cfc9d9ef9f8e234833c> 36.562 474 0 - 1401 50 (daemon)
tccd <f2878273872231afa1a6e0af2dcb73a6> 2.322 310 0 - 1084 50 (daemon)
kbd <f66b6a1e58b93ad9a2c5bd2e1b278a89> 3.316 895 0 - 3607 50 (daemon)
MyAppMobileiOS <3f455836ca6a322eac86d527e1523ab1> 14.932 307041 0 - 139221 50 [per-process-limit] (frontmost) (resume)
ptpd <a06176d3eefe3e3c8549bb4f6d340658> 2.108 774 0 - 2011 50 (daemon)
BTServer <fb2cd87aeac73d17bf13c86301b5b484> 66.048 631 0 - 2001 50 (daemon)
wifid <dd76567ec94c37d9b1c94cd96424b2a9> 1099.027 1335 0 - 2267 50 (daemon)
lockdownd <6e013570f34d36daa8738867f8421001> 162.384 436 0 - 2710 50 (daemon)
discoveryd <68f73878299336d7872b0ae9ce3f7f08> 2956.940 935 0 - 2164 100 (daemon)
imagent <432c43382eeb3724894a973cd6f5a399> 50.719 711 0 - 1777 50 (daemon)
identityservices <9d4b00e3c6003685ac8697c59f4e4d38> 149.813 954 0 - 2601 50 (daemon)
mediaserverd <a0354e528bc431958df0d50830bead36> 33.273 1696 0 - 4212 50 (daemon)
cfprefsd <4325eab208063b998046460a4c2ee484> 98.702 537 0 - 2497 50 (daemon)
syslogd <05f6b5e5512938a892bac5af23ab1c08> 1605.858 320 0 - 2162 50 (daemon)
iaptransportd <c10fd2029e2e315d92873b74a92c6e9c> 181.800 354 0 - 983 50 (daemon)
powerd <2b4ae8758a5b3b709a97c452ec08923b> 286.535 406 0 - 727 50 (daemon)
apsd <bb925404cb1137b09b85671a8d2c7656> 312.283 1037 0 - 4497 50 (daemon)
networkd <ad1db85ed3c53c6fadbd858f9a88dd20> 237.182 778 0 - 5847 50 (daemon)
dataaccessd <33bcaea3bc473f128685f4df14a115eb> 13.681 960 0 - 2823 50 (daemon)
sharingd <233b174d5619396cb3af72c7d7e51985> 12.777 885 0 - 2694 50 (daemon)
searchd <eff930e81e4d38f796034db851dad1fe> 757.973 1193 0 - 5590 50 (daemon)
locationd <a57577b0423133a0b17579011ef1c65f> 2051.091 3549 0 - 5035 50 (daemon)
SpringBoard <d9487116f8c239d2b5fb32c12168cac1> 10.514 6275 0 - 25629 50
backboardd <45eb8ac74abd31b386cb3b7ba27618ea> 54.692 97037 0 - 131444 50 (daemon)
fseventsd <16c9b62bb28c388ca10d54dbff18c4f8> 143.831 979 0 - 2080 50 (daemon)
configd <ed40fcde35ae337ab3b70073199564b1> 117.409 1478 0 - 1865 50 (daemon)
fairplayd.A2 <6ca40f79d0ad34d5b4df0a80fce4bc5d> 3.232 176 0 - 1325 50 (daemon)
wirelessproxd <ab1fa7e43a7c3f9393533404c2cc80b8> 2.607 299 0 - 1082 50 (daemon)
assertiond <10ec04add18f3ecd8a8efbb1cc4e2bd6> 52.340 366 0 - 2071 50 (daemon)
distnoted <cb5e76091dc53ceeaf65290f8e197a89> 7.723 244 0 - 500 50 (daemon)
discoveryd_helpe <492c39ae2d643adca0ed971675c77406> 0.151 187 0 - 796 50 (daemon)
filecoordination <519743feb6cb36ff871945656d950d8b> 0.314 298 0 - 1027 50 (daemon)
aggregated <281958649a3130aab6ecb1aa47f0a6c1> 4.644 1092 0 - 2275 50 (daemon)
UserEventAgent <f5a211b9c88e3fa481f2bd1ee1f5a921> 2.033 886 0 - 2815 100 (daemon)
CommCenter <33412ab229c738c8860c70803fed173b> 1329.544 3270 0 - 6434 50 (daemon)
notifyd <5fa8fd5e44c83f64be1475b882b16c82> 1302.113 520 0 - 615 50 (daemon)
ReportCrash <698156bee7ff37c0ab9fd8fe15a6ee32> 0.080 395 0 - 829 50 (daemon)
End
Related
While it's easily done to visually outline, is it possible to have imagemagick output the coordinates of the outline of a transparent image?
Note, by outline, I don't mean just the bounding box border, but the actual contour around an arbitrarily shaped transparent image geometry.
Let's say you start with this image, which has a transparent background:
You can extract the transparency and find the edges like this:
convert penguin.png -alpha extract -edge 1 -threshold 50% edges.png
If, rather than an image, you want a list of the coordinates of the contour (i.e. the white pixels), you could do this instead:
convert penguin.png -alpha extract -edge 1 -threshold 50% -depth 8 txt: | awk -F: '/white/{print $1}'
256,0
253,1
254,1
255,1
257,1
258,1
259,1
253,2
259,2
252,3
253,3
...
...
Replace awk and everything after it with more to see what the awk is actually doing - it is just printing the coordinates of every pixel that is white.
The above pixels come out in row order, not like a contour where adjacent pixels come out together. If you want that, you might prefer to generate an SVG of the transparency with potrace like this:
convert penguin.png -alpha extract -threshold 50% pgm:- | potrace - --svg < alpha.pgm > result.svg
Output
<?xml version="1.0" standalone="no"?>
<!DOCTYPE svg PUBLIC "-//W3C//DTD SVG 20010904//EN"
"http://www.w3.org/TR/2001/REC-SVG-20010904/DTD/svg10.dtd">
<svg version="1.0" xmlns="http://www.w3.org/2000/svg"
width="500.000000pt" height="577.000000pt" viewBox="0 0 500.000000 577.000000"
preserveAspectRatio="xMidYMid meet">
<metadata>
Created by potrace 1.13, written by Peter Selinger 2001-2015
</metadata>
<g transform="translate(0.000000,577.000000) scale(0.100000,-0.100000)"
fill="#000000" stroke="none">
<path d="M0 3294 l0 -2476 25 16 c31 20 104 21 152 1 20 -8 38 -14 40 -12 2 2
-8 35 -23 73 -49 129 -29 246 43 260 51 10 109 -12 159 -58 43 -40 44 -40 44
-15 0 41 60 120 99 130 28 7 32 11 26 30 -24 70 -15 385 16 637 44 346 171
715 351 1023 34 58 35 77 5 77 -43 0 -242 47 -277 65 -68 35 -196 130 -248
185 -83 86 -119 154 -153 286 -31 124 -38 237 -18 307 13 49 15 49 91 -15 177
-151 388 -309 477 -357 42 -23 108 -60 146 -81 76 -43 194 -83 228 -78 19 3
23 12 28 60 4 32 12 65 19 73 15 18 16 17 -35 34 -88 29 -255 122 -255 141 0
5 12 15 27 22 24 11 48 10 168 -9 77 -12 179 -22 226 -23 80 0 87 2 111 28 60
64 64 105 11 123 -21 6 -76 30 -122 51 l-84 39 -30 -21 c-21 -16 -32 -19 -40
-11 -19 19 8 54 63 84 46 25 59 27 109 22 31 -3 66 -8 79 -11 77 -16 -65 130
-178 182 -84 38 -150 45 -340 35 -225 -12 -242 -15 -322 -55 -57 -28 -68 -31
-68 -17 0 26 77 95 150 134 206 112 479 177 741 177 l97 0 -20 38 c-37 70 -10
186 68 294 54 75 56 88 23 119 -16 15 -29 36 -29 47 0 12 -4 24 -10 27 -19 12
-10 57 18 94 69 89 125 236 167 431 24 113 41 148 68 137 19 -7 43 -83 52
-162 l7 -60 33 90 c18 50 36 110 40 135 10 61 55 111 55 61 0 -11 9 -35 20
-54 29 -49 40 -235 17 -289 -9 -21 -12 -38 -8 -38 4 0 34 22 65 50 31 27 66
55 78 61 20 11 21 9 14 -22 -3 -18 -24 -72 -46 -119 -22 -48 -40 -90 -40 -94
0 -14 43 17 110 80 143 136 324 456 306 545 -4 21 -1 31 12 38 11 7 -402 10
-1260 11 l-1278 0 0 -2476z"/>
<path d="M2613 5669 c17 -82 18 -107 9 -133 -7 -18 -12 -47 -12 -64 0 -18 -14
-60 -31 -93 -17 -34 -28 -64 -25 -67 10 -10 49 17 129 88 43 39 84 70 92 70
23 0 17 -31 -15 -79 -17 -24 -30 -49 -30 -56 0 -6 -32 -58 -70 -115 -39 -56
-69 -104 -67 -106 4 -5 111 33 153 54 33 17 42 18 57 7 9 -7 17 -17 17 -23 0
-16 -104 -125 -134 -141 -14 -8 -26 -17 -26 -20 0 -4 23 -17 50 -30 53 -25
100 -63 100 -80 0 -19 -36 -30 -116 -36 -43 -3 -103 -8 -133 -11 l-54 -6 82
-80 c92 -90 185 -225 230 -331 34 -83 71 -217 71 -260 0 -15 5 -38 12 -50 18
-34 31 -169 29 -311 -1 -97 2 -133 12 -145 8 -9 29 -43 47 -76 19 -33 58 -96
87 -139 64 -93 107 -175 122 -233 10 -36 17 -44 49 -54 59 -18 220 -22 467 -9
127 6 316 15 420 20 184 9 267 15 311 25 46 10 364 35 451 35 64 0 93 -4 96
-12 3 -7 6 566 6 1275 l1 1287 -1204 0 -1203 0 20 -101z"/>
<path d="M4971 3138 c-20 -33 -89 -96 -165 -153 -23 -17 -103 -92 -179 -168
-77 -75 -145 -137 -153 -137 -8 0 -27 -21 -43 -47 -29 -47 -30 -47 -178 -99
-81 -29 -158 -53 -171 -53 -12 -1 -61 -15 -109 -31 -50 -18 -106 -30 -133 -30
-25 1 -101 -2 -170 -6 -100 -5 -136 -3 -179 10 -30 9 -70 16 -89 16 -33 0 -33
-1 -25 -32 4 -18 8 -92 8 -164 l0 -132 32 -20 c17 -12 70 -64 117 -117 68 -76
96 -119 140 -208 58 -118 106 -256 106 -302 0 -24 3 -26 23 -20 12 3 42 9 67
12 69 8 83 -18 98 -180 16 -176 45 -309 96 -446 24 -64 48 -129 54 -146 17
-50 52 -247 52 -295 0 -69 -42 -141 -129 -221 -99 -91 -141 -111 -239 -112
-91 -2 -129 14 -157 67 -23 42 -35 44 -76 14 -35 -26 -138 -36 -191 -19 -60
20 -78 45 -78 106 0 47 4 57 24 70 41 27 148 62 227 74 41 6 89 14 107 17 19
3 32 11 32 20 0 8 12 42 26 75 24 58 25 66 15 145 -7 57 -25 120 -57 204 -26
66 -50 120 -53 120 -16 -1 -49 -42 -73 -90 -56 -110 -125 -182 -277 -287 -66
-46 -158 -73 -248 -73 -82 0 -93 -4 -173 -65 -85 -65 -188 -116 -290 -143
-139 -38 -226 -46 -470 -45 -201 1 -250 4 -339 23 -57 12 -116 20 -130 17 -14
-3 -73 -22 -131 -42 -97 -34 -111 -37 -192 -33 l-87 4 -6 -40 c-4 -23 -9 -55
-12 -73 -7 -43 -51 -82 -104 -92 -25 -5 786 -9 1934 -10 l1977 -1 0 1585 c0
872 -2 1585 -4 1585 -2 0 -14 -15 -25 -32z"/>
<path d="M0 358 l0 -358 458 1 c393 1 450 2 407 14 -146 37 -255 105 -435 270
-30 28 -102 83 -160 122 -173 118 -218 166 -256 271 -11 32 -13 -14 -14 -320z"/>
</g>
</svg>
Assuming you have a transparent "input.png", first convert all nontransparent pixels to white, then use the "-edge" option to find the transitions between transparent and white:
convert input.png -negate -threshold 1 -edge 1 edge.png
Note that this will not only outline the image but will outline any "holes" in it as well. For example, try it with the built-in "logo:" image:
convert logo: -transparent white logotrans.png
convert logotrans.png -negate -threshold 1 -edge 1 t.png
which transforms this
to this
Xcode 6.2's debugger doesn't seem to be catching a crash from my application. Whenever it crashes, I just get a popup that says:
Restore the connection to "Agile Lab's iPhone 6 Plus" and run "Tag
Beta" again, or if "Tag Beta" is still running, you can attach to it
by selecting Debug > Attach to Process > Tag Beta.
I have breakpoints on and a breakpoint for "All Exceptions." When I go to Window > Devices and hit "View Device Logs" it shows this:
Hardware Model: iPhone7,1
OS Version: iPhone OS 8.1.3 (12B466)
Kernel Version: Darwin Kernel Version 14.0.0: Mon Jan 12 21:30:05 PST 2015; root:xnu-2783.3.26~3/RELEASE_ARM64_T7000
Date: 2015-03-31 15:12:15 -0400
Time since snapshot: 1230 ms
Free pages: 2404
Active pages: 40050
Inactive pages: 18785
Speculative pages: 1206
Throttled pages: 0
Purgeable pages: 524
Wired pages: 147884
File-backed pages: 11282
Anonymous pages: 48760
Compressions: 487127
Decompressions: 189679
Compressor Size: 40449
Uncompressed Pages in Compressor: 103077
Page Size: 16384
Largest process: Tag Beta
Processes
Name | <UUID> | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
WirelessRadioMan <REMOVED_FOR_PRIVACY> 0.036 295 0 - 889 50 [vm-pageshortage] (daemon) (idle)
nsurlstoraged <REMOVED_FOR_PRIVACY> 0.072 294 0 - 680 50 [vm-pageshortage] (daemon) (idle)
seld <REMOVED_FOR_PRIVACY> 0.052 218 0 - 995 50 [vm-pageshortage] (daemon)
nsurlsessiond <REMOVED_FOR_PRIVACY> 0.285 389 0 - 1326 50 [vm-pageshortage] (daemon)
passd <REMOVED_FOR_PRIVACY> 0.211 623 0 - 2400 50 [vm-pageshortage] (daemon)
nfcd <REMOVED_FOR_PRIVACY> 0.024 192 0 - 634 50 [vm-pageshortage] (daemon)
biometrickitd <REMOVED_FOR_PRIVACY> 0.084 232 0 - 720 50 [vm-pageshortage] (daemon)
debugserver <REMOVED_FOR_PRIVACY> 1.059 212 0 - 703 50 [vm-pageshortage] (daemon)
MobileMail <REMOVED_FOR_PRIVACY> 0.471 1277 0 - 3744 50 [vm-pageshortage] (resume) (continuous)
lsd <REMOVED_FOR_PRIVACY> 0.612 361 0 - 1136 50 [vm-pageshortage] (daemon)
tccd <REMOVED_FOR_PRIVACY> 0.146 281 0 - 968 50 (daemon)
Tag Beta <REMOVED_FOR_PRIVACY> 19.967 97247 524 - 55588 100 (frontmost) (resume)
ptpd <REMOVED_FOR_PRIVACY> 1.226 786 0 - 2356 50 (daemon)
BTServer <REMOVED_FOR_PRIVACY> 0.303 483 0 - 1811 50 (daemon)
wifid <REMOVED_FOR_PRIVACY> 2.303 544 0 - 1786 50 (daemon)
lockdownd <REMOVED_FOR_PRIVACY> 1.481 279 0 - 1007 50 (daemon)
locationd <REMOVED_FOR_PRIVACY> 35.207 2182 0 - 5074 50 (daemon)
discoveryd <REMOVED_FOR_PRIVACY> 4.462 580 0 - 1232 100 (daemon)
mediaserverd <REMOVED_FOR_PRIVACY> 28.952 36002 0 - 5968 50 (daemon)
imagent <REMOVED_FOR_PRIVACY> 0.418 522 0 - 1531 50 (daemon)
iaptransportd <REMOVED_FOR_PRIVACY> 0.333 308 0 - 906 50 (daemon)
identityservices <REMOVED_FOR_PRIVACY> 1.016 724 0 - 2027 50 (daemon)
cfprefsd <REMOVED_FOR_PRIVACY> 1.371 400 0 - 798 50 (daemon)
syslogd <REMOVED_FOR_PRIVACY> 1.376 233 0 - 449 50 (daemon)
powerd <REMOVED_FOR_PRIVACY> 0.608 215 0 - 514 50 (daemon)
apsd <REMOVED_FOR_PRIVACY> 1.141 733 0 - 2076 50 (daemon)
networkd <REMOVED_FOR_PRIVACY> 1.341 650 0 - 1747 50 (daemon)
vmd <REMOVED_FOR_PRIVACY> 0.086 550 0 - 2441 50 (daemon)
dataaccessd <REMOVED_FOR_PRIVACY> 0.571 853 0 - 2657 50 (daemon)
sharingd <REMOVED_FOR_PRIVACY> 0.360 719 0 - 2260 50 (daemon)
searchd <REMOVED_FOR_PRIVACY> 0.402 874 0 - 2886 50 (daemon)
syslog_relay <REMOVED_FOR_PRIVACY> 0.246 113 0 - 237 50 (daemon)
geod <REMOVED_FOR_PRIVACY> 1.152 868 0 - 1847 50 (daemon)
SpringBoard <REMOVED_FOR_PRIVACY> 14.007 6886 0 - 28595 50
backboardd <REMOVED_FOR_PRIVACY> 63.774 13669 524 - 3673 50 (daemon)
UserEventAgent <REMOVED_FOR_PRIVACY> 17.578 916 0 - 2959 100 (daemon)
fseventsd <REMOVED_FOR_PRIVACY> 0.689 387 0 - 629 50 (daemon)
configd <REMOVED_FOR_PRIVACY> 0.729 530 0 - 1544 50 (daemon)
fairplayd.H2 <REMOVED_FOR_PRIVACY> 0.530 149 0 - 1052 50 (daemon)
assertiond <REMOVED_FOR_PRIVACY> 0.319 296 0 - 1012 50 (daemon)
distnoted <REMOVED_FOR_PRIVACY> 0.078 186 0 - 321 50 (daemon)
wirelessproxd <REMOVED_FOR_PRIVACY> 0.068 248 0 - 1065 50 (daemon)
aggregated <REMOVED_FOR_PRIVACY> 23.356 1192 0 - 2375 50 (daemon)
discoveryd_helpe <REMOVED_FOR_PRIVACY> 0.020 153 0 - 752 50 (daemon)
filecoordination <REMOVED_FOR_PRIVACY> 0.030 224 0 - 898 50 (daemon)
DTMobileIS <REMOVED_FOR_PRIVACY> 3.415 642 0 +25 2345 50 (daemon)
gputoolsd <REMOVED_FOR_PRIVACY> 0.285 948 0 - 2340 50 (daemon)
CommCenter <REMOVED_FOR_PRIVACY> 30.132 1626 0 - 5021 50 (daemon)
notifyd <REMOVED_FOR_PRIVACY> 2.168 347 0 - 413 50 (daemon)
ReportCrash <REMOVED_FOR_PRIVACY> 0.043 162 0 - 579 50 (daemon)
**End**
Now if I run the app in production mode, and attach Fabric, it does catch the exception properly:
Fatal Exception: NSInvalidArgumentException
-[TAGFeedJourneyTableViewCell previewImageView]: unrecognized selector sent to instance 0x14271e9d0
Thread : Fatal Exception: NSInvalidArgumentException
0 CoreFoundation 0x000000018349a59c __exceptionPreprocess + 132
1 libobjc.A.dylib 0x0000000193bec0e4 objc_exception_throw + 60
2 CoreFoundation 0x00000001834a1664 __methodDescriptionForSelector
3 CoreFoundation 0x000000018349e418 ___forwarding___ + 928
4 CoreFoundation 0x00000001833a2b6c _CF_forwarding_prep_0 + 92
5 Tag Beta 0x000000010012ca3c -[TAGFeedViewController tableView:didSelectRowAtIndexPath:] (TAGFeedViewController.m:603)
6 UIKit 0x0000000187d71390 -[UITableView _selectRowAtIndexPath:animated:scrollPosition:notifyDelegate:] + 1280
7 UIKit 0x0000000187e2ecdc -[UITableView _userSelectRowAtPendingSelectionIndexPath:] + 276
8 UIKit 0x0000000187ccb564 _applyBlockToCFArrayCopiedToStack + 356
9 UIKit 0x0000000187c3ce78 _afterCACommitHandler + 532
10 CoreFoundation 0x0000000183452a50 __CFRUNLOOP_IS_CALLING_OUT_TO_AN_OBSERVER_CALLBACK_FUNCTION__ + 32
11 CoreFoundation 0x000000018344f9dc __CFRunLoopDoObservers + 360
12 CoreFoundation 0x000000018344fdbc __CFRunLoopRun + 836
13 CoreFoundation 0x000000018337d0a4 CFRunLoopRunSpecific + 396
14 GraphicsServices 0x000000018c5175a4 GSEventRunModal + 168
15 UIKit 0x0000000187caeaa4 UIApplicationMain + 1488
16 Tag Beta 0x0000000100123f7c main (main.m:14)
17 libdyld.dylib 0x000000019425aa08 start + 4
While it's nice that Fabric is able to catch the issue, It'd be much more helpful if the debugger would catch the exception, so I could see values, stack traces, etc. Is there some setting that I just don't have on or is this an issue with Xcode?
I found crash logs but I can't understand it. I tried from this:How to symbolicate crash log Xcode? but I got stuck in seme step because of I haven't use crash logs before.
Then I pull the log into a folder and then rename it because it contains chinese. And I tried follow this:http://www.juliusparishy.com/articles/symbolicating-ios-8-crash-logs. It didn't work also.
applematoMacBook-Air:crash apple$ DEVELOPER_DIR=`xcode-select -print-path` /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash -o ./myapp-resymbolicated.crash ./MoneyPower.crash ./MoneyPower.app.dSYM
No crash report version in ./MoneyPower.crash at /Applications/Xcode.app/Contents/SharedFrameworks/DTDeviceKitBase.framework/Versions/A/Resources/symbolicatecrash line 957.
Below is the log:
Incident Identifier: 13C0A1CB-2A40-496D-9DEF-DE85F72B84DE
CrashReporter Key: 52577145db78209ce4892c3e02465b6cfdc27b07
Hardware Model: iPhone5,4
OS Version: iPhone OS 8.1 (12B411)
Kernel Version: Darwin Kernel Version 14.0.0: Tue Oct 7 00:04:37 PDT 2014; root:xnu- 2783.3.13~4/RELEASE_ARM_S5L8950X
Date: 2014-11-26 16:57:11 +0800
Time since snapshot: 65 ms
Free pages: 2758
Active pages: 16544
Inactive pages: 7324
Speculative pages: 759
Throttled pages: 170016
Purgeable pages: 0
Wired pages: 33684
File-backed pages: 23985
Anonymous pages: 642
Compressions: 714623
Decompressions: 224424
Compressor Size: 29519
Uncompressed Pages in Compressor: 71670
Page Size: 4096
Largest process: kbd
Processes
Name | <UUID> | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
AppleIDAuthAgent <e05ab3faa1243f3a900bac613820c3cd> 0.158 216 0 - 1257 50 (daemon) (idle)
cplogd <8e9ff218b5de30428df98e6d088cc6e7> 0.122 116 0 - 457 50 (daemon) (idle)
ind <35c1864a720232ea9b42aeb1df454ac6> 0.420 360 0 - 1221 50 (daemon) (idle)
MailCompositionS <fb46b62148b432bca350f4f0962e5baa> 2.197 4089 0 - 4928 50 (suspended)
QSInstaller <0ac1afc270963cba8e7ceacfbd88327b> 0.796 401 0 - 1983 50 (daemon) (idle)
Eudic_Pro_us <c767d73448bd38f381ef61e8059487f0> 59.839 5178 0 - 12422 50 (suspended)
CloudKeychainPro <bf2dc17596d9381bb02f0d3848253d29> 0.264 123 0 - 376 50 (daemon) (idle)
rocketd <379e73e3ec7b395296a9185cdb886153> 0.025 67 0 - 158 50 (daemon) (idle)
TingIPhone <fead8493c4d53af88370a65b90c8e13e> 2.015 2293 0 - 8027 50 (suspended)
MessagesNotifica <c21e17f099763f079a8909e53939cab6> 1.292 1609 0 - 3871 50 (suspended)
IMDPersistenceAg <8709c1b2c8ac37c38331026019487c4a> 1.948 444 0 - 4001 50 (daemon) (idle)
QZone <bad24b7fc2e33bc7ad0f9e35fe56fcdc> 53.227 8769 0 - 17340 100 (suspended)
adid <318b35f544ef30458c779f196840141b> 0.187 118 0 - 528 50 (daemon) (idle)
com.apple.facebo <0aa3451928ec326781922890b85b6376> 0.418 357 0 - 1324 50 (daemon) (idle)
MicroMessenger <5d0e48e5bb623e088cb372a1981d09cd> 31.297 6579 0 - 17535 100 (suspended)
coresymbolicatio <015dae53431f3f89a557a3f1ed748ba1> 0.103 82 0 - 187 50 (daemon) (idle)
diagnosticd <4593765ed9a833228e3f1515308b20fa> 0.443 121 0 - 254 50 (daemon) (idle)
AssetCacheLocato <6018ec37b6ad3dde8cb6d576b24b61e7> 0.473 235 0 - 849 50 (daemon) (idle)
com.apple.Stream <7b86d693c03f3149a1eba23d4d834eeb> 27.701 161 0 - 739 50 (daemon) (idle)
CallHistorySyncH <8ce6f70f70273829936775ea5cccdd12> 1.824 428 0 - 1225 50 (daemon) (idle)
fmfd <eb696bfb4c03371b83b1f4e89e446eeb> 1.826 422 0 - 1348 50 (daemon) (idle)
cloudphotod <2edd5622cf23381f8b22c92bc4b7a5c3> 6.342 617 0 - 1752 50 (daemon) (idle)
CacheDeleteGeoTi <bb953149b86a33cf8cc9226b9a74bd34> 0.196 146 0 - 562 50 (daemon) (idle)
mobileassetd <9a378084bd953954a1dd760d49fe7ede> 2.244 392 0 - 1792 50 (daemon) (idle)
geod <48710d774a42357ea97f9ad0a527ee5f> 4.365 635 0 - 1434 50 (daemon) (idle)
CacheDeleteAppCo <ee9139b8e1db3d3ba6d20a08a2cf08ac> 9.867 343 0 - 1226 50 (daemon) (idle)
CacheDeleteMobil <9cbeda33d15f3ee4af73660e85b8a738> 0.416 345 0 - 1489 50 (daemon) (idle)
CacheDeleteITune <9b54c0dcf93a3ddfa5f461436ea11664> 0.436 185 0 - 815 50 (daemon) (idle)
deleted <11e9a7b04fd335f5ac6e6f9e7922deff> 0.278 153 0 - 395 50 (daemon) (idle)
rtcreportingd <6a3478eeeec93f1797f432895851613a> 1.912 349 0 - 1129 50 (daemon) (idle)
SOHUVideo <8f2a763084bd33df91fb4d49bec096ce> 1039.212 5915 0 - 11547 100 (suspended)
vvebo <d76cf63bb0543b75b0f28e0ddc9bfe39> 439.540 13452 0 - 21578 200 (suspended)
pipelined <75d09f2b0b493a2d84a7043a5ce96360> 0.524 346 0 - 1858 50 (daemon) (idle)
librariand <72539244d3923f2d88cd15d9ce08c0bc> 0.601 243 0 - 859 50 (daemon) (idle)
com.apple.Stream <7b86d693c03f3149a1eba23d4d834eeb> 2.964 138 0 - 555 50 (daemon) (idle)
swcd <09d4cfa1662e3483b7da852d10cf45d5> 0.108 163 0 - 548 50 (daemon) (idle)
findmydeviced <2b7e318bab4e394ebd19a17ed0bf979d> 0.843 530 0 - 1786 50 (daemon) (idle)
aosnotifyd <16ece00586ec3ccab1fbdeb6d92aad1a> 1.598 495 0 - 1741 50 (daemon) (idle)
mobile_installat <9c9425ce271b3154b99d23e6e35240ef> 18.061 360 0 - 1213 50 (daemon) (idle)
streaming_zip_co <f8a43feeded33f30ae10bafafde0f052> 1.787 224 0 - 960 50 (daemon) (idle)
ContainerMetadat <24e851abc8b43f4093ea6d80c5a262ac> 29.550 488 0 - 1963 50 (daemon) (idle)
QSCenter <00f1d456fc583c9a8c2c57ecd3327f46> 238.360 1344 0 - 5462 200 (daemon) (idle)
familycircled <5fea61a5086f36348233dbf09e7adeee> 0.521 397 0 - 1481 50 (daemon) (idle)
AppStore <4443338ecbfe3b85afc4aba498d0cee8> 138.361 24407 0 - 25261 100 (suspended)
misd <8ea26d6e019d355795ff0cb117733f68> 0.258 159 0 - 747 50 (daemon) (idle)
Preferences <6bcd6b5ca2393131902eaee019857bd2> 27.053 5010 0 - 8509 50 (suspended)
MQQSecureJB <019bc764bc133db7baafa8a23c9445e7> 2.767 2271 0 - 7357 50 (suspended)
healthd <8495258d6e7b3ecfa21c18dc110b5402> 2.035 412 0 - 1099 50 (daemon) (idle)
BlueTool <79ec82b9ee3b31e7aee4ad348206fb07> 0.085 112 0 - 452 50 (daemon) (idle)
nehelper <d3804c7b0ccf3e1aa437061c7229cfb7> 1.580 217 0 - 843 50 (daemon) (idle)
BTLEServer <666685c2f90a3daa81bbe6520a811206> 0.326 273 0 - 1629 50 (daemon) (idle)
recentsd <04f80416cfc734cc8f3d6be6578467e0> 1.223 530 0 - 1583 50 (daemon) (idle)
medialibraryd <c80a6cacc2a334729705adb044e68c00> 9.229 563 0 - 1479 50 (daemon) (idle)
DTMobileIS <2a11eaaf903d38798629d3aecd137832> 302.687 502 0 - 1976 50 (daemon) (idle)
storebookkeeperd <046122091101309d968c43a2be97867c> 3.857 954 0 - 2460 50 (daemon) (idle)
itunesstored <651906971d0732e1942355da4bd91100> 110.578 2312 0 - 4746 100 (daemon) (idle)
itunescloudd <47bdc6fbccd6364480dbd1a2b3c7998d> 5.967 859 0 - 2625 50 (daemon) (idle)
CMFSyncAgent <268f03103f6032af8597e9fce57491b7> 0.152 143 0 - 498 50 (daemon) (idle)
WirelessRadioMan <40bc5fa762323e69a45d77854a53c4b2> 2.835 246 0 - 931 50 (daemon) (idle)
awdd <857efa30f8e23d2a9f25f53673af6ccb> 3.726 520 0 - 1124 50 (daemon) (idle)
passd <cea683659ba036a6a6f4b4f927160353> 30.283 679 0 - 2519 50 (daemon) (idle)
lsuseractivityd <9057065ea9cd37e2b905cfa169f62ef2> 3.083 384 0 - 1773 50 (daemon) (idle)
assetsd <55f3adbf8b1e3bf3b57471e01356417c> 38.141 1611 0 - 4256 50 (daemon) (idle)
webbookmarksd <3173c4f369ac382aa0e03975b1f6bc18> 26.917 564 0 - 1458 50 (daemon) (idle)
QSCharmer <b7f401ca48cd3c13a7e6a51328d183e8> 17.301 819 0 - 2277 100 (daemon) (idle)
profiled <4edd7c7d0a8631b58e739cfd13fc1865> 6.793 547 0 - 4488 50 (daemon) (idle)
GoodReader4 <dbe6961a764b347abbd609b6a223e6a7> 4.941 2008 0 - 5229 50 (suspended)
misagent <716ddd8b8fdf30a180872e0ac95b0c96> 1.161 129 0 - 526 50 (daemon) (idle)
nsurlstoraged <2216f383497435919d46cce44e2750dd> 23.292 1352 0 - 2999 200 (daemon) (idle)
networkd_privile <1c19249e1c9b3c1fae4bdb06671795d0> 0.986 92 0 - 261 50 (daemon) (idle)
routined <014344942eca323bb12d360e06c8d865> 13.554 511 0 - 2147 50 (daemon) (idle)
keybagd <30eb49ca086937f4a52413bee502a025> 4.062 110 0 - 328 50 (daemon) (idle)
assistantd <bbc6396ded9f32f89e4f3c3c62550786> 1.593 464 0 - 1793 50 (daemon) (idle)
pkd <d1ef96d5c84a3ec7bac8811f210d0d86> 8.705 335 0 - 886 50 (daemon) (idle)
revisiond <e89e877ac57239f59c0eed4ea5ecdff9> 1.206 267 0 - 569 50 (daemon) (idle)
com.baidu.ime.Ba <2518403a187230cc98feadecab0d1a63> 13.933 1975 0 - 7508 50 (suspended)
MobileGestaltHel <069f2f40d7ee3345adcc53637ae9ddf7> 3.302 173 0 - 597 50 (daemon) (idle)
sandboxd <a2a6b1bb1b3231af96cf6125c8f3e971> 0.722 144 0 - 620 50 (daemon) (idle)
DuetHeuristic-BM <003d26850d5e3dc7997d444a182c03ad> 5.482 327 0 - 1031 50 (daemon) (idle)
coreduetd <ac84ea2f95a43b9e911738284359db9b> 270.000 1370 0 - 2466 50 (daemon) (idle)
timed <3b91fa8cbe9131af958b430e85fa448d> 5.483 247 0 - 1002 50 (daemon) (idle)
accountsd <6185caa9f3793aef892ccf0ec3391ced> 80.564 1225 0 - 3233 50 (daemon) (idle)
calaccessd <9d8bb08b0f1d33a3878f213805bb7a14> 38.640 734 0 - 1799 50 (daemon) (idle)
mobactivationd <04a28566ff493e2b931706a59270fe8a> 3.647 207 0 - 814 50 (daemon) (idle)
securityd <d425cdb8afb13ccd836a8e0e706f33e0> 79.635 1033 0 - 2432 50 (daemon) (idle)
containermanager <7d4e114c087f3566bb0fe4be34f0d315> 18.437 336 0 - 880 50 (daemon) (idle)
lockbot <ba949fe90d403a95abc20b3780e5dfab> 1.286 176 0 - 676 50 (daemon) (idle)
nsurlsessiond <7676f54e86233a47b73b7a707f5903e1> 181.227 870 0 - 2165 50 (daemon)
gamed <424e1a60719830b5b4d799ed01954180> 13.246 979 0 - 3083 50 (daemon)
Music <8c00f2c612d631bca8c94cb80079f45e> 10.284 1793 0 - 4795 50 (background)
absd <84d31e794d8b345bbdc06c990e18922d> 0.218 97 0 - 386 50 (daemon)
bird <1c0b6b6474ab3b0686ca1fbcd547245d> 37.934 1711 0 - 3450 50 (daemon)
cloudd <309d7860b8db331a978c2c814f0c8332> 108.050 1442 0 - 3031 50 (daemon)
notification_pro <6ceb017d382139b19f49e20e461dbee2> 2.658 189 0 - 368 50 (daemon)
afcd <9725b438ad9d3e259a2e628f6fffb449> 0.265 139 0 - 294 50 (daemon)
mobile_assertion <de75b4d90658347b8873a4938aa02122> 0.117 119 0 - 340 50 (daemon)
MobileMail <7285623db1753882bca1a7983ba6a479> 10.635 1433 0 - 3853 50 (resume) (continuous)
MobileSMS <e36c461c698438948d233a751658dc8d> 12.979 2795 0 - 7633 50 (continuous)
lsd <b4acbcce51273ae699bcdaba19e8e6d2> 31.574 615 0 - 1453 50 (daemon)
tccd <046fa98e4bfd30789c10447b04d67a59> 11.467 307 0 - 904 50 (daemon)
kbd <91b2e4707a4233c598ba51ab8d765fc6> 89.667 31706 0 - 32409 50 [highwater] (daemon)
InCallService <d83952575cf631baac492f39dd5bd2c5> 6.497 1132 0 - 3379 50 (resume) (continuous)
FaceTime <d0e139af986b34d08c219f8057708b23> 6.179 1517 0 - 4518 50 (continuous)
MoneyPower <c72bab945b653b7cb101e44f88e4d1ff> 1.352 1726 0 - 4493 50 (frontmost) (resume)
ptpd <1b2175128a1e3880bc9f2c8835df0a84> 0.899 871 0 - 1789 50 (daemon)
BTServer <8138d14a265f3445a288e8a8fefc4f88> 4.663 590 0 - 2360 50 (daemon)
amfid <0162233147ee3429bd1e344fde40d8d7> 0.023 76 0 - 173 25 (daemon) (idle)
discoveryd <8aed6e4ba09f3761b12796bc1ef045d7> 104.080 900 0 - 1818 100 (daemon)
wifid <07a9fb4965473001880a56f4e06e18c8> 52.415 538 0 - 1545 50 (daemon)
lockdownd <0d55399f17293f74af1f04987c0c7f30> 67.031 401 0 - 1410 50 (daemon)
imagent <c0ef36357e8c3658b3876bfb5dd25996> 12.568 805 0 - 2623 50 (daemon)
identityservices <d4c29d99664e34bdb82e046c600271c1> 18.707 713 0 - 2183 50 (daemon)
syslogd <d9a9a4a03dea32d8b041d5ac197c8f98> 46.064 344 0 - 445 50 (daemon)
iaptransportd <4d6f8290631a33928f87ddf2cc87ac41> 8.753 318 0 - 821 50 (daemon)
mediaserverd <88151824720a3e649461c81e73cd4b5e> 2173.885 6721 0 - 32721 50 (daemon)
locationd <48b400c62e4c394299e6124935dedf08> 644.756 1671 0 - 4824 100 (daemon)
powerd <7d9c31f8a70431a884047612f65e1c02> 32.568 250 0 - 515 50 (daemon)
apsd <4b5d193860a43c96af1313e8128ede6d> 37.354 638 0 - 1869 50 (daemon)
networkd <33404341f70c3231a60f0b40bbe968d7> 141.706 771 0 - 1791 50 (daemon)
dataaccessd <189b8330160434f8b5b0ebee43290697> 10.081 862 0 - 2432 50 (daemon)
vmd <9d324b2ab0b03b93bdc165c1cc27e9d1> 0.442 266 0 - 859 50 (daemon)
sharingd <79def39dbceb3b9190742c7bbcd0ad7c> 12.374 726 0 - 2495 50 (daemon)
mediaremoted <4f8bff5ccf923657b17f72dd2b002f1c> 67.387 316 0 - 1282 50 (daemon)
SCHelper <196af7bc7205305082beae63d0143af9> 2.662 116 0 - 318 50 (daemon)
atc <a4bf959671773746b408f825460ac0aa> 22.413 1425 0 - 3760 50 (daemon)
syslog_relay <1ce514e7b1cb39218a1bb4afb37a2a47> 1.200 111 0 - 275 50 (daemon)
installd <acf9113478133a9d8ec90eb3233a0d4e> 57.496 488 0 - 2140 50 (daemon)
SpringBoard <a4cf2abe291e3c9082c58d38b9cf0356> 709.123 10136 0 - 27546 100
backboardd <d35acdc51c0e39da896d8760d30f72ff> 2534.389 7304 0 - 6100 50 (daemon)
fairplayd.H2 <30cc265b9aa13511a461149ecf326b4e> 22.379 236 0 - 1404 50 (daemon)
configd <287504687f22353fb98df72ce0445f85> 87.054 478 0 - 1256 50 (daemon)
fseventsd <533f5fbbb6683b86bbce8649a74eb688> 30.630 529 0 - 1031 50 (daemon)
UserEventAgent <f2ea7b62ae4e38ffa9c7b5a93c5dc6dc> 328.253 880 0 - 2494 200 (daemon)
assertiond <36cbbe6205723972844d2a3a61e5c31d> 26.361 356 0 - 1013 50 (daemon)
distnoted <11db066ae1fa32dfb4755accfe8d6f32> 14.823 237 0 - 472 50 (daemon)
wirelessproxd <b480891c9ec93154bbe2107ea7e96abf> 2.202 210 0 - 912 50 (daemon)
discoveryd_helpe <099460d32af7337d95d6362993ea1406> 0.285 140 0 - 588 50 (daemon)
filecoordination <6d9f3fb4ccf630eb8ccba96e51cb1bbe> 4.758 321 0 - 880 100 (daemon)
aggregated <04c00c9ea92a3b40a1221b7b622e9d1c> 1171.560 1131 0 - 2725 50 (daemon)
callservicesd <ae5546b18df13320a52bcf46c9dc1a65> 2.751 606 0 - 1597 50 (daemon)
ubd <89ad1cd20dbb32eab266903379256adb> 0.238 214 0 - 770 50 (daemon)
touchsetupd <a08d390378a433979da5ce42197b1189> 0.759 193 0 - 731 50 (daemon)
gputoolsd <956b542f7d263b38a6384d8aa8e5760a> 0.289 735 0 - 2089 50 (daemon)
MobileStorageMou <605984d05a1c30ada9bb32338673ea00> 0.072 129 0 - 375 50 (daemon)
cfprefsd <1a4938a6a60e3d7ba5e940f96033c6c8> 33.537 455 0 - 897 50 (daemon)
CommCenter <552a7fd4f67e32ceb6fa3f1664e754de> 622.642 1822 0 - 5535 50 (daemon)
notifyd <1454674148363528952383ed99eaee44> 86.372 369 0 - 424 50 (daemon)
ReportCrash <e365c04793583967bc173ce46616ab70> 0.120 131 0 - 532 50 (daemon)
**End**
I don't know why it crash. I even have no idea whether it is symbolized.
I will be grateful for your generous help, thanks!
This is not a crash report but LowMemory report. There's nothing to symbolicate in it, just the list of processes with how much memory / resources each was using and which ones were killed. There should be a line with your app name on it and the resources it was using. You should check that e.g. the memory in use is consistent with what you expect.
In your case, it seems that kbd got killed, not your app, so if your app crashed I think you are looking at the wrong file.
Steps to analyze crash report from apple:
Copy the release .app file which was pushed to the appstore, the .dSYM file that was created at the time of release and the crash report receive from APPLE into a FOLDER.
OPEN terminal application and go to the folder created above (using cd command)
Run atos -arch armv7 -o APPNAME.app/APPNAME MEMORY_LOCATION_OF_CRASH. The memory location should be the one at which the app crashed as per the report.
Ex: atos -arch armv7 -o 'APPNAME.app'/'APPNAME' 0x0003b508
This would show you the exact line, method name which resulted in crash.
Ex: [classname functionName:]; -510
Symbolicating IPA
if we use IPA for symbolicating - just rename the extention .ipa with .zip , extract it then we can get a Payload Folder which contain app. In this case we don't need .dSYM file.
Note
This can only work if the app binary does not have symbols stripped. By default release builds stripped the symbols. We can change it in project build settings "Strip Debug Symbols During Copy" to NO.
When using this code with small images it works fine. With large images (6937x4630) I can use the slider once (takes 4-6 secs. to apply the filter, 100MB memory usage).
If I try to move the slider (non-continuous) again the app crashes with no error message and leaves the device log below.
How can I determine why and where the app crashes?
Any hints what I am might be doing wrong here?
Device: iPhone5S, iPhone6plus
iOS8, iOS8.1
xCode 6.1GM
//
// ViewController.m
//
#import "ViewController.h"
#interface ViewController ()
#property (nonatomic) UIImagePickerController *imagePickerController;
#property (nonatomic) UIImage *image;
#property (weak, nonatomic) IBOutlet UISlider *sliderRadius;
#property (nonatomic) CIContext *context;
#property (nonatomic) CIImage *ciImage;
#property (nonatomic) CIImage *result;
#property (nonatomic) CIFilter *filter;
#property (nonatomic) CGImageRef cgImage;
#property (nonatomic) CGRect *extent;
#end
#implementation ViewController
- (void)viewDidLoad {
self.context = [CIContext contextWithOptions:nil];
self.filter = [CIFilter filterWithName:#"CISepiaTone"];
[super viewDidLoad];
// Do any additional setup after loading the view, typically from a nib.
}
- (IBAction)openButton:(id)sender {
if (self.imageView.isAnimating)
{
[self.imageView stopAnimating];
}
UIImagePickerController *imagePickerController = [[UIImagePickerController alloc] init];
imagePickerController.modalPresentationStyle = UIModalPresentationCurrentContext;
imagePickerController.sourceType = UIImagePickerControllerSourceTypePhotoLibrary;
imagePickerController.delegate = self;
self.imagePickerController = imagePickerController;
[self presentViewController:self.imagePickerController animated:YES completion:nil];
}
- (void)imagePickerController:(UIImagePickerController *)picker didFinishPickingMediaWithInfo:(NSDictionary *)info
{
//Original Image
self.image = [info valueForKey:UIImagePickerControllerOriginalImage];
//Update der imageView
[self.imageView setImage:self.image];
self.ciImage = [CIImage imageWithCGImage:self.image.CGImage];
//Image Picker dismis
[self dismissViewControllerAnimated:YES completion:NULL];
//Filter Input Image setzen
[self.filter setValue:self.ciImage forKey:kCIInputImageKey];
self.imagePickerController = nil;
}
- (IBAction)filterAction:(UISlider *)slider {
[self.filter setValue:[NSNumber numberWithFloat:self.sliderRadius.value] forKey:kCIInputIntensityKey];
self.result = [self.filter outputImage];
self.cgImage = [self.context createCGImage:self.result fromRect:[self.result extent]];
[self.imageView setImage:[UIImage imageWithCGImage:self.cgImage]];
//CFRelease(cgImage);
}
- (void)imagePickerControllerDidCancel:(UIImagePickerController *)picker
{
[self dismissViewControllerAnimated:YES completion:NULL];
}
- (void)didReceiveMemoryWarning {
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
NSLog(#"Memory");
}
#end
Incident Identifier: 72D4B88A-0F6C-4F55-AD75-D00104982F45
CrashReporter Key: b538bd13ec68a6bf50379d388fde920bbbb30d6c
Hardware Model: iPhone7,1
OS Version: iPhone OS 8.1 (12B407)
Kernel Version: Darwin Kernel Version 14.0.0: Fri Oct 3 21:56:57 PDT 2014; root:xnu-2783.3.13~2/RELEASE_ARM64_T7000
Date: 2014-10-11 21:31:36 +0200
Time since snapshot: 60 ms
Free pages: 751
Active pages: 66094
Inactive pages: 32529
Speculative pages: 632
Throttled pages: 0
Purgeable pages: 0
Wired pages: 80872
File-backed pages: 12346
Anonymous pages: 86909
Compressions: 18658086
Decompressions: 8858437
Compressor Size: 57617
Uncompressed Pages in Compressor: 116482
Page Size: 16384
Largest process: backboardd
Processes
Name | <UUID> | CPU Time| rpages| purgeable| recent_max| lifetime_max| fds | [reason] | (state)
seld <e0ef06552fcd329798c7d48e18ae7084> 0.049 220 0 - 699 50 [vm-pageshortage] (daemon)
nsurlsessiond <d4d92aa5748c3b228aa6c71bf229541e> 26.290 1029 0 - 2006 50 [vm-pageshortage] (daemon)
nfcd <5a064f82c8e93ffabc6d06ac2611a98c> 0.067 222 0 - 623 50 [vm-pageshortage] (daemon)
debugserver <f00a5e2ac8f73e7e893c711d88c344a6> 0.019 145 0 - 409 50 [vm-pageshortage] (daemon)
biometrickitd <16a81b5b73e935c69a2301bb2505cdce> 0.092 271 0 - 775 50 [vm-pageshortage] (daemon)
debugserver <f00a5e2ac8f73e7e893c711d88c344a6> 0.508 210 0 - 629 50 [vm-pageshortage] (daemon)
WirelessRadioMan <e2db6c768b033dd688e0507506a519bc> 0.038 87 0 - 256 50 [vm-pageshortage] (daemon) (idle)
MobileMail <9ab0e94c812a35b48bfb9247ad5bc666> 1.181 2143 0 - 4751 50 [vm-pageshortage] (resume) (continuous)
*** <b94e665fc2e33c4b9f97511aaedf3626> 1.347 388 0 - 1189 50 [vm-pageshortage] (daemon)
tccd <09c47a77799f311e9760bdf727854390> 3.942 241 0 - 617 50 [vm-pageshortage] (daemon)
kbd <aa1af3645acd3f19a51cf8f0f61a17e4> 0.115 398 0 - 1894 50 [vm-pageshortage] (daemon)
Vignette <69076a7a96ed39e48aaa6383dd3ee66b> 3.015 97829 0 - 50557 50 [vm-pageshortage] (frontmost) (resume)
ptpd <7bbf9eda115c34f8b6f7dee2581e6c04> 0.777 998 0 - 2149 50 (daemon)
BTServer <0cce9d9f54343782b0cae26baed8004f> 122.069 990 0 - 1912 50 (daemon)
CVMCompiler <31967d90745a3fad88c894bf7c6bc584> 0.284 1901 0 - 2258 50 (daemon)
wifid <24888d24c6c23baea9f8596de5d8ded7> 129.627 756 0 - 1498 50 (daemon)
locationd <b730587126dd36e49417d0098717a911> 1354.758 4608 0 - 5111 50 (daemon)
lockdownd <5b49b7623bc53e7d806168d6c5427762> 21.407 438 0 - 981 50 (daemon)
imagent <0700045eaa803925987221760d8799ac> 138.954 1079 0 - 3195 50 (daemon)
identityservices <579d18471dec3fd890be600ff343beef> 146.703 962 0 - 2196 50 (daemon)
iaptransportd <5c41df46b8de3535832ab9c2a48721db> 19.302 399 0 - 912 50 (daemon)
syslogd <05f6b5e5512938a892bac5af23ab1c08> 104.513 607 0 - 2673 50 (daemon)
powerd <854edfcea1eb331dbc2820ed8635ed91> 91.818 519 0 - 618 50 (daemon)
apsd <130455ed9f8e321dadcc21d9f715f0f3> 120.401 1010 0 - 1935 100 (daemon)
networkd <d384e27e5c6430bc83553e12172b4f32> 1850.619 1105 0 - 1689 50 (daemon)
vmd <d16b604704613bcabf5632c2d7ae74fe> 117.316 959 0 - 2804 50 (daemon)
dataaccessd <9697275f4cf83af3831861af286b477d> 193.752 2251 0 - 4272 100 (daemon)
sharingd <de5ec767f8fe38cb9e7221169c06fba9> 71.475 1623 0 - 12426 50 (daemon)
mediaserverd <4809d883646e360eb8dd8a84d4bc9806> 259.061 2970 0 - 14068 50 (daemon)
discoveryd <95c25671ae3c32ee8622591fd5d19761> 119.338 1715 0 - 1811 200 (daemon)
itunesstored <1644e3379165344589356a76a05b0b5d> 40.487 2778 0 - 4341 50 (daemon)
misd <fb121907dae739b3a24be61ef1752687> 0.178 193 0 - 582 50 (daemon)
syslog_relay <840c2bf07e5f3eb8b3365725868d032d> 1.399 114 0 - 236 50 (daemon)
voiced <0d309908425238479742073db2d27d7d> 0.065 292 0 - 862 50 (daemon)
assistantd <0219a0f42fc3370d9517675fbe60fa9d> 0.323 966 0 - 3096 50 (daemon)
SpringBoard <a0e9597e6bc43ee28bd8065b603b4331> 10.202 9002 0 - 37674 50
backboardd <11829fb1a5ff39bb9fef92e5783c1c9f> 11.444 108040 0 - 74544 50 (daemon)
UserEventAgent <f05146f69d6c3541bfa548c56776ef5c> 577.460 1518 0 - 2912 200 (daemon)
fseventsd <391c1f7a879b369196a28e62271f1c78> 56.403 757 0 - 762 50 (daemon)
configd <601e4d08d81c300c9ee3f57d638d666a> 103.778 615 0 - 1120 50 (daemon)
fairplayd.H2 <cae337642f6d396b82ac54e72bc0e0a4> 31.603 270 0 - 1555 50 (daemon)
distnoted <473ac03b0d4834518e54b826db35f79b> 99.114 503 0 - 440 50 (daemon)
wirelessproxd <8f301e7f78c63856aaec9529ef246ccf> 27.316 293 0 - 1007 50 (daemon)
filecoordination <29dc66b208e43e89a6fb6c88b8aad6e6> 5.617 478 0 - 987 100 (daemon)
discoveryd_helpe <7b0af17b203838bd9a48ed7430b3c576> 0.107 155 0 - 752 50 (daemon)
DTPower <b82e79ddecb8373a9fb08e0b7b5befa1> 0.112 280 0 - 827 50 (daemon)
assertiond <b1d9ebb401d43e4598dce9eada251445> 13.057 375 0 - 776 50 (daemon)
aggregated <ff9b9ccc22fc3f5ba6d69ec4539569a1> 377.191 1886 0 - 2183 50 (daemon)
DTMobileIS <2fdc94aa5069338e815fbe3a13e3d95c> 100.766 2090 0 - 20786 50 (daemon)
callservicesd <53b377fe33f3310d8af76a5f8ec05fe1> 0.212 590 0 - 1780 50 (daemon)
touchsetupd <6d8af03089e93d99b824ef2bcf15f06e> 1.053 197 0 - 682 50 (daemon)
cfprefsd <9006298e365a3a03b8403196ba98d29b> 0.416 295 0 - 586 50 (daemon)
CommCenter <af67e6c7fea03ccea0591411851e302b> 88.580 1910 0 - 5400 50 (daemon)
notifyd <5fa8fd5e44c83f64be1475b882b16c82> 159.142 473 0 - 436 50 (daemon)
ReportCrash <b0b4cd3f17083b0ebf75c0ad5679fba9> 0.060 177 0 - 614 50 (daemon)
**End**
I have in my application many animations (like a 70, 10 in 7 viewcontrollers) with the same type of voids and functions, and when I run on my device or in the simulator, the application crashes.
How can I improve these animations using threads or dispatch, or the problem is the memory?
How could be done this, in another questions & tutorials, using the same method's for the animations & are very simple, the code is like this and I repeat for any animation that I need in my App:
- (void)viewDidLoad
{
[super viewDidLoad];
// Do any additional setup after loading the view.
[self CargarSonidos];
[self getArrayEffectImagen1];
self.imgImagen1.animationImages = self.arrayEffectImagen1;
self.imgImagen1.animationDuration = 1.0f;
[sonido play];
}
- (void)didReceiveMemoryWarning
{
[super didReceiveMemoryWarning];
// Dispose of any resources that can be recreated.
}
- (void)getArrayEffectImagen1
{
NSMutableArray *arrayEfecto = [[NSMutableArray alloc] init];
for (int i=0; i<14; i++) {
UIImage *imagen = [UIImage imageNamed:[NSString stringWithFormat:#"Imagen%d.png",i]];
[arrayEfecto addObject:imagen];
}
self.arrayEffectImagen1 = [NSArray arrayWithArray:arrayEfecto];
}
-(void)CargarSonidos
{
NSURL *Imagen1Url = [NSURL fileURLWithPath:[[NSBundle mainBundle]pathForResource:#"PrimerSonido"ofType:#"MP3"]];
NSError *error;
Sonido = [[AVAudioPlayer alloc]initWithContentsOfURL:Imagen1Url error:&error];
if (error)
{
NSLog(#"Error in audioPlayer: %#",[error localizedDescription]);
}
else
{
Sonido.delegate = self;
[Sonido prepareToPlay];
}
}
-(IBAction)Animacion1
{
[Sonido play];
[self.imgImagen1 setAnimationRepeatCount:1];
[self.imgImagen1 startAnimating];
}
-(void)audioPlayerDidFinishPlaying:
(AVAudioPlayer *)player successfully:(BOOL)flag
{
}
-(void)audioPlayerDecodeErrorDidOccur:
(AVAudioPlayer *)player error:(NSError *)error
{
}
-(void)audioPlayerBeginInterruption:(AVAudioPlayer *)player
{
}
-(void)audioPlayerEndInterruption:(AVAudioPlayer *)player
{
}
- (void)viewWillDisappear:(BOOL)animated
{
[super viewWillDisappear:animated];
[Sonido stop];
}
-(IBAction)TapOne:(UITapGestureRecognizer *)recognizer
{
[self Animacion1];
}
I'm using Xcode 4.6 & the app is for iOS 5.0. Im using ARC with storyboard & modal or push segue, I did try in a simple way create this app, So if you know something or help me how can I fix or improve this code in a better way with threads or dispatch maybe?
AND o yes, well the Crash LOG is:
Incident Identifier: 3B38AB75-8A16-460E-BC07-55F5A0D4D2E6
CrashReporter Key: 3c4dd8277fec52e8c14d73ab348b62650bbf5226
Hardware Model: iPhone3,1
OS Version: iPhone OS 6.1.3 (10B329)
Kernel Version: Darwin Kernel Version 13.0.0: Wed Feb 13 21:36:52 PST 2013; root:xnu-2107.7.55.2.2~1/RELEASE_ARM_S5L8930X
Date: 2013-06-20 10:18:17 -0400
Time since snapshot: 102 ms
Free pages: 1037
Active pages: 3050
Inactive pages: 2264
Throttled pages: 103507
Purgeable pages: 0
Wired pages: 19150
Largest process: Simple Juego Prototipo
Processes
Name <UUID> rpages recent_max [reason] (state)
timed <129ae7acc9bc3209a60ac42d49b0d89f> 290 379 [vm] (daemon) (idle)
Messenger <ee1787e4954037c4a692b76e4d7d4b6e> 1496 2138 [vm] (resume)
MobileSMS <3d75b813ead134998225651ca662356a> 1347 1347 [vm] (background)
MobileMail <e07ca7a7280736c7bf301451f89d1c02> 978 978 [vm] (resume) (continuous)
MobilePhone <51866c9bc9f93c9d8526e8acf9efc64c> 2181 2181 [vm] (continuous)
tccd <2778744d99a530c9a7d5e57a19b60008> 189 189 [vm] (daemon)
kbd <f7341c9a161a39acb5bc18ea47d6ebb7> 499 499 [vm] (daemon)
librariand <5c2a34477ddf3501aed0ec2d25caa09e> 208 208 [vm] (daemon)
Juego Prototipo <63bf4a5a839d3b3fa91700566bff69b3> 88101 88101 [vm] (audio) (frontmost) (resume)
ptpd <096297a7a40f318290a972274cc44d87> 735 735 (daemon)
wifid <72eda25ccdd737a79d6cd172e9bf99a5> 336 336 (daemon)
mediaserverd <af72564bf8713fb8b16ee64c5ee85568> 1004 1004 (daemon)
dataaccessd <abc7f74d5d683d4c9a04e7ade5b1126b> 1237 1237 (daemon)
locationd <137100f254373daeb894f665c413f8b0> 655 655 (daemon)
iaptransportd <9b3cf56b4db13761bbd8ac2e0ff099be> 223 223 (daemon)
syslogd <da215e2d3de133bf8f52590727b9bdfe> 146 146 (daemon)
SpringBoard <bd1d77d154ef3dffbb53d89337c8a08f> 3299 3299
backboardd <e1dc74434e0e3938b17ff0f7ad85d138> 3944 3944 (daemon)
configd <b6a4d70640b63e8f82e0e9f3d6ee2bb9> 449 449 (daemon)
lockdownd <a123aa04ddf83a5fae8e5bc08f0b5771> 248 248 (daemon)
fairplayd.N90 <178af330594b392eab2c7b4499001e75> 143 143 (daemon)
powerd <63673a83ac9c3cf98fdc75df8ba70fd0> 143 143 (daemon)
UserEventAgent <7ee3410c25e4372d84e93318fe42696b> 471 471 (daemon)
debugserver <befb5a346ad43ac1be6790ab46eaceff> 0 0 (daemon)
springboardservi <438ae856a1c039a197e6987a99a8b9b6> 0 0 (daemon)
syncdefaultsd <a18b8aeea66e3ebb9ab0d54e55c1b9d1> 195 195 (daemon)
afcd <3bd960d39c9f3972a10923db0e687b4a> 147 147 (daemon)
syslog_relay <ee47daae952636649230d38b3dc5c2e0> 0 0 (daemon)
notification_pro <08df322fbe7739199f78852a511169ef> 129 129 (daemon)
afcd <3bd960d39c9f3972a10923db0e687b4a> 139 139 (daemon)
ubd <da941d158131359ab82559fdf8b99cb7> 347 347 (daemon)
CVMServer <0944339d86d03b94bf9deda6eecf5642> 72 72 (daemon)
filecoordination <28ca39773e933ed2aa92c117c661d056> 129 129 (daemon)
distnoted <699b8253736233b29180419f139e8c01> 106 106 (daemon)
apsd <5be27dc5ea5234319bc4b47380e42174> 304 304 (daemon)
aggregated <c5a375854c3c31d59548ab53ea86d194> 88 88 (daemon)
networkd <49064febbe553338bd98051399022da4> 181 181 (daemon)
fseventsd <3ea853cb95de3aa48972aa42637af69a> 295 295 (daemon)
BTServer <af0150d5085e326598edff072a23d146> 436 436 (daemon)
imagent <2b64c6111aa63b179a15afd6a76a6696> 420 420 (daemon)
mDNSResponder <1e651badfb7033a68a73a667ec480a08> 210 210 (daemon)
CommCenterClassi <19c784a3f93a35208de01bd47343facc> 637 637 (daemon)
notifyd <67a17b0c297e3785a9e09b8e72f3636a> 186 186 (daemon)
ReportCrash <68e323272a9d37c58ba4cdf1279764c4> 242 352 (daemon)
**End**
There are a few possible issues at play here:
One issue is that imageNamed will cache the images. You might consider using imageWithContentsOfFile instead. As the imageNamed documentation says:
If you have an image file that will only be displayed once and wish to ensure that it does not get added to the system’s cache, you should instead create your image using imageWithContentsOfFile:. This will keep your single-use image out of the system image cache, potentially improving the memory use characteristics of your app.
Thus, if you use an image for a one-time (or infrequently used) animation, consider using imageWithContentsOfFile rather than imageNamed.
When the animation is done (which can be detected by checking isAnimating property, such as in a CADisplayLink), you can nil the animationImages property of the UIImageView, which will release the strong reference to those images.
Are the images a size appropriate for the UIImageView? If you have an image whose size (measured in pixels, not by file size) exceeds the size of the image view, iOS will gracefully resize the image in the view (depending upon your contentMode), but it will still store the uncompressed image in memory (usually taking up four bytes per pixel). Don't look at the size of the PNG/JPG file to consider the memory implications (because those are compressed file formats that are uncompressed in memory when you use them). Look at the dimensions of the underlying UIImage.
If the image dimensions exceed what is needed by the image view, you might want to resize them. This can, depending upon the size of your images, have a dramatic impact on the memory consumption. There are many image resizing algorithms out there (such as this).