最近iPad升级到iPhone 3.2.1,今天准备进行真机调试,猛然发现Xcode下出现下列错误:
The version of iPhone OS on “xxxx” does not match any of the versions of iPhone OS supported for development with this copy of Xcode. Please restore the device to a version of the OS listed below. If necessary, the latest version of Xcode is available here.
Google 了一下,发现是3.2.1的目录在DeviceSupport下不存在。解决办法是用最接近的OS版本使用ln命令进行链接。不过在操作过程中有两个问题:
1. 不知什么原因,ln -s 命令后总是为文件而不是目录
2. 不知OS 3.2的build number
于是,采用最笨但最为有效的方法:
在/Developer/Platforms/iPhoneOS.platform/DeviceSupport目录下创建3.2.1目录,然后,将3.2下所有文件及目录复制到3.2.1下,重新启动Xcode,问题解决。
-
1
Sep 10
0 comments -
20
Aug 10以前发过一篇文章介绍怎样修改Xcode中的公司名称,见怎样替换Xcode中__MyCompanyName__。
现在(不知是从Xcode哪个版本开始,我是3.2.3)可以有更简单的方法修改公司名称,而且还可以在基于项目修改。方法如下:
1. 右击项目名称,选择“Get Info…”
2. 在“General Settings”一栏中可以看到“Organization Name”,修改它,那么本项目中的公司名称就修改了。 -
18
Aug 10我是用Dell机安装的雪豹系统,由于没有无线网卡的支持,所以上网很不方便。在使用Xcode进行iPhone编程时,有时需要参考iPhone SDK的文档,不过每次Control+Click后,Xcode都会试图连接Internet,进行在线读取。有什么方法能够把资料下载到硬盘上进行离线阅读吗?
答案是肯定的。首先去Xcode的Preference中的Documentation Sets下,选择所需的docset,这里是iPhone 4.0 Reference Library,右击选择“Get Info…”,找到Feed URL:
http://developer.apple.com/rss/com.apple.adc.documentation.AppleiPhone4_0.atom
用浏览器打开,下面列出了许多版本,在Windows下你就可以使用迅雷下载了。
下载后,拷贝到Mac的/Developer/Documentations/Docset目录下,使用终端命令:
sudo xar -xf 下载的文件名.xar
将其解压,然后使用:
sudo chown -R -P devdocs 解压后的文件名.docset
将文档的所有者改为devdocs。打开Xcode就可以离线浏览了。 -
14
Aug 10准备为iPad写一个Navigation-Based程序,却发现XCode 3.2中根本没有iPad的Navigation-Based程序的模板。Apple推荐在iPad下使用Split-View程序,但我并不想这样做,原因是我的iPad程序以后可能要放到iPhone中去,所以我需要一个Universal版。如果我在iPad下使用Split-View,那么这两个版本相差太大,所以我觉得都使用Navigation-Based程序。
试了半天想修改iPhone的Navigation-Based程序的模板到iPad下,却没有成功,在网上搜了一下,终于找到一个别人做好的。下面是下载地址。可以使用如下命令将其加到XCode的模板中:
mkdir -p “$HOME/Library/Application Support/Developer/Shared/XCode/Project Templates/My Templates”
cd “$HOME/Library/Application Support/Developer/Shared/XCode/Project Templates/My Templates”
git clone git://github.com/benellingson/Universal-Navigation-based-Application.git
rm -rf “Universal-Navigation-based-Application/.git”
或者下载zip文件,在创建了目录后,将zip解压其下。 -
我的iPhone越狱后,在用Xcode进行调试时出现以下错误信息:
warning: Unable to read symbols for “/Library/MobileSubstrate/DynamicLibraryies/libstatusbar.dylib” (file not found).Program received singal: “SIGUSR1″.
上网查了一下原来是Backgrounder在作怪,最简单的解决方法就是在Backgournder的overrides设定中,禁止要调试的程序以background模式运行即可。
想要知道具体原因,请参见:Backgrounder vs. Build and Run -
22
Dec 09由于Apple禁止在iPhone中使用外部框架或动态链接库,所以要重用代码(第三方库或自己的代码)只能选择如下方法:
- 直接将代码加入项目。这种方法有点笨。例如,你的一段代码被五个项目共享,如果你发现一个小bug,那么你需要更改五个地方。够麻烦吧?
- 使用静态库。这是我经常使用的方法。但Xcode并未为iPhone提供静态库的模板。有两种解决方法:
-
30
Nov 09Xcode并未提供iPhone静态库的模板,所以我每次都使用Mac Application的静态库模板,但每次建立项目后,都要针对iPhone进行一些修改,比较麻烦。我在网上找到一个可以直接被iPhone项目使用的静态库模板:
见http://github.com/keremk/iphone-static-library-project-template。
-
12
Nov 09注:宏的使用可以节省代码重复输入工作,还可以为调试带来各种好处。本文列出了几个非常简单实用的宏。
读文章 » -
11
Nov 09我们知道,Xcode在每个.h和.m文件头都会加上一些发行信息,如姓名,创建日期,公司名等。但公司名是用__MyCompanyName__代表,每个文件都要手工修改十分麻烦。此信息的模板存在/Library/Application Support/Apple/Developer Tools/File Templates下,格式如下:
1
2
3
4
5
6
7
8/*
* «FILENAME»
* «PROJECTNAME»
*
* Created by «FULLUSERNAME» on «DATE».
* Copyright «YEAR» «ORGANIZATIONNAME». All rights reserved.
*
*/我们当然可以修改此文件。但每次Xcode升级后,此信息就会丢失。我在一本有关Xcode的书中找到一个方法:
1defaults write com.apple.xcode PBXCustomTemplateMacroDefinitions '{ ORGANIZATIONNAME = "Joan Smith"; }'另一种方法是通过双击~/Library/Preferences下com.apple.Xcode.plist来修改。
-
30
Oct 09我的世界被各种各样的便签条,不管是电子的还是纸的,包围着。我总是想方设法记住各种各样的Xcode的便捷键以及各种提示与技巧。编程时,我总是尽量少用鼠标,如果没有这些提示,我就会无所适从了。而这里是记录这些提示与技巧最好的地方了。



