2010-06-23 73 views
0

我有一款應用程序自推出一年以來一直運行良好。iphone iOS4破解應用程序

我最初使用iphone iOS 2.2.1開發它,並進行測試,並一直銷售到3.2,沒有問題。

現在無法使用iOS4啓動。

該應用程序使用UIPickerView的非標準尺寸(我不認爲這是問題,但只是提及它,因爲你會在控制檯輸出中看到一些投訴)。這也給以前未報告的NSAutoreleasePool警告。

但罪魁禍首卻似乎調整界面到新的iPhone的屏幕分辨率時(至少我從控制檯獲取)

我知道我必須做一些我自己的研究,但iOS4的已經出來了因爲這麼少,我一直非常專注於學習和開發我的第一個應用程序的Android(所以我還沒有測試過這個特定的代碼,一年後這個應用程序每天只出售幾份),我認爲這並沒有害處在這附近檢查是否有人有一些信息或已經遇到它。

首先,這是控制檯輸出時生成並用XCODE 3.2.3和BASE SDK 3.2運行,而不問題

2010-06-22 23運行:25:55.619 metalsandmaterials [82956:207] *******輔助狀態已變更:在 2010-06-22 23:25:55.710 metalsandmaterials [82956:207] **********加載AX爲:XXXXXXXXX

但試圖與iOS4運行它給這個美:

2010-06-22 23:15:52.488 metalsandmaterials [80149:207] *******輔助功能狀態更改:開
2010-06-22 23:15:52.546 metalsandmaterials [80149:207] ** ******** Loading AX for:XXXXXXX ************
2010-06-22 23:15:53.003 metalsandmaterials [80149:207] * - [NSAutoreleasePool release] :這個游泳池已經被釋放,不要耗盡它(雙倍釋放)。
2010-06-22 23:15:53.005 metalsandmaterials [80149:207] *
- [NSAutoreleasePool發佈]:該池已經發布,不要耗盡它(雙發佈)。
2010-06-22 23:15:53.008 metalsandmaterials [80149:207] - [UIPickerView SETFRAME:]:無效的高度值50.0寄託162.0

就在這裏! [UIIageView規模]

2010-06-22 23:15:53.011 metalsandmaterials [80149:207] - [規模的UIImageView]:無法識別的選擇發送到實例0x5ac47a0
2010-06-22 23:15: 53.013 metalsandmaterials [80149:207] ***終止應用程序由於未捕獲的異常 'NSInvalidArgumentException',原因: ' - [規模的UIImageView]:無法識別的選擇發送到實例0x5ac47a0'

調用堆棧在第一擲:

0 CoreFoundation 0x025f5919 exce ptionPreprocess + 185
1 libobjc.A。dylib 0x027435de objc_exception_throw + 47
2的CoreFoundation 0x025f742b - [NSObject的(NSObject的)doesNotRecognizeSelector:] + 187
3的CoreFoundation 0x02567116 ___forwarding_
+ 966
4的CoreFoundation 0x02566cd2 _CF_forwarding_prep_0 + 50
5的UIKit 0x0039a8e3 - [的UIImageView setImage:] + 250
6的UIKit 0x0039b63e - [的UIImageView initWithImage:] + 161
7的UIKit 0x05f286ce - [UIImageViewAccessibility(SafeCategory)initWithImage:] + 70個
8 metalsandmaterials 0x0000bf09 - [TVCResults INIT] + 1841
9 metalsandmaterials 0x00002b8c - [UIVCalcHolder INIT] + 258
10 metalsandmaterials 0x00002758 - [CalcTestAppDelegate的applicationDidFinishLaunching:] + 649
11的UIKit 0x002d759c - [UIApplication的_callInitializationDelegatesForURL:有效載荷:懸浮:] + 1252
12的UIKit 0x002d99a1 - [UIApplication的_runWithURL:有效載荷:launchOrientation:statusBarStyle:statusBarHidden:] + 346
13的UIKit 0x002e3452 - [UIApplication的的handleEvent:withNewEvent:] + 1958
14的UIKit 0x002dc074 - [UIApplication的的SendEvent:] + 71
15的UIKit 0x002e0ac4 _UIApplicationHandleEvent + 7495
個 16 GraphicsServices 0x02de1afa PurpleEventCallback + 1578
17的CoreFoundation 0x025d6dc4 CFRUNLOOP_IS_CALLING_OUT_TO_A_SOURCE1_PERFORM_FUNCTION + 52
18的CoreFoundation 0x02537737 __CFRunLoopDoSource1 + 215
19的CoreFoundation 0x025349c3 __CFRunLoopRun + 979
20的CoreFoundation 0x02534280 CFRunLoopRunSpecific + 208
21的CoreFoundation 0x025341a1 CFRunLoopRunInMode + 97
22 UIKit 0x002d9226 - [UIApplication _run] + 625
23 UIKit 0x002e4b58 UIApplicationMain + 1160
24 metalsandmaterials 0x000024ac main + 230
25 metalsandmaterials 0x000023bd start + 53
26 ??? ??? ??? ??? ??? 0x00000001 0x0 + 1
) 拋出'NSException'實例後終止調用
程序接收信號:「SIGABRT」。

所以這scale方法是新的UIImageView?爲什麼它不工作?有沒有人遇到過這個問題?

任何幫助是極爲賞識

問候
大衛

+0

這肯定聽起來像你應該提交錯誤報告與蘋果:http://developer.apple.com/bugreporter/他們確實相當迅速處理這些。 – 2010-06-23 04:27:58

+0

我在API比例尺中看到的唯一一件事是:https://developer.apple.com/iphone/library/documentation/UIKit/Reference/UIImage_Class/Reference/Reference.html#//apple_ref/occ/ instp/UIImage/scale – 2010-06-23 04:37:21

+0

adrian,會做。大衛,會讀 但現在我只是做了一個快速和骯髒的修復, - 創建一個MYUIImageView:UIImageView的 - 增加了一個 - (空)規模的方法,什麼也不做 - 取代的UIImageViews到MYUIImageView 至少它的工作原理 我會填寫一份報告,並將這個問題留待幾天,以防其他人想要貢獻(可能會幫助其他人遇到此問題)。我對解決這個問題的興趣主要是爲了支持已經購買了應用的人。現在它不會產生任何值得的思想時間太多的收入。 – 2010-06-23 05:08:58

回答

0

好吧,我離開。如果在添加 - (空)擴展到的UIImageView的子類,並使用這個新類。經過測試,在2.2.1,3.2和ios4上都可以正常運行,包括模擬器,iphone touch 3g和ios4以及ipad和ios3.2。

我仍然需要得到阿霍德一個的iphone4,看看一些奇怪的佈局問題,遇到(我仍然認爲,問題出現了當操作系統需要打擊東西到新的Retina顯示屏)。

不是在美國是打算讓它一點點硬雖然

+0

我假設視網膜顯示將只適用於具有縮放功能的應用程序,我懷疑他們會使每個應用程序的東西會必須這樣做(他們是如何讓你關閉旋轉的),這對於所有人來說都是頭疼的事情,所有事情都可以通過矢量圖形來實現。 – iwasrobbed 2010-07-01 19:53:05

0

嗯,你與NSAutoreleasePool第一個問題,我會使用儀器,因此您可以追查額外的排水管/釋放的來源。

第二個問題doesNotRecognizeSelector告訴你正在調用的選擇器不存在(或丟失範圍)。我將使用調試器,以便您可以再次跟蹤該代碼的執行情況。

+0

大衛,autoreleasepool我已經固定下來。那裏沒有問題。 我知道沒有UIImageViews的縮放方法。我確實使用了一些CGAffineTransforms,但是我刪除了它們只是試圖找出發生了什麼 沒有運氣 但是爲什麼哦,爲什麼在3.2上完美運行的東西會像這樣破壞?我猜測它會在操作系統嘗試調整大小時發生。但我不知道現在是什麼在後臺回事 :( 感謝您的幫助雖然, 但很想更多的輸入 – 2010-06-23 04:35:44

3

你得到一個消息,「XXXXXX不承認選擇YYYYYY」的對象已被釋放,通常當,但你仍然在試圖使用它。在這一點上,因爲內存是隨機的,系統認爲它是一些其他隨機類型的對象(如UIImage)。因此,這是一個紅鯡魚,一個其他的東西是錯誤的標誌,你是過度釋放一個對象。

有沒有辦法你得到那些奇怪的自動釋放消息,除非你正在做一個自定義自動釋放池什麼。費事起來,你在代碼中用NSAutoreleasePool做什麼?

我認爲他們很可能關係到「不承認選擇」消息,因爲你可能會過度釋放,因爲這個事情。

+0

我提到下面,我就已經固定了自動釋放池和代碼仍然被打破由於相同的原因。和上面我沒有把一個快速修復,它仍然工作(只是添加一個 - (無效)比例方法的UIImageView的子類,並使用該不高雅,但作品,我仍然不知道原因,雖然 – 2010-06-23 09:55:44

+2

我會轉向在NSZombieEnabled,因爲它會告訴你什麼對象實際上被稱爲(這不是一個UIImage被調用) – 2010-06-23 20:53:50

0

我可能是你的某個地方的ImageView的圖像屬性設置爲另一個UIImageView的(而不是一個UIImage的)?

畢竟UIImageView不響應:縮放,但UIImage呢。