Xcode_14.2.xip 解压出Xcode.app约23G提示无法展开归档卷宗可用空间不足。可以打开目录1~/Library/Developer/CoreSimulator/Caches删除其中的缓存内容来增加可用空间。Xcode 管理依赖有多种方式CocoaPods 只是其中一种目前主流方案包括 Swift Package ManagerSPM、CocoaPods、Carthage 以及手动集成各有适用场景。 几种方式怎么选Swift Package ManagerSPM苹果官方推出的包管理工具直接集成在 Xcode 里不需要额外安装。通过File Add Package Dependencies输入 GitHub 地址就能加库支持版本锁定和本地包开发。新项目优先考虑这个官方支持和维护力度最大。CocoaPods社区驱动的老牌工具用 Ruby 编写通过Podfile声明依赖生成.xcworkspace来管理。生态最全几乎所有第三方库都支持但偶尔会遇到依赖冲突或安装慢的问题。Carthage轻量级方案不修改 Xcode 项目文件只是把库编译成 framework由你手动链接。适合不想让工具改动工程结构的场景但使用频率已不如前两者。手动集成直接下载源码拖进项目或通过 Git submodule 管理。完全可控但更新维护成本高容易漏掉传递依赖适合小型项目或对代码有特殊修改需求的场景。 实际建议新项目优先用 SPM苹果官方支持操作简单跨平台也友好。老项目或依赖库只支持 Pod继续用 CocoaPods没必要强行迁移。混合使用常见做法是新依赖走 SPM旧依赖保留 CocoaPods逐步过渡。注意如果同时用 SPM 和 CocoaPods留意构建路径和模块搜索路径的配置避免出现No such module的报错。SPM 因为是 Xcode 内置的不需要额外依赖 Ruby 环境在 Intel Mac 上会省心不少。在Intel macos 12.7.6中安装cocoapos1.安装macports访问阿里云开源镜像站的 MacPorts 页面https://mirrors.aliyun.com/macports/macports-distfiles-MacPorts安装包下载-开源镜像站-阿里云下载MacPorts-2.12.6-12-Monterey.pkg下载后点击安装安装过程会比较慢。安装完成后配置文件位置在 /opt/local/etc/macports/sources.conf执行更新端口树 sudo port selfupdate也会比较慢。2.安装ruby搜索可用的ruby版本 port list | grep ^ruby安装ruby34sudo port install ruby34设置默认的ruby版本sudo port select --set ruby ruby34刷新shell环境source ~/.zshrc # 如果使用的是 bash则执行source ~/.bash_profile3.安装cocoapodssudo gem install -n /usr/local/bin cocoapods 显示 Successfully installed cocoapods-1.17.0pod --version 显示 1.17.0CocoaPods 版本CocoaPods 最新版本是 1.17.0可通过官方 GitHub 发布页面查看更新详情 。 版本信息与官方渠道最新版本1.17.0 于 2026 年 7 月发布是目前 GitHub 官方 releases 页面显示的最新稳定版本 。官方资源CocoaPods 官网https://cocoapods.org提供基础介绍与文档。GitHub 发布页https://github.com/CocoaPods/CocoaPods/releases可查看完整版本历史与更新日志。版本兼容性CocoaPods 1.17.0 需要 Ruby 2.7.4 或更高版本macOS 系统自带 Ruby 版本过低时需通过 Homebrew 或版本管理器升级 。在线安装下载地址 https://developer.apple.com/xcode/index.php下载地址 登录进入 connect.apple.com就可以看到下载列表1. 编译时找不到源文件编译项目时常报如 Undefined symbols:.objc_class_name_PlacardView, referenced from:literal-pointer__OBJC__cls_refsPlacardView in MoveMe2View.old: symbol(s) not foundcollect2: ld returned 1 exit status解决方法参考下文:That has happened to me a lot of times. That error is caused when the compiler cant find a class or function. Besides the obvious reasons for that to happen, you should also do something like this:On the left of the Xcode window go to the targets, and find your application. Open it. You should see a build phase named Compile Sources. Make sure that your implementation file is included inside that build phase. If not, drag and drop it onto that build phase.Also, make sure that you have all frameworks included and linked to your application! To make that sure, go into your application target again, and see the Link Binary With Libraries build phase. See if all necessary .framework files are in there. If not, add them using drag and drop.在项目的GroupsFiles窗口中,打开Targets/项目名 /Compile Sources/把提示找不到的源文件拖到这里.重新编译.2.接上手机(版本 4.2.1 8c148a)在Organizer中报The version of iOS ... does not match any of the versions of iOS supported...重启手机xcode都不能解决。最后重装xcode_3.2.5_and_ios_sdk_4.2_final.dmg。3.设置字体大小1打开Preferences快捷键是“Command ,”(注意是三个键按住command键然后再快速地按“”和“”两个键即可2选择“Fonts Colors”选中所有的“Category”然后双击“Font”一列在弹出的对话框中选择适合自己的字体大小即可。4.重构包括重构变量名方法名和类名。选择变量名点击Edit\Refactor\Rename...要在输入框内输入新名字后点Preview然后Preview变成Apply点击Apply。http://blog.csdn.net/f520131480315/article/details/64579275.快照一般在开始重构之前要备份选择FileMake SnapshotXcode会记住项目当前的状态。如果发现代码被改得面目全非选择FileSnapshot回到做快照的那一刻。如果发现提示Snapshot Failed:A project snapshot cannot be created. 可能是一个磁盘镜像文件被损坏了它用来存储快照可以到~/Library/Application Support/Developer/Shared/SnapshotRepository.sparseimage 把镜像文件删掉然后重启xcode。如果发现修改了某些代码之后出了问题利用 Xcode 快照snapshot功能就可以轻松恢复工程到之前的状态甚至已删除的工程也可以。快照会保存当前工程的所有状态到磁盘上以备之后进行恢复。Xcode 的工程管理器中列出了所有可用的快照。可以随时手动创建快照也可以让 Xcode 根据场合自动创建快照例如每次构建之前或通过查找并替换修改代码之前等。File Create Snapshot输入此快照的名称和描述点按 Create Snapshot。 此快照就会出现在工程管理器中了。要恢复到此快照请点选 File Restore Snapshot。6.help\search用来查找在菜单中的功能命令等。7.在svn上增加目录时用import.8. 修改某个文件时弹出This file is not writable. You could either perform an SCM Edit operation on this file, or allow editing anyway. You may not be able to save your changes, but you will be able to Save a Copy somewhere else.是由于在本地锁定了文件显示简介 去掉勾选已锁定。9. 制表符替换成2个空格在编写程序代码时用空格代替Tab可以避免由于编辑器对tab显示方式不同引起的代码错乱是一种良好的编程风格Xcode Preferences-Indentation 把indent width设置为2个空格。10.格式化代码Edit - Format-Re-Indent在Xcode\Preferences...\ key bindings\拷贝一份xcode default\编辑Re-Indent 同时按下想要设置的快捷键。In Xcode 4, its been moved to Editor (注意是Editor不是Edit) Structure Re-Indent command (and has a default shortcut of CTRLI )默认快捷键是 Ctrl加i。它好按且未与其它快捷键冲突所以不需要修改。11.打不开工程文件时打开project.pbxproj查找冲突mine删除冲突标记。12.换过证书提示provising文件问题在 project.pbxproj 中查找提示那串码删除掉这串码保存。13.xcode 4.2 svn问题在Respotitories中选中工程目录后点update弹出对话框Error validating server certificate for googlecode.com:443.......解决办法比如用浏览器登录 http://code.google.com/p/.../source/checkout复制 svn checkout https://xxx.googlecode.com/svn/trunk/ xxx --username xxx到控制台中运行提示Error validating server certificate for https://xxx.googlecode.com:443:- The certificate is not issued by a trusted authority. Use thefingerprint to validate the certificate manually!Certificate information:- Hostname: *.googlecode.com- Valid: from Wed, 11 Apr 2012 00:04:01 GMT until Thu, 11 Apr 2013 00:14:01 GMT- Issuer: Google Inc, US- Fingerprint: cb:f1:c8:ac:28:d5:61:b7:c1:9c:73:7e:3a:b6:bb:e2:e6:55:95:2a(R)eject, accept (t)emporarily or accept (p)ermanently? 输入p开始checkout,然后到xcode中发现也可以成功执行更新了。但在提交上仍然弹出 Authentication realm: https://xxx.googlecode.com:443 Google Code Subversion RepositoryPassword for 用户名:Authentication realm: https://xxx.googlecode.com:443 Google Code Subversion RepositoryUsername: svn: Commit failed (details follow):svn: MKACTIVITY of /svn/!svn/act/19511c13-1823-4c4e-a551-3e0dfd8c0510: authorization failed: Could not authenticate to server: rejected Basic challenge (https://xxx.googlecode.com)14.在xcode4.2中Product - Profile 再选择leaks启用内存泄漏监测。相比之下Product \ Analyze 是更好的工具它分析一些垃圾代码及潜在的内存泄漏并且指出精确的代码行。可以看出它建议所有自定义函数都返回自动释放的对象否则会被列入潜在的内存泄漏中potential leaks。添加frameworkIn the project navigator, selectyour projectSelect your targetSelect the Build Phases tabOpen Link Binaries With LibrariesexpanderClick the buttonSelect your framework(optional) Drag and drop the addedframework to the Frameworks group且在xcode4中新建工程时去掉Use storyboards,Use ARC,include Unit Tests三个复选。15. 编译可执行文件时报object file format invalid or unsuitable打开终端sudo su查看/usr/bin目录下是否存在codesign_allocate程序如果存在执行改名操作sudo mv /usr/bin/codesign_allocate /usr/bin/codesign_allocate_old将xcode目录下的codesign做一个软链接sudo ln -s /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate /usr/bin16. 真机调试时提示 No provisioned IOS devices are available.Connect an IOS device or choose an IOS simulator as the destination.修改IOS Deployment Target不要高于真机的版本。http://rainbird.blog.51cto.com/211214/64682817.添加预定义宏打开工程 Project---Edit Project Editting(选着build)选项---找到GCC Preprocessing-Preprocessor Macros 例如设置其值为DEBUG118.xcode4中修改编译生成文件的位置File\project settings\Derived data location\选择Project-relative输入文件夹名字19. 真机调试报 error: failed to launch /Users/gzty1/Library/Developer/Xcode/DerivedData/应用名-chiobhpmbvwnqudfqnfawdzjrtey/Build/Products/Debug-iphoneos/应用名.app/应用名 -- No such file or directory (/Users/gzty1/Library/Developer/Xcode/DerivedData/应用名-chiobhpmbvwnqudfqnfawdzjrtey/Build/Products/Debug-iphoneos/应用名.app/应用名)出现的原因可能是正在从appstore上安装此程序同时又在真机调试安装些程序导致后面真机调试安装此程序一直失败。解决方法重新完成从appstore上安装此程序后再尝试真机调试安装。20. Xcode 提供了一系列用来管理整个开发流程的工具从创建应用到测试、优化应用直至上传应用到 App Store。http://www.guomii.com/posts/20273原英文版地址https://developer.apple.com/library/ios/#referencelibrary/GettingStarted/RoadMapiOS/Tools/CreateYourAppinXcode/StartYourProjectinXcode/StartYourProjectinXcode.html本《iOS应用开发入门指南》译自苹果官方的 Start Developing iOS Apps Today 系列教程。http://www.guomii.com/posts/20250Provisioning Portal 配置门户在创建新工程向导中Class Prefix应用委托就会被命名为 [Class Prefix]AppDelegate21.Storyboards故事板故事板里包含了定义此应用程序用户界面的对象、过渡Transition以及连接Connection。查看源文件发现MainStoryboard.storyboard是xml格式的内容。http://www.guomii.com/posts/20868利用 Xcode 检视器Inspector来观察视图控制器的状态等信息。需要注意的是当选择一个视图时 Xcode 会将其高亮显示此时画布中的颜色因为叠加可能会和 Colors 窗口中所选的颜色不完全一致。对齐引导线它们能帮你轻松在视图中将 UI 元素对齐到边界或中心位22.IBAction和Outlet在 Xcode 中给某个 UI 元素添加动作并设定相应的动作方法的途径是按住 Control 键并从画布上的该元素拖动到合适的源文件上一般而言就是视图控制器的源文件。故事板会把通过这种方式建立的连接进行存档。之后当应用运行载入故事板时这些连接就会被还原出来。在 Xcode 工具条里点按 Utilities实用工具按钮关闭实用工具区域然后点按辅助编辑器按钮Assistant Editor调出辅助编辑器面板。确保辅助编辑器里显示的是视图控制器的头文件。在画布中按住 Control 并从 Hello 按钮拖动到 HelloWorldViewController.h 的方法声明部分即 interface 语句到 end 语句之间的部分。在非苹果键盘上control键依然是Ctrl键。IBAction是一个特殊的关键词用来告诉 Xcode 把一个方法当成目标-动作连接来看待。IBAction被定义为void。插座变量Outlet描述的是两个对象之间的连接。当你需要让一个对象例如视图控制器与它所包含的一个对象例如文本框进行沟通时你就会把被包含的那个对象称为插座变量。当应用运行起来时你在 Xcode 里创建的插座变量就被还原出来了这样在运行时这些对象就可以相互交流了。给文本框设置委托对象按住 Control 键并从文本框拖动到场景坞里的黄色球体上黄色球体代表视图控制器对象当半透明面板出现时选择 Outlets插座变量部分的delegate。23.源代码控制管理SCM能够提供比快照更加细致入微的变更跟踪管理。如果你在团队中与他人协同工作源代码控制管理还能帮你提高团队效率。SCM 系统会在磁盘中对每个文件保存多个版本并存储各个文件各个版本的元数据到 SCM 仓库中。Xcode 支持两种流行的 SCM 系统Git 和 Subversion。Xcode 包含了一个版本编辑器无论使用哪种 SCM 系统都可以轻松对比保存在仓库中文件的不同版本。如果你发现代码中出现了漏洞则可以将最新的版本和之前的某个正常运行的版本拿来比较让你捉出产生问题的“臭虫”。24.分发和发布应用Xcode 能够让你轻松地将尚未正式发布到 App Store 的应用分享给测试者们。要分发应用请在方案编辑器中创建一个应用归档。然后就可以使用 Xcode 的归档管理器来让测试者们分享你的应用。当你准备正式发布应用的时候可以先使用归档管理器来评估一下你的应用能否达到 App Store 审核的标准。这项评估能够通过则可以保障正式审核过程尽可能地快速。然后就可以在 Xcode 正式向 App Store 提交你的应用了。学习进度http://www.guomii.com/posts/2028425.在instruments中查看内存The Living bytes, or Net bytes is how much memory your application is using at the time you select in the timeline. That will include leaked memory, since leaked memory is never deallocated.#Living is how many allocations of a certain size/object type happened (and are still allocated). This is very useful when looking for leaks. For example, if you repetitively perform an action (like coming in an out of a modal view controller), and you see that #Living of an object grows by the same amount each time, then youre probably leaking those objects. You can then confirm by drilling down and seeing the exact line of code that is allocating the objects, and even see the time index each one was created.Overall bytes includes memory that has been released. Its useful to track that number for performance optimization purposes, but not if youre just trying to see your current memory footprint or look for leaks.笔画输入面板打开后内存使用增加了20M苹果bug--获取键盘有内存泄露问题memory leaks in open_handle_to_dylib_path and UIKeyboardInputManagerClassForInputModeIf youre developing an iPhone app that uses UITextField objects and youre rigorous enough to check for memory leaks using Instruments, chances are youd discover some leaks in UIKit and CoreGraphics libraries, stemming from some allocations done in dyld::mkstringf, called from dyld::loadPhase5.According to some reports found on the web, it seems that this is a bug in the tools from Apple, and it appears only on the simulator, not when testing on the actual device. So you could safely ignore it. In any case you couldnt do anything about it, as the traceback leading to the leak goes through code outside of your control, that is, unless you happen to work for Apple :).26.安装后可以看到还有一个dashcode它用于web开发27. 如果工程中的代码失去了着色到Users/gzty1/Library/Developer/Xcode/DerivedData删除对应目录再重新编译即可。products目录生成的文件在 /Users/gzty1/Library/Developer/Xcode/DerivedData中可以在Preferences/Locations中找到。28.资源文件夹管理关于xcode里资源文件夹管理_xcode 资源文件夹 怎么设置-CSDN博客xcode里的新建的一个分组文件夹(黄色的)并不是真正在目录下就有一个这样的文件夹。然而有时候项目要用到的资源很多有时候还会有重名的情况这样如果放在分组文件夹里就不好了。为了方便管理在目录下新建一些真实存在的文件夹来存放这些资源然后把这个文件夹加入到xcode的时候不要选copy items into destination groups folder而Folders那一项要勾选create folder references for any added folders这样文件夹加入进去就是蓝色的真实存在的。NSString *themePath [[[NSBundle mainBundle] resourcePath] stringByAppendingPathComponent:“theme”];//actual theme pathif(themePath)self.backgroundIV.image [UIImage imageWithContentsOfFile:[themePath stringByAppendingPathComponent:mask_1.png]29.工程中的.js文件可能在生成包中未找到是因为它被当作了代码文件未被当作资源文件。在build phases中处理...同时可以看出在UIWebView中可以使用script srca.js”来使用js文件。30.Xcode 的 GroupsFiles 边栏看起来像 Finder 里的文件夹和文件。但是它和 Finder 里的文件夹是两个不同 的概念。可以在 Xcode 里面随意安排群组,但是这些文件在 Finder 面还是在同一个文件夹里面。这就是为什么称它们为群组可以在 Xcode 里任意地安排文件,而不用理会这些文件到底是存放在硬盘的哪个位置。31.预编译前缀头文件 “HelloWorld_prefix.pch”头文件的作用是给编译过程加速。应该把不常变 化的框架(Frameworks)头文件添加到前缀头文件(prefix header)中。这样 的话,在编译的时候,框架的代码会被预先编译,所有的类都将可以使用这些 头文件。不幸的是,这样做也有一个缺点:如果前缀头文件里其中一个头文件 发生了变化,所有代码将会重新编译。这就是为什么应该只添加那些极 少或者从来都不变化的头文件到前缀头文件中。例如把cocos2d.h头文件加到前缀头文件中#ifdef __OBJC__#import Foundation/Foundation.h #import UIKit/UIKit.h #import cocos2d.h#endif32.在Apple LLVM compiler 3.1 warnings 中有一个相关的编译器报警设置“Undeclared Selector”设置为YES可以选择对不存在的select(...)在编译时报错。33. 打包发布http://www.cnblogs.com/yaokang/archive/2012/05/29/2524273.htmlhttp://mobile.51cto.com/iphone-277009.htm34.使用OmniGraffle 把工程中的类导出为类关系图35.调试时在Debug Navigator中为了看到堆栈的更多信息拖拽Debug Navigator底部的滑块到最右边。它将会展示出崩溃时全部的堆栈信息在底部的函数start()第一个被调用很多方法是灰色的是因为他们都来自内置的ios frameworks(ios内置框架)没有可见的源码。36.profile not found在project.pbxproj中找那一串置空、37.如何解决Could not launch app - No such file or directory升级到XCode4.5后会经常出现“Could not launch app - No such file or directory”这个问题下面介绍下我的解决方法1.断开设备删除在设备调试的APP2.强行退出XCode(Quit xcode)不要只是关闭直接强行退出3.删除系统生成的文件 (~/Library/Developer/Xcode/DerivedData/)使用终端命令进入到相应目录然后执行rm -rf DerivedData/等一会就可以了4.重启XCode连接完设备测试就可以了38.
阅读完成 · 觉得有帮助?