1. Unable to debug device "Error launching remote program:failed to get the task forprocess 6405."
Ad-hoc profile does not support debugging. Change to development profile.
2, Ota cannot download, prompted "Unable to download the application"
The bundle-identifier in the. plist file is incorrectly written (or contains Chinese characters), such as:
<key>bundle-identifier</key>
<string>com.xxx.--APN--</string>
The com.xxx.-apn-contains Chinese ("--") and should be changed to English.
Or the signing certificate is not valid. Please detect the signing certificate in Orgnizer.
3, ASIHTTPRequest often appear Exec_bad
When using ASIHTTPRequest for asynchronous requests, a program crash occurs frequently. Especially in the process of being requested (not finished), if you switch the view. Because it is an asynchronous request, the request object may call delegate (Viewcontroller) at any time, and Viewcontroller may have been freed at this point. Because Uikit will release Viewcontroller that are not currently displayed at any time. If you switch the Viewcontroller, then the hidden Viewcontroller will be released at any time. If the request calls back the delegate method of Viewcontroller, and that Viewcontroller is released by Uikit, it will cause exec_bad. Also mentioned in the official documentation: requests don ' t retain their delegates, so if there ' s a chance your delegatemay is deallocated while your request Is running, it's vital that clearthe request ' s delegate properties. In most circumstances, if your delegate isgoing to being deallocated, you probably also want to cancel request, since you nol Onger care about the request ' s status
[Request Cleardelegatesandcancel]; [Request release];
Of course, request cannot be a temporary variable, but it should be a retained member object (or property), otherwise you cannot cleardelegatesandcancel in the Dealloc method.
4, assertion failure in-[uiactionsheet Showinview:]
Open the action sheet in the main thread:
[Selfperformselectoronmainthread: @selector (Showactionsheet) WithObject:nilwaitUntilDone:NO];
Showactionsheet Method:
-(void) Showactionsheet
{
sheet = [[Uiactionsheet alloc] initwithtitle:@ "This is my actionsheet!" delegate:self cancelbuttontitle:@ "OK" destructivebuttontitle:@ "Delete message!" otherbuttontitles:@ "Option1" @ "option 2" @ "option 3", nil];
[Sheet ShowInView:self.view];
}
5. Regexkitlite compilation Error
The following error is prompted at compile time:
"_uregex_find", referenced from: _rkl_search in REGEXKITLITE.O
......
Added to the other Linke flag of build Settgins
-licucore
6, Archive encountered "ResourceRules.plist:cannot Read resources" error
Find Code Signing Resource Rules Path in Build settings, fill in $ (sdkroot)/resourcerules.plist
7. Use zombieenable to resolve exec_bad_excess errors
This error is caused by sending a message to a release object. You can find the real problem by turning on the zombieenable parameter.
Edit Scheme, select Run ... Debug, open the arguments group and add a parameter to the environment variables:
Run the program, and when a exec_bad_excess error occurs, the console outputs specific error information, such as:
-[itsmticketcell release]: Message sent to deallocated instance0x897e920
The direct indication is that after an object has been freed, you send a message to it.
8, about XCODE4 cannot debug 2 generation old equipment problem (old problem, understand can)
After upgrading to XCODE4, you will find that many programs do not run on 2-generation devices (some 3-generation devices, such as itouch 3 are actually still 2-generation hardware), and Xcode4 just "Running ..." directly "finished ..." There are no prompts either in the Xcode console or in the device log.
Note: The difference between Generation 2 and Generation 3 is CPU architecture. The 2 generation device uses the ARMV7 architecture CPU with the ARMV6 architecture cpu,3 generation device. IPhone 2g/3g,ipod 1g/2g belongs to the ARMV6 architecture (2 generation), IPHONE3GS/4, IPod 3g,ipad belongs to the ARMV7 architecture (3 generation).
StackOverflow has a post on this, where the answer to Shapecatcher is the most accurate:
Http://stackoverflow.com/questions/6378228/switching-from-xcode3-to-xcode4-cant-load-programs-onto-older-ipod-touch
1. Open Target's build Settings, find the architectures option and modify it from "$ (archs_standard_32_bit)" to "armv6$ (Archs_standard_32_bit)". Note case is sensitive. "$ (Archs_standard_32_bit)" is a variable that is actually equivalent to ARMV7.
2, the Base SDK does not need to change, still is lastest IOS.
3. Open Target info, locate required device capabilities, and delete the armv7 below. This option is the default setting for Xcode4 to add itself to the project, and if you do not remove it, the work of step 1th-2nd is not valid.
9, "Avalid provisioning profile for this device is not found."
Increase the udid of the device in your development certificate.
10. Add the device to the portal
Connect the device and open the Orgnizer. Select the device in the device list and click the "Add to Portal" button in the lower left corner of the right window. Or, right-click on the device listed on the device and select "AddDevice to Provisioning Portal".
11. Renew Profile
Open Orgnizer and select Provisioning Profiles in the library. In the right-hand window, select the profile you want to renew, and click the "Refresh" button in the lower right corner. Enter the portal password and profile will be renew.
12. Renew signature certificate and device activation document
- Remove an expired signing certificate from the Portal
- Re-authoring development certificates and publishing certificates
- Delete the activation documentation used for development and deployment (Provisioningprofiles)
- Re-authoring the Provisioningprofiles for development and deployment with a new certificate
- Remove the old certificate from the keychain
- Install the new provisioning profiles in the Xcodeorganizer
- Complete
iOS interview (10)