Xcode相关
Xcode相关的路径
- Provisioning Profiles存放路径:~/Library/MobileDevice/Provisioning Profiles
- 所有模拟器(包括历史模拟器):~/Library/Developer/CoreSimulator/Devices
清理Xcode占用容量
- iOS DeviceSupport:~/Library/Developer/Xcode/iOS DeviceSupport
说明:在连接设备调试时,会自动在该路径下生成该设备系统版本的Symbols目录,其中含有系统动态库,比如动态库UIKit的路径为~/Library/Developer/Xcode/iOS DeviceSupport/11.4 (15F79)/Symbols/System/Library/Frameworks/UIKit.framework/UIKit
建议:保留经常调试的设备的iOS系统版本,不经常使用的系统版本都删掉。 - Archives:~/Library/Developer/Xcode/Archives
说明:打包生成的Archives文件,这个不可恢复,删除后Archives的文件都会消失。
建议:保留有效的打包文件,备份dSYM文件。 - DerivedData:~/Library/Developer/Xcode/DerivedData
说明:运行项目工程产生的缓存,删除文件夹中的内容会删除build生成的项目索引、build输出以及日志,重新打开项目时会重新生成。
建议:全部删除,之后运行程序的时候会重新生成的。
真机调试
- 真机包存放路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport,一个真机包带有两个文件:DeveloperDiskImage.dmg.signature和DeveloperDiskImage.dmg
- github上收集的真机包:iPhoneOSDeviceSupport(或者iOS-DeviceSupport),往路径添加完真机包后,记得关闭Xcode,然后重新启动Xcode运行项目
- 每个版本的Xcode都带有适应当时最新iOS系统的SDK,iPhone SDK存放路径:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS.sdk
github上收集的iOS系统的SDK:iPhoneOS.sdk
TARGETS Build Settings
- Library Search Paths:设置静态库(比如.a、私有的.framework)或动态库(.dylib)的路径。
如果报"directory not found for option '-L/..."错误,说明Library Search Paths没有配置好。 - Header Search Paths:设置静态库或动态库的头文件(即.h文件)的路径。
如果项目是用cocoaPods管理第三方库,比如项目中使用了AFNetworking库,cocoaPods会自动配置好AFNetworking库的头文件路径,不需要开发者区手动配置,路径内容为:
$(inherited) "${PODS_ROOT}/Headers/Public" "${PODS_ROOT}/Headers/Public/AFNetworking"
但如果是使用非cocaPods管理的库(比如自己编译的.a文件),就需要手动配置库的头文件的路径,比如路径内容为:
$(SRCROOT)/pjproject/pjlib/include $(SRCROOT)/pjproject/pjlib-util/include
否则会报找不到头文件的错误(一般会在#include <>地方报错)
Xcode命令
- 查看Xcode支持的SDKs版本命令(包括iOS、iOS Simulator、macOS、tvOS):xcodebuild -showsdks
- 查看当前使用Xcode版本路径:xcode-select -p
- 更改当前使用Xcode版本路径:sudo xcode-select -s /Applications/Xcode9.app/Contents/Developer
Xcode运行问题
- 若Xcode勾选了自动管理签名(automatically manage signing)且更改过Signing & Capabilities,则Xcode会自动在该路径下生成对应的描述文件,可通过创建时间和内容来查看描述文件对应的Bundle Identifier、App ID等信息。
如果钥匙串有可用的证书,但Signing & Capabilities却爆红,Command+R遇到错误"Your account already has a signing certificate for this machine but it is not present in your keychain" 或 "no identity found Command CodeSign failed with a nonzero exit code",可能是Xcode抽风了,完全退出Xcode,重新打开项目,Xcode会在~/Library/MobileDevice/Provisioning Profiles路径下生成描述文件,且能正常链接上钥匙串中的证书了。
Xcode相关的更多相关文章
- xcode相关配置
Xcode将全部供应配置文件(包括用户手动下载安装的和Xcode自动创建的Team Provisioning Profile)放在目录~/Library/MobileDevice/Provisioni ...
- Xcode相关整理
阅读目录 javadoc格式文档注释插件 xcodekit插件 常用快捷键 XCode中快捷健字符与MAC键盘对应关系: 添加自动生成格式为javadoc文档注释的插件VVDocumenter 首先推 ...
- Xcode相关常用快捷键搜集
command + L: 跳转到指定行 control + i: 格式化代码 command + control + 上/下 在*.h和*.m之间切换. command + control ...
- Xcode常用快捷键 (转载)
Xcode快捷键,工欲善其事,必先利其器.mac的键盘和ms的还是有些不一样,得适应一下下. 新建项目 command+shift+n 新建文件 command+n 新建空文件 command+con ...
- iOS 打包上传AppStore相关(1)-相关证书配置
最近一个老项目需要更新迭代,一个新的项目需要上线.有一些自己出现的BUG,也有一些没搞懂到处翻资料的问题.在此想做一个总结,写一下总体步骤,尽可能的详细一些,以及自己的一些理解.有很多步骤因为我们查阅 ...
- Xcode.Subproject.And.Framework
1. Easy Xcode Static Library Subprojects and Submodules http://www.blog.montgomerie.net/easy-xcode-s ...
- xcode 快捷键大全、XCode常用快捷键图文介绍
其实就是设置里面的快捷键变成了文字版,刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等.都不一样了.快速的掌握这些快捷键,能提供开发的效率. 其实快捷键在 ...
- Xcode中断点的使用
注:本文由破船译自:albertopasca.本文由HoNooD在iosfeed站点上做了推荐. 这里先推荐两篇Xcode相关的文章: Xcode Code Snippets iOS调试 — 基本技巧 ...
- 在Azure DevOps Server (TFS)的流水线中编译和测试Xcode移动应用(iPhone)
概述 Xcode是开发基于苹果macOS系统的桌面应用和移动应用的主要IDE工具.使用Azure DevOps Server (原名TFS)系统中的pipelines流水线功能,可以方便的集成Xcod ...
随机推荐
- python turtle的使用
turtle.pendown() # 放下画笔 turtle.penup() # 抬起画笔 turtle.pensize(int) # 设置画笔宽度,值为整数型 turtle.forward(f ...
- jQuery中的表单过滤选择器(四、七)::input、:text、:password、:radio、:checkbox、:file等
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"> <html> <hea ...
- MongoDB - 文档之间的关系 + _sort和投影
1. 文档对象之间的关系 一对一 (one TO one) - 例如: 夫妻 (一个丈夫 对应 一个妻子) - 在MongoDB中, 可以通过内嵌文档的形式来体现出一对一的关系 演示: 首先在 my_ ...
- 理解Flink中的Task和SUBTASK
1.概念 Task(任务):Task是一个阶段多个功能相同的subTask 的集合,类似于Spark中的TaskSet. subTask(子任务):subTask是Flink中任务最小执行单元,是一个 ...
- Vue 组件通信方案
父组件--> 子组件 1. 属性设置 父组件关键代码如下: <template> <Child :child-msg="msg"></Child ...
- vue JS获取当前时间并格式化 ( 前端小细节,大进步 )
JS // 获取并且格式化时间 formatter (thistime, fmt) { let $this = new Date(thistime) let o = { ...
- Java基础(一)——面向对象
一.对象 1.成员变量和局部变量的区别 两类变量同名时,局部变量具有更高的优先级. 作用域不同:局部变量的作用域仅限于定义它的方法,作用于函数或者语句中:成员变量的作用域在整个类中. 初始值不同:Ja ...
- Django的form组件——自定义校验函数
from django.shortcuts import render,HttpResponse from django import forms from django.core.exception ...
- ☕【Java技术指南】「并发编程专题」Fork/Join框架基本使用和原理探究(基础篇)
前提概述 Java 7开始引入了一种新的Fork/Join线程池,它可以执行一种特殊的任务:把一个大任务拆成多个小任务并行执行. 我们举个例子:如果要计算一个超大数组的和,最简单的做法是用一个循环在一 ...
- noip模拟42
A. 卷 发现乘积足以爆 \(long\) \(long\),但是数据随机,可以略忽略精度问题 一个快速降低数的级别的方法是取对数,由于有性质 \(log(x * y)=logx+logy\),合并时 ...