xcode_xcode4 - CSDN
xcode 订阅
Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。Xcode同时也是一种语言,作为一种基于XML的语言,Xcode可以设想各种使用场景。它提供了一种独立于工具的可扩展的方法来描述编译时组件的各个方面。 [1] 展开全文
Xcode 是运行在操作系统Mac OS X上的集成开发工具(IDE),由Apple Inc开发。Xcode是开发 macOS 和 iOS 应用程序的最快捷的方式。Xcode 具有统一的用户界面设计,编码、测试、调试都在一个简单的窗口内完成。Xcode同时也是一种语言,作为一种基于XML的语言,Xcode可以设想各种使用场景。它提供了一种独立于工具的可扩展的方法来描述编译时组件的各个方面。 [1]
信息
外文名
Xcode
适    用
建立 Apple 平台程序
环    境
macOS
更新时间
2020-03-04
属    性
构件描述
版本更新
11.4 beta 3(11N132i)
支持语言
Objective-C、C、C++、Swift……
xcode背景介绍
Xcode前身是NeXT的Project Builder。The Xcode suite 包含有GNU Compiler Collection自由软件 (GCC、 apple-darwin9-gcc-4.0.1 以及 apple-darwin9-gcc-4.2.1, 默认的是第一个),并支持 C语言、C++、Fortran、Objective-C、Objective-C++、Java、AppleScript、Python以及Ruby,还提供Cocoa、Carbon以及Java等编程模式。协力厂商更提供了 GNU Pascal,Free Pascal, Ada, C#, Perl, Haskell 和 D语言。Xcode套件使用 GDB作为其后台调试工具。在Xcode 3 Unleashed中,著名的Mac开发人员Fritz Anderson编写了权威指南,以充分利用Xcode 3来构建任何Macintosh或iPhone应用程序。从Xcode 3.1开始,Xcode也可被用为iPhone OS (iOS)的开发环境。Xcode 4.0于2011年3月9日正式发行。该版本非Apple开发者注册会员亦能从Mac App Store中付费下载, 收取US$4.99的费用。从Xcode 4.1开始,针对OS X 10.6及OS X 10.7用户从Mac App Store免费下载Xcode主要版本是Xcode 5,支持iOS7,可以在Mac App Store免费下载,亦可在iOS开发者计划网站下载。Xcode6整合了苹果在WWDC大会上发布的新语言Swift1.0版本。2015年9月16日,苹果在开发者官网发布Xcode7正式版,并将Swift语言升级到2.0版本。根据斯诺登提供的资料,美国政府研究人员创建了一个版本的苹果软件应用开发工具Xcode,希望借此将监控后门植入到通过苹果应用商店App Store发布的应用程序中。2018年9月18日,苹果在开发者官网发布Xcode10正式版并将Swift语言升级到4.2版本。目前的最新版本为Xcode11,Xcode 11包含创建精彩应用程序和将应用程序带到更多设备所需的一切。 通过支持Swift软件包,Xcode 11允许在所有应用程序之间共享代码或使用社区创建的软件包。 [2] 
收起全文
  • 在这里,我们手把手教你学习Xcode7和Swift2语言!重点是一看就懂,一学就会! 本篇视频教程拥有115节课程,包含数据处理、常用插件、信用卡卡号识别、自动化测试、网络访问、多线程、ShareSDK社会化分享、Core...
  • 本课程详细介绍了IOS开发环境搭建及开发工具的使用,讲解了IOS开发常用视图控件的使用 ,还讲解了一个实用的功能实例:APP启动引导页的开发。
  • 1.Xcode IDE概览 说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点列(Ribbon)->代码编辑窗口(Standard/Primary Editor)”。 边列(Gutter):显示行号和断点。 ...

    1.Xcode IDE概览

    说明:从左到右,依次是“导航窗格(Navigator)->边列(Gutter)->焦点列(Ribbon)->代码编辑窗口(Standard/Primary Editor)”。

    边列(Gutter):显示行号和断点。
    焦点列(Ribbon):灰色深度与代码嵌套深度相关:鼠标悬停可突出显示右侧相应代码块(Focus code blocks on hover),鼠标单击可折叠右侧相应代码块(Code folding)。

     

    2.偏好设置

    通过“command+,”快捷键或”Xcode|Preferences”菜单呼出偏好设置。

    (1)主题及字体(Preferences->Fonts & Colors)

    选中一种主题theme),例如“Midnight”,推荐使用MonokaiCiapre。将 `*.dvtcolortheme` 文件拷贝到 `~/Library/Developer/Xcode/UserData/FontAndColorThemes/`即可安装主题, 重启 Xcode 即可选用。

    Xcode默认字体为menlo,也可选择 Consolas、Monaco、Consolas、Droid Sans Mono、Source Code Pro、Bitstream Vera Sans 等其他等宽字体。

    shift 选择主题 Source Editor/Console 中的所有项,点击 Fonts 可更改字体(大小)。

    (2)编辑器配置(Preferences->Text Editing)

    Editing

    • Show Line Numbers:在gutter中显示行号。
    • Code folding ribbon:显示焦点列。

      Focus code blocks on hover:鼠标悬停时突出显示右侧相应代码块。

    • Page guide at column:显示一行最多支持80个字符的提示分割线。

    Indentation

    • Prefer indent using:Spaces(为保持一致的视觉呈现和行末注释对齐,建议使用空格)
    • Tab width:4 spaces(tab expand,1个tab=4个空格)
    • Indent width:4 spaces(自动缩进步长=4个空格)

    (3)跳转打开方式(Preferences->Navigation)

    • Activation:When a tab or window opens,make it active。当新建窗口或标签时,立即激活聚焦。
    • Navigation:Uses Primary/Focused Editor。打开Project Navigator中指定的文件时,在主编辑器窗口/当前聚焦窗口打开,建议选择Focused。
    • Optional Navigation:Uses Single Assistant Editor。打开Project Navigator中指定的文件或跳转到符号定义所在文件(command+单击)时,若按下option键,则在辅助窗口打开。
    • Double Click Navigation:Uses Separate Tab。双击打开Project Navigator中指定的文件或跳转到符号定义所在文件(command+双击)时,新建标签页。

    (4)SCM(Preferences->Source Control)

    • Enable Source Control:启用/禁用Xcode自带Source Control Manager(SCM)。
    • Comparison View:Show local revision in [Right] Side。打开version editor比较窗口时,左侧显示服务器基线版本(base),[右侧]显示本地修改过的工作拷贝(local working copy)。

    (5)SDK/Simulator(Preferences->Downloads)

    Downloads:可下载Components(SDK&Simulator)和Documentation。

    (6)构建输出目录(Preferences->Locations->Locations)

    • 当选择为Default时,Derived Data的目录为~/Library/Developer/Xcode/DerivedData。
    • 当选择为Relative时,Derived Data的目录为当前*.xcodeproj所在的目录。
    • 当选择为Custom时,Derived Data的目录需自定义。

    不建议使用绝对路径,因为写死之后,换环境或换平台,又要重新修改路径,且同名project target的build folder会覆盖,建议使用相对路径(Relative

    3.代码阅读

    (1)Help

    option+点按:查看选中符号的帮助提示(Quick Help for Selected Item)。

    option+双击:打开选中符号的帮助文档。

    (2)View Navigator

    command+0:Show/Hide left tool panel(Navigator Area)

    command+1-8:Project/Symbol/Find/Issue/Test/Debug/Breakpoint/Report Navigator

    option+command+0:Show/Hide right tool panel(Utility Area)

    option+command+1/2:show the file/quick help inspector

    可按下command+0隐藏左侧栏Navigator,再按下option+command+0隐藏右侧栏Utility,只显示Standard/Primary Editor,聚焦有效利用屏幕进行编码。

    (3)View Editor Organization

    control+1:Show Related Items(例如Superclasses/Subclasses、Callers/Callees、Protocol Implementor/Implemented、Includes/Included By)。可输入实时搜索匹配。

    control+2/3:Show Previous/Next History。可输入实时搜索匹配。

    control+4:Show Top Level Items。
    control+5:Show Group Files(当前文件夹内的所有文件)。可输入实时搜索匹配。

    control+6:Show Document Items(当前文件的Symbols)。可输入实时搜索匹配。

    (4)Eidtor Window/Tab Switch

    command+shift+[/]:切换标签页

    单/双指左右滑动(control+command+←/→):在单标签页打开的多个文件间切换(Go Back/Forward)

    (5)Symbol Jump

    command+L:跳转到指定行。

    shift+command+O:Open Quickly,快速全局查找文件、符号,非常常用!

    command+点击Editor中选中的符号:跳转到符号定义(jump to definition)。

    control+command+J:跳转到指定符号的定义处或实现处(Go to Declaration/Definition)。有时工程正在Loading、Indexing或Processing files时,“command+点击”无法响应,此时可试试control+command+J。

    control+command+↑/↓:切换头文件/实现文件(switch between a source file (.m,*.mm,*.cc) and the associated header file(.h),Jump to Previous/Next Counterpart)。

    在Project Navigator中选中文件右键或通过菜单“File->Show in Finder”:在Finder中定位该文件。

    (6)Symbol Navigator

    command+2可聚焦左侧导航栏中的符号导航器。

    • filter0:底部编辑框输入符号(show symbols with matching name)= filter1 result+filter3 result
    • filter1:show only class and protocol symbols (hide other global symbol types),包括project和system层次。
    • filter2:show only project-defined symbols,过滤显示当前工程中的符号。filter2的结果是filter1的子集,较常用。
    • filter3:show only containers(hide members),过滤显示包含该单词的符号。

    注意:control+6只列出当前代码所在interface的符号,而Symbol Navigator是当前工程(Project Scope)的所有符号列表的Hierarchy,符号种类包括Classes/Protocols/Functions/Structs/Unions/Enums/Types/Globals。

    编辑器中光标所在符号处,Navigate菜单或右键快捷菜单可[Reveal in Symbol Navigator],在符号导航器中定位当前符号,亦可查看当前符号所属类的层次。

    (7)Code Folding

    option+command+←/→:折叠当前代码块,包括@interface …@end、@implementation …@end

    option+shift+command+←/→:折叠该文件内所有代码块(方法/函数:Methods&Functions }

    control+shift+command+←/→:折叠当前注释块(/*Comment Blocks*/)

    (8)Focus Switch

    (shift+)option+command+`:MoveFocus to (Previous)Next Area.

    command+J:焦点切换(Move Focus),可配合鼠标和方向键。带‘+’的“Move focus to a new assistant editor”可以快速在辅助编辑窗口中打开头文件(*.h)/实现文件(*.m,*.mm)。

    shift+command+J:在项目导航中定位当前编辑其中打开的文件(Reveal in Project Navigator)。

    4.代码编辑

    (1)File | New

    control+command+N:File | New | Workspace

    shift+command+N:File | New | Project

    (2)Text Editing

    command+X/C/V:剪切/复制/粘贴

    command+Z(+shift):撤销(重做)/Undo(Redo)

    command+[/]:向前/向后缩进(Shift Left/Right)

    option+command+[/]:将当前光标所在行代码上移/下移一行(Move Line Up/Down)

    command+/:以双斜杠(//)注释选中的代码,再此按下可取消

    Parentheses/Brackets/Braces Matching:双击某个分隔符(如()、[]、{} 等),Xcode会选中匹配代码块

    Editor→Structure→Balance Delimiter:根据当前光标代码所在位置,自动向外扩展选择外层代码块。

    (3)Auto Completion

    esc(control+.)就当前输入上下文呼出/隐藏智能提示列表(Auto Completion List);

    上下方向键(↑/↓)在智能提示列表中选择选项。当然,也可以用control+.;enter选中列表中备选的消息符号;

    tab在輸入符号不完整时可一截一截匹配;选中消息符号后,tab可在各个参数占位符之间移动,enter可选中参数占位符先临时补位填充。

    输入Objective-C对象及消息名,然后输入 ],自动补充对象名左侧的[,完成中缀符(infix natation)包围。

    (4)Find菜单(control+单击)

    当鼠标定位或选中某个符号时,可呼叫右键快捷菜单

    • Find Selected Text in Workspace:在当前工作空间查找选中文本或光标所在行的OC冒号分割方法名。
    • Find Selected Symbol in Workspace:在当前工作空间查找选中文本符号或光标所在行的OC冒号分割方法符号。
    • Find Call Hierarchy:查找选中文本符号或光标所在行的OC冒号分割方法符号的调用着(Callers)。

    对应Find菜单中有Find Selected Text in Project、Find Selected Symbol in Project(control+shift+command+F)、Find Call Hierarchy(control+shift+command+H)。

    说明:Find Call Hierarchy等效于control+1|Callers。

    (5)Find & Replace

    command+F:当前文件查找。

    shift+command+F(command+3):在Find Navigator中全局查找。可在[Preferences-General]中设置Find Navigator Detail的显示行数(当Navigator Area较窄挤压时)。

    • Find:可指定查找内容(Text/References/Definitions/Regular Expression);
    • 放大镜:下拉可查看最近查找历史;
    • In Project:查找范围(可指定Group);
    • Text:匹配规则(可指定Containing,Matching,Starting with,Ending with);
    • Case:是否区分大小写(可指定 Matching/Ignoring)。

    对于查找出来的结果可以delete删除非预期干扰结果条目,也可以多择或全选Find Results拷贝出来整理分析。

    option+command+F:当前文件替换。

    option+shift+command+F:在Find Navigator中全局替换。

    • Replace:逐个替换;
    • All:所有替换;
    • Done:替换完成。

    (6)Copy Symbol

    例如,光标停留在NSMutableArray的insertObject:atIndex的前半截单词insertObject上时:

    有三种复制方式:

    • command+C:Copy(光标所在位置的单词):insertObject
    • control+shift+command+C:Copy Symbol Name(光标所在位置的消息符号名称):-insertObject:atIndex:
    • option+control+shift+command+C:Copy Qualified Symbol Name(光标所在位置的消息符号全名,带所属类名):-[NSMutableArray insertObject:atIndex:]

    通过后两种快捷方式,可以便捷地复制Objective-C特殊的冒号分隔的消息符号名称。

    (7)Open with External Editor——SublimeText

    <1>在左侧导航栏(Project Navigator)中选中某个文件右键快捷菜单中有【Open with External Editor】,默认呼叫Mac OS X自带的文本编辑器(TextEdit)打开。我们可以按照以下步骤设置快捷键:

    • 【系统偏好设置(System Preferences)->键盘(Keyboard)->快捷键(Shortcuts)->应用快捷键(App Shortcuts)】,
    • 点击+号,选择应用程序【Xcode.app】
    • 准确填写[菜单标题],即菜单命令名称【Open with External Editor】,聚焦[键盘快捷键]编辑框时,同时按下想要设置的组合键即可,例如option+command+O(⌥⌘O)。

    可针对Xcode工程代码文件(*.h/*.hh/*.c/*.cc/*.m/*.mm)设置默认打开程序为Sublime Text.app:右键Get Info(command+I),Open With选择Sublime Text.app并且Change All。然后,Xcode|Open with External Editor将在Sublime Text打开选中文件。

    <2>另外,可下载安装OpenInSublimeText插件,支持呼叫SublimeText打开Xcode当前正在编辑的文件。

    • 从github下载打开OpenInSublimeText.xcodeproj工程进行编译(command+B),生成的插件OpenInSublimeText.xcplugin将被集成到Xcode插件目录(~/Library/Application\ Support/Developer/Shared/Xcode/Plug-ins)下。
    • 重启Xcode将警告提示Unexpected code bundle "OpenInSublimeText.xcplugin",忽略警告选择[Load Bundle]即可。
    • Xcode Editor菜单中将新增[Open In Sublime Text]项,可设置其快捷键位为shift+command+S(⇧⌘S)。

    5.辅助编辑(Assistant Editor)

    (1)打开/关闭辅助编辑窗口

    Assistant Editor有点类似VC中的Code Definition Window,可实现分屏查看代码Counterpart,方便交叉参考代码编辑。

    • option+command+enter/,打开Assistant Editor。
    • command+enter关闭Assistant Editor。

    可通过菜单[View|Assistant Editor]设置Assistant Editors的方向,例如On Right。

     

    (2)呼叫辅助编辑窗口(option+)

    Mac OS X日常操作中,我们已经认识到option这把单刀双掷开关的妙用:按住鼠标移动或三指触控移动时,按下option键可实现竖直块选;调节音量/亮度时,按住option+shift 可以四分之一单位微调。

    使用Xcode快捷键进行切换或跳转动作时,若同时按下option可以在辅助编辑窗口中打开相应文件或符号(For optional navigation (Option-clicking or Option-choosing a file), opens the file in a new Assistant editor pane.)。若在辅助窗口中操作,则在主窗口(Standard Editor)中打开。

    • option+点击Project Navigator中选中的文件:在辅助编辑窗口中打开选中文件。
    • option+command+点击Editor中选中的符号:在辅助编辑窗口中打开符号定义(jump to definition in assistant editor)。
    • option+control+command+↑/↓:在辅助窗口中打开对应的头文件(*.h)/实现文件(*.m,*.mm,*.cc)。

    点击查看shift+command+O、shift+command+F(command+3)选中的文件或符号时,可同时按下option在辅助编辑窗口中打开。

    在control+1~6中打开选择结果时,均可同时按下option在辅助编辑窗口中打开。

     

    (3)导航窗格(option+shift+)

    在Xcode以上种种切换跳转操作时,按下option的同时按下shift,通常会呼出一个导航窗格(option+command+<),可选择在new window/tab/assistant-editor打开显示。

     

    For Option-Shift navigation (Option-Shift-click or Option-Shift-choose a file), Xcode displays a graphical navigation chooser showing the current layout. The chooser prompts you to open the file in any open editor pane in any window and tab, or to open the file in a new editor pane, window, or tab.

    6.环境变量(Build Setting Macros

    (1)查看环境变量宏

    命令行进入HelloWorld工程目录,执行xcodebuild命令并带上“-showBuildSettings”参数:

    xcodebuild -project HelloWorld.xcodeproj -target HelloWorld -configuration Debug -showBuildSettings > xcodebuild_showBuildSettings.txt

    xcodebuild_showBuildSettings.txt中保存了Build settings for action build and target "HelloWorld”,其中dump了所有的环境变量。

    (2)Xcode5(Mac OS X 10.9)的部分环境变量

    约定1:~=当前账户的HOME目录,例如“/Users/faner”。

    约定2:build构建基础路径BUILD_PATH = ~/Library/Developer/Xcode/DerivedData/Build。可通过“File->Project Settings”查看Derived Data Location

    约定3:环境变量宏(Build Setting Macros)引用格式:${MACRO},同Build Phases Run Script中的语法。

    下面是摘选自xcodebuild_showBuildSettings.txt的部分常用环境变量。

    (a) ARCH & PLATFORM & SDK

    ARCHS = i386

    CURRENT_ARCH = i386

    PLATFORM_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform

    PLATFORM_NAME = macosx

     

    SDKROOT = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk

    SDK_DIR = /Applications/Xcode.app/Contents/Developer/Platforms/MacOSX.platform/Developer/SDKs/MacOSX10.9.sdk

    SDK_NAME = macosx10.9

    (b) PROJECT & SOURCE

    PROJECT = HelloWorld

    PROJECT_DIR =~/Projects/Learn Objective-C/HelloWorld

    PROJECT_FILE_PATH =${PROJECT_DIR}/HelloWorld.xcodeproj

    PROJECT_NAME = HelloWorld

     

    SOURCE_ROOT =${PROJECT_DIR}

    SRCROOT =${PROJECT_DIR}

    (c) BUILD & CONFIGURATION

    BUILD_DIR =BUILD_PATH/Products

    BUILD_ROOT =BUILD_PATH/Products

    BUILT_PRODUCTS_DIR =BUILD_PATH/Products/Debug

     

    CONFIGURATION = Debug

    CONFIGURATION_BUILD_DIR =BUILD_PATH/Products/Debug

    CONFIGURATION_TEMP_DIR =BUILD_PATH/Intermediates/HelloWorld.build/Debug

    (d) PRODUCT & TARGET

    PRODUCT_NAME = HelloWorld

    PRODUCT_TYPE = com.apple.product-type.tool// Project Template: Command Line Tool

     

    TARGET_BUILD_DIR =BUILD_PATH/Products/Debug

    TARGET_NAME = HelloWorld

    (3)设置环境变量

    Product -> Edit Scheme(option+command+R)->Arguments->Environment Variables中可以添加自定义环境变量(Name为名称,Value为值)。

    在Xcode|Build Phases中Add Run Script Build Phase的Run Script将会使用到环境变量。

    7.构建配置

    (1)Target & Scheme

    一个Target是指在一个Project中构建的一个产品,它包含了构建该产品的所有文件,以及如何构建该产品的配置。
    一个定义好构建过程的Target成为一个Scheme,可在Scheme中定义Target的六种构建过程:Build/Run/Test/Profile/Analyze/Archive。

     

    • Run 为编译运行调试;
    • Build 为只编译不运行;
    • Analyze 用于进行静态代码分析,可检测潜在的内存泄露(不对称 retain/release 导致的 Potential Leak)或野指针(Use of memory after it is freed)问题。编译时可选择 Build Configuration 为 Debug 沿用证书配置;
    • Profile 将调起 Instruments 工具进行动态代码分析,例如 使用 Allocations/Leaks 动态跟踪分析内存泄露。编译时可选择 Build Configuration 为 Debug沿用证书配置;
    • Test 用于运行测试,模拟器会启动并执行测试套件;
    • Archive 可以Export as Xcode Archive,然后将 .archive 中的 .app 拖入 itunes 可 打包生成 ipa 包

     

    Product ->Edit Scheme(编辑配置,快捷键为 option+command+R 或 shift+command+,/command+<)->Manage Schemes可对Scheme的六种构建过程进行配置(可配置项包括Info、Arguments、Options)。

    在 Project Navigator 中选中某个 xcodeproj(例如 QQ.xcodeproj),将进入 Project Setting 页面,可点击左侧图标 show/hide project and targets list:

    点击 targets 项可分别设置各 target 的 Build Settings;右击可对 target 进行 delete。

    (2)Build Settings

    Architectures:Supported Platforms(OS X、iOS),Base SDK,(Valid)Architectures(armv7、arm64、i386)。

     

    • Build Active Architecture Only:一般Debug会选择YES,表示只是编译连接调试的目标真机对应的CPU指令集;对于Release Archive版本,需要选择NO,这样编译出来的安装包才能同时支持在armv7、arm64机型上安装。

     

    Build Locations:配置构建目录,包括Intermediate Build Files Path、Build Products Path及其针对Per-Configuration的配置。

    Build Options:

    • Compiler for C/C++/Objective-C默认时Apple LLVM 7.0;
    • Debug Information Format:真机连接调试时,可断点定位跟踪调试,可选择DWARF以加快编译速度;但是真机断开Xcode运行出现crash时,没有调试符号将无法逆向解析定位出问题的代码符号及其所在具体位置,故一般要选择DWARF with dSYM File。
    • 此外还包括Bitcode和Testability两个使能开关。

    Code Signing:包括Entitlements、Identity和Provisioning Profile,详情参考《iOS Provisioning Profile(Certificate)与Code Signing详解》。

    Deployment:配置发布及安装选项。

    Linking

     

    • Dead Code Stripping:一般对Debug关闭,对Release版本开启以去除无效路径僵尸代码,压缩安装包体积。
    • Display Mangled Names(LINKER_DISPLAYS_MANGLED_NAMES):针对C++ symbols,ld --no-demangle链接开关,一般选择NO。
    • Mach-O type:Static Library、Dynamic Library、Executable、Bundle、Relocatable Object File(Position-Dependent )。
    • Other Linker Flags:例如fobjc-arc(可在Build Rules中针对单个文件配置ARC开关)、-force_load。
    • Write Link Map File:写LinkMap文件。
    • Path to Link Map File:指定链接LinkMap文件路径。

     

    Packaging

     

    • Info.plist File:指定plist文件,对应顶部Info标签。
    • Product Name:为应用名称,例如QQ。
    • Wrapper Extension:为应用扩展,例如app。

     

     

    Search Paths

     

    • Info.plist File:指定plist文件,对应顶部Info标签。
    • Framework Search Paths: *.framework搜索路径。
    • Header Search Paths:*.h/*.hh头文件搜索路径。
    • Library  Search Paths:静态库、动态库搜索路径。

     

    Apple LLVM 7.0配置
    ⭐️Code Generation:

    •     Generate Debug Symbols:YES
    •     Optimization Level:优化级别,-Os

    ⭐️Custom Complier Flags:
    ⭐️Language

    •     language-Objective-C:Objective-C Automatic Reference Counting,ARC开关。

    ⭐️Preprocessing:定义Preprocessor Macros,例如DEBUG、NDEBUG=1。
    ⭐️Warning Policies:例如可以提高警告级别当作错误(Treat Warnings as Errors:YES)。

     

     

    (3)Build Phases

     

    Target Dependencies:设置依赖target。

    Copy Bundle Resources:拷贝的资源文件。

    Compile Sources:该target需要编译的源代码文件。可输入搜索源代码文件名(xxx.mm),查看或编辑其编译选项(Compiler Flags),例如 -fobjc-arc 表示 ARC(__has_feature(objc_arc))。

    Link Binary with Libraries:需要链接的库(*.a、*.framework)。

    Embed App Extensions:该APP对应的扩展插件。

    可以点击加号,New Run Script Phase,配置custom actions after compiling the Xcode project,相当于Visual Studio的Post-builtstep。

    当然,也可以在Edit Scheme中设置Pre-actions(custom actions after compiling the Xcode project)、Post-actions(将在编译链接完成后执行脚本)。

    以下Shell脚本将生成的二进制(Unix executable)文件HelloWorld拷贝到~/Software,然后cd到该目录下并执行HelloWorld:

    (4)Build

    shift+command+K:清除products|debug或release下的Unix executable文件。

    option+shift+command+K:删除构建目录(Delete/Clean Build Folder),清理Derived Data对应target目录下的Build文件夹(包括intermediate和products)。通常用于重新编译整个工程,尝试解决增量编译时部分符号陈旧导致链接不通过的问题。

    Product -> Edit Scheme(option+command+R)->Info->Build Configuration:选择生成版本(Debug or Release)

    command + B:构建(Buid)

    command+8可聚焦左侧导航栏中的日志报告导航器,其中可以查看Build日志。

    (5)Issue & Errors

    command+4可定位Issue Navigator:

    当编译错误(error)和警告(warning)过多时,点击底端的感叹号,即可忽略编译警告,只显示编译错误

    (6)Run

    command + R:运行(Run),可能会重新编译链接。

    option+command + R:如果确定代码没有改动,加option键可免重新编译链接,直接运行上次build成功的product(Run Without Building)。

    command + .:停止运行(Stop)。

     

    (7)Devices & Destination

     

    定义好Target构建配置后,接下来需要指定目标机编译。

    目标机的iPhoneOS.platform必须>=Deployment Target,且Xcode必须支持该机型:/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/DeviceSupport/目录下必须含有对应iOS系统版本的DeveloperDiskImage.dmg,否则真机编译会提示Could not find developer disk image

    shift+command+2:可以查看当前连接的Device和支持的Simulator。

    control+option+command+[/]:Select Previous/Next Destination,在连接多个真机或模拟器之间切换。

    8.运行调试

    (1)Console

    shift+command+Y:显示控制台(Show/Hide the debug area)

    shift+command+C:激活聚焦控制台,光标定位到控制台呈可输入状态

    command+K:清除控制台(Debug->Debug Workflow->Clear Console)

    可安装BBUDebuggerTuckAway插件,在打字coding时,自动隐藏调试控制台

    (2)Breakpoint

    command + \:当前行设置/取消断点;通过鼠标点击边列中的蓝色断点来启用/禁用当前行断点。

     

    command + Y:全局激活或禁用所有的断点,激活进入调试模式(此时断点蓝色可见)。

     

    边列(Gutter)中的断点/警告可右键呼出Reveal in Breakpoint/Issue Navigator。

    trick:编辑断点(Edit Breakpoint):

    Condition:设置断点的触发条件,例如“i==3”(注意不能有空格)表示当i等于3时该断点才会被触发。

    Ignore:设置断点需要被忽略多少次才会中断,若设置成5则表示第6次遇到该断点时才触发。

    Action:设置断点触发时的动作,可以为Debugger Command、Log Message、Shell Command或Sound。

    例如可设置以下Debugger Command:

    [1]读取std::string sig的内存buffer值:mem read sig.c_str() -c sig.size();

    [2]打印NSData实例sig:po sig

    (3)Debug

    F6:下一步(Step Over),逐过程单步调试,不进入函数体。

    (fn+)F7:进入(Step Into)函数体。可能与多媒体键有冲突,故需要fn辅助(建议将功能键F1-F12设置为标准的功能键)。

    (fn+)F8:跳出(Step Out)函数体。可能与多媒体键有冲突,例如呼叫iTunes,故需要fn辅助。

    control+command+Y:逐断点继续执行(Pause/Continue)。

    control+command+C:执行到当前光标所在行(Continue to current line)。

     

    trick:移动指令指针Move the instruction pointer):

    断点调试运行时,可以将绿色指针箭头(Line 47)移动到其他行(Line 49)或其他断点(Line 51)实现跳转执行。

    command+8可聚焦左侧导航栏中的日志报告导航器,其中可以查看Debug日志。

    (4)Watch

    shift+command+M:Debug Workflow->View Memory

    Debug Workflow->Show Disassembly When Debugging,可进行汇编指令级调试。

    trick:修改变量内存值change memory value while debugging):

    调试运行时,可以在底部的调试窗口(Debug Area,可通过Shift+Command+Y呼出)右键某个变量,除了可以进行View Memory/View Value As之外,还可以选择Edit Value运行时编辑内存变量的值。

    在调试验证某些难以复现的bug或进行边界测试时非常有用,可减少每次修改测量样本值(hardcode)重新编译链接的痛苦。

    (5)lldb调试命令

    • n/next:step over,等效于F6;
    • s/step:step into,等效于(fn+)F7;
    • finish:step out,等效于(fn+)F8;
    • c/continue:goto next breakpoint,等效于^⌘Y;
    • expr/expression:Evaluate a C/ObjC/C++ expression(动态执行C/ObjC/C++表达式);
    • p/print/expr/expression:print as a C/C++ basic variable;

    // 打印SYSTEM_VERSION(可能要加UIDevice*转换)

    (lldb)p [[[UIDevicecurrentDevice] systemVersion] doubleValue]

    • po/expr -O/expression -O:Print as an Objective-C object;

    // 打印屏幕bounds(可能要加UIScreen*转换)

    (lldb)po NSStringFromCGRect([[UIScreen mainScreen] bounds]) 

    // 打印状态栏frame(可能要加UIApplication*转换)

    (lldb)po NSStringFromCGRect([UIApplication sharedApplication].statusBarFrame)

    // 打印当前keyWindow的根视图(可能要加UIViewController*转换)

    (lldb)po [[[UIApplication sharedApplication] keyWindow] rootViewController]

    • call:调用。其实上述p/po后接表达式(expression)也有调用的功能,一般只在不需要显式输出,或是无返回值时使用call,用于动态调试插入调用代码。
      例如可以在viewDidLoad:里面设置断点,然后在程序中断的时候输入以下命令:

    // 调用后,继续运行程序,view的背景色将变成红色

    (lldb) call [self.view setBackgroundColor:[UIColor redColor]]

    • bt(backtrace),打印当前调用堆栈(crash堆栈),“bt all”可打印所有thread的堆栈(相当于command+6的Debug Session Navigation)。
    • image:可用于寻址,有多个组合命令,比较实用的一种用法是寻找栈地址对应的代码(行)位置。
      例如某个UITableView总共有2个section,当其引用的currentSection.index≥2时将会引起[UITableView rectForHeaderInSection:]调用异常,可使用expr动态改值制造crash场景模拟调试。
      此时crash时的控制台bt显示异常出现在应用层代码“0x00d055b8 - [FACategoryTableView FACategorySectionHeaderDidTouched:] +744”处(其中0x00d055b8为当前栈(代码段)偏移量,744为栈帧偏移量——PC指针相对函数入口的偏移)。
      那么具体是FACategoryTableView.m文件哪一行代码调用引起的异常呢?此时通过“image lookup --address”后接bt的call stack中的代码段偏移地址(0x00d055b8)即可定位出异常调用的代码行位置。
    • x/memory read:dump指定地址的内存(Read from the memory of the process being debugged),后接起止地址或-c指定count加起始地址。可help mem read查看帮助:

    Syntax

    memory read <cmd-options> <address-expression> [<address-expression>]

    Command Options Usage:

    size指定内存块(block/chunk)的大小

        --size <byte-size> ):The size in bytes to use when displaying with the selected format.

    count指定内存块(block/item)的个数,可配合起始地址使用。

        -c <count> ( --count <count> ):The number of total items to display.

    format指定内容显示格式,格式符同print:c-char,s-string,d-decimal,x-hex。

        -f <format> ( --format <format> ):Specify a format to be used for display.

    Command Samples:

    (a)起止地址,以下基于起始地址偏移量指定截至地址。

    (lldb)mem read 0x10b88f0c 0x10b88f0c+9

    0x10b88f0c: 39 38 37 36 35 34 33 32 31                       987654321

    (b)可在起始地址后使用-c指定需要dump的字节数,以上等效:

    (lldb)mem read 0x10b88f0c -c 9

    0x10b88f0c: 39 38 37 36 35 34 33 32 31                       987654321

    (c)起始地址+内存块size+内存块count(dump hex format)

    (lldb)memory read -s 1 -f x -c 9 0x10b88f0c

    0x10b88f0c: 0x39 0x38 0x37 0x36 0x35 0x34 0x33 0x32

    0x10b88f14: 0x31

    说明:dump的memory chunk为1byte,以上总共dump了chunk size*chunk count=9byte。

    (d)起始地址+内存块size+内存块count(dump char format)

    (lldb)memory read -s 1 -f c -c 9 0x10b88f0c

    0x10b88f0c: 987654321

    (e)起始地址+内存块size+内存块count(dump string format)

    (lldb)mem read 0x10b5cf2c -f s -c 1

    0x10b88f0c: "987654321"

    (f)起始地址+内存块size+内存块count(dump int format)

    (lldb)memory read -s 4 -f x -c 3 0x10b88f0c

    0x10b88f0c: 0x36373839 0x32333435 0x109f0031

    说明:以上指定chunk尺寸为4byte(-s  4),chunk数量为3,共dump了12个byte。

    • memory write:改写指定地址的内存(Write to the memory of the process being debugged)。可自行help mem write查看帮助:

    Syntax: memory write <cmd-options> <address> <value> [<value> [...]]

     

    trick:lldb打印无效问题

    在使用LLDB调试命令p/po打印C类型(包括复合类型)或Objective-C对象时,可能会遇到属性不存在或类型不匹配的问题。

    例1——断点调试,打印当前UIViewController的frame:

    • 由于Xcode lldb本身的bug,对属性的点引用有时会无法识别,例如执行(lldb) p self.view.frame报错:property 'frame' not found on object of type 'UIView *'
    • 将对属性的点引用改为对属性的getter调用,执行(lldb) p [self.view frame]依旧报错:no known method '-frame'; cast the message send to the method's return type
    • 由于Xcode lldb本身的bug,对返回的复合类型也无法直接识别,此时可采用显示类型转换,执行(lldb) p (CGRect)[self.view frame]不会报错!

    例2——断点调试,打印当前UIViewController的navigationController堆栈和childViewControllers数组:

    点引用报错写法(property not found):(lldb) po self.navigationController.viewControllers

    调用getter正确打印:(lldb) po [[self navigationController] viewControllers]

    点引用报错写法(property not found):(lldb) po self.childViewControllers

     

    调用getter正确打印:(lldb) po [self childViewControllers]

    (6)启用NSZombieEnabled调试EXC_BAD_ACCESS

    当你对已释放的对象发送消息(90%的可能是对引用计数为0的对象再release)或release那些autorelease对象时,就会出现报EXC_BAD_ACCESS这样的错误。
    默认设置下 Xcode不会给你定位具体是哪一行代码不该去使用已释放的对象,或者release用错了。
    Product -> Edit Scheme(option+command+R) -> Diagnostics ,勾选“Objective-C”之后的“Enable Zombie Objects”。
    设置NSZombieEnabled环境变量后,一个对象销毁时会被转化为_NSZombie;设置NSZombieEnabled后,当你向一个已经释放的对象发送消息,这个对象就不只是报EXC_BAD_ACCESS Crash,还会放出一个错误消息,然后以一种可预测的可以产生debug断点的方式消失, 因此我们可以找到具体或者大概是哪个对象被错误的释放或引用了。
    注意:NSZombieEnabled只能在调试的时候使用,千万不要忘记在产品发布的时候去掉,因为NSZombieEnabled不会真正去释放dealloc对象的内存,一直开启后果自负!

    展开全文
  • 这是一门快速入门iOS开发的课程,目的是让大家快速学会,iOS开发环境搭建,和iOS一些基础知识,最后完成一个小项目。 ... 提供完整的Git提交历史,和每节视频一一对应,目前有41次提交,355行注释,271行...
  • 1. Xcode 环境安装 ; 2. Xcode 面板详解 : 导航面板, 检查面板, 库面板 ; 3. Xcode 帮助简介 : 快速帮助, 搜索, 代码自动提示 ; 4. 第一个 Object-C 程序 Hello World .

    作者 : 韩曙亮

    转载请注明出处http://blog.csdn.net/shulianghan/article/details/38424965

     

    一. Xcode 环境安装 与 工程创建

     

     

    1. 下载环境

     

    相关资源下载

    -- IOS 相关资料下载页面https://developer.apple.com/devcenter/ios/index.action ;

    -- Xcode 下载页面https://developer.apple.com/xcode/downloads/ ;

     

     

    2. 创建 Objective-C 程序

     

    进入主界面方式 : 打开 Xcode 之后, 可以使用 Xcode 菜单, 但是必须创建一个 Object-C 工程 或者 导入 一个 Object-C 工程才可以进入主界面;

    -- 打开现有工程 : 点击右边的历史记录, 就可以打开现有的工程;

    -- 创建工程 : 点击第一个 Create a new Xcode Project 即可创建一个新工程;

    -- 导入工程 : 点击 Check out an existing project 可以导入一个已经创建的工程;

     

    创建一个命令行程序 : 选择 创建工程界面的 OS X --> Command Line Tool 程序, 即创建了一个命令行程序, Cocoa Application 是创建有界面的程序;

    -- ios 项目 : ios项目是为手机和平板开发的应用;

    -- OS X 项目 : OS X 是为 OS 操作系统创建的应用;

     

    创建工程 : 注明 工程名, 公司名称, 类型;

    -- Product Name : 工程名称;

    -- Organization Name : 组织名称;

    -- Type : 这里选 Foundation, 这是 Object-C 工程;


     

    3. 创建 IOS 项目

     

     

    打开 Xcode 并选择创建新工程 : 弹出菜单中选择 IOS --> Single View Application 工程;

     

    填写项目信息 : 

    -- Product Name : 项目名称;

    -- Organization Name : 公司标识;

    -- Class Prefix : 为了避免用户定义类与 Object-C 类命名冲突问题, 在每个类之前都加上这个前缀;

    -- Devices : 选择应用运行的设备, Universal 表示同事兼容 ipad 和 iphone;

     

     

     

    二. Xcode 界面详解

     

    1. Xcode 界面简介

     

     

    (1) 顶部区域 

     

    程序运行相关

    -- 从左至右介绍 : 运行按钮, 停止按钮, 为工程选择运行平台;

     

    编辑器相关

    -- 从左至右介绍 : 标准编辑器, 辅助编辑器, 版本编辑器;

     

    面板控制相关

    -- 从左至右介绍 : 隐藏左侧面板, 隐藏底部面板, 隐藏右侧面板;

     

     

    (2) 左面板

     

     

    面板介绍 : 该面板是 Xcode 工程导航面板, 上方的七个按钮用于切换导航模式;

     

     

    (3) 底部面板

     

     

    面板介绍 : 用于 Xcode 显示 控制台调试输出信息;

     

     

    (4) 右面板

     

    检查器面板 : 根据项目的不同, 包含大量审查器;

     

    库面板

    -- 库面板简介(从左至右) : 文件模板库, 代码片段库, 对象库, 媒体库;

     

     

    (5) 详细编辑区

     

    该区域是代码编写主要区域

     

     

     

     

    2. 导航面板详解

     

    导航面板简介

    -- 从左至右 : 项目导航, 符号导航, 搜索导航, 问题导航, 测试导航, 调试导航, 断点导航, 日志导航;

     

    (1) 项目导航

     

     

    项目导航组成

    -- 源文件 : 在 HelloWorld 目录下的 ".h" 和 ".m" 后缀文件是源文件;

    -- 属性文件 : 在 HelloWorld 下的 Supporting Files 目录下是属性文件 图片等;

    -- 单元测试项目 : HelloWorldTest 是工程的单元测试项目;

    -- 目标应用 : Products 目录下的 HelloWorld.app 是目标应用;

     

     

    (2) 符号导航

     

     

    符号导航简介 : 用符号显示工程中的 类, 项目 和 属性;

    -- 表示方式 : C 表示类, M 表示方法, P 表示属性;

    -- 快速定位 : 点击对应的方法或者属性, 能快速定位到这个类中;

     

     

    (3) 搜索导航

     

     

    搜索导航简介 : 在搜索框中输入要搜索的字符串, 按回车就可以搜索出包含该字符串的类;

     

     

    (4) 问题导航面板

     

     

    问题导航面板简介 : 显示项目中存在的警告或者错误;

     

     

    (5) 测试导航

     

     

    测试导航简介 : 点击 testExample 后面的执行按钮, 就会运行该单元测试;

     

     

    (6) 调试导航

     

     

    调试导航简介 : 调试导航面板中显示了各线程的详细信息;

     

    添加断点 : 在 OCTViewController.m 中添加一个断点;

     

    开始调试(自动判断: 点击顶部面板中的调试按钮, 如果代码中有断点, 就会自动进入调试状态, 执行到断点时会自动停止, 详细调试信息显示在底部的调试输出面板;

     

    调试面板介绍 下面从左至右介绍;

    -- Continue program execution : 继续执行下面的代码;

    -- Step over : 单步调试, 点击一次该按钮, 执行一行代码, 如果有方法调用, 不会进入方法中;

    -- Strp in : 步入调试, 点击该按钮, 会进入方法中;

    -- Step out : 步出调试, 在方法中, 点击该按钮, 会退出方法, 执行方法外的单步调试;

     

     

    (7) 断点导航

     

     

    断点导航简介 : 列出所有的断点, 方便管理断点;

     

     

    (8) 日志导航

     

     

    日志导航简介 : 列出项目开发过程中 构建, 生成, 运行过程, 每次该过程都可以通过日志面板查看;

     

     

     

    3. 检查器面板

     

    检查面板分类

    -- 普通源文件 : 包含 文件检查器 和 快速帮助器;

    -- 故事版 : 界面文件, 除了文件检查器 和 快速帮助器之外, 还有 身份检查器, 属性检查器, 大小检查器, 连接检查器;

     

    文件检查器

    -- Identity and Type : File Name(文件名), File Type(文件类型), Full Path(路径);

    -- Text Settings : Text Encoding(文件编码使用字符集), Indent Using(缩进), Wrap lines(自动换行);

     

    快速帮助器 : 将光标停留在系统类的时候, 该面板会显示该类的 参考手册, 使用指南 和 示例代码;

     

     

    界面设计相关检查器 : 用户选中 ".storyboard" 或者 ".xib" 后缀的文件时, 会多出另外四个检查器;

    -- 身份检查器 : 管理界面组件类 实现类, 恢复ID 等标识性的属性;

    -- 属性检查器 : 管理界面组件 拉伸方式, 背景色 等属性;

    -- 大小检查器 : 管理界面组件 宽高 xy轴坐标 等属性;

    -- 连接检查器 : 管理界面组件 与程序代码之间的关联性;

     

     

    4. 库面板

     

     

    库面板简介 : 从左至右介绍;

    -- 文件库模板 : 管理文件模板, 可以快速创建指定类型文件, 可以直接拖入项目中;

    -- 代码片段库 : 管理各种代码片段, 可以直接拖入源代码中;

    -- 对象库 : 界面组件, 可以直接拖入 故事板中;

    -- 媒体库 : 管理各种 图片, 音频 等多媒体资源;

     

     

    三. Xcode 帮助系统详解

     

    帮助系统作用 : Object-C 开发中需要调用很多系统的类, 需要了解每个类的 用法, 通过 Xcode 帮助系统可以查询这些类的用法;

     

     

    1. 快速帮助面板

     

     

    右面板中的快速面板显示内容 : 该类继承的父类, 遵循的协议, 类所在框架, 点击Reference 中的链接, 可以进入类的详细介绍;

     

    类详细介绍页面 : 通过 快速帮助面板 中的 Reference 中的链接, 可以进入该页面;

     

    类方法分类界面 : 该界面与详细介绍界面是同一个, 下拉即可;

     

    2. 直接搜索

     

    搜索 : 通过任意链接进入类详细介绍界面之后, 可以在上方的输入框中输入关键字, 即可搜索相关的 类, 方法, 协议 或者 函数;

     

    3. 代码自动提示

     

    提示方式 : 代码编辑区域, 按住 option 键, 然后将光标移动到类上, 会变成问号, 点击就会出现下面的提示框;

     

     

    四. Hello World 程序

     

     

    1. 文件扩展名介绍

     

    C语言源文件后缀 : ".c";

    C++语言源文件后缀 : ".cc", ".cpp";

    头文件 : ".h";

    Object-C源程序 : ".m";

    Object-C++源程序 : ".mm";

    C/C++/Object-C/Object-C++生成的中间文件 : ".o";

    C/C++/Object-C/Object-C++生成的可执行文件 : ".out";

     

     

    2. 程序源码及解析

     

    程序源码

     

    /* 导入 Foundation 框架下的 Foundation.h 文件 */
    #include <Foundation/Foundation.h>
    
    /* 程序入口函数 */
    int main(int argc, char * argv[])
    {
    	/* 自动释放池, 该环境中执行的语句会自动回收所创建的对象 */
    	@autoreleasepool
    	{
    		/* Foundation 中的输出函数, 可输出字符串, 对象等 */
    		NSLog(@"Hello World"); /* @"Hello World", 加上 @ 是为了与 C 中的字符串区分 */
    	}
    	return 0;
    }

     

     

     

     

     

    (1) 导入框架头文件

     

    导入头文件语句 : #import <a/b.h> 是导入 a 框架 中的 b.h 头文件;

     

    框架简介 : 框架是 一系列类 函数的集合, Cocoa QuickTime 都被封装成了框架, Cocoa 包括了 Foundation 和 Application Kit 等组件;

     

     

    (2) 自动释放池

     

    内存管理 : 在早期的 Object-C 需要手动管理内存的分配和回收, Object-C 2.0 引入了 ARC(自动引用计数)自动释放池, 不在进行手动内存管理;

     

    自动释放池 : 使用 "@autoreleasepool{}" 包裹的代码位于 Object-C 的自动释放池中, 这些语句会自动回收创建的对象, 不用进行手动的内存管理;

     

     

    (3) 字符串输出

     

    NSLog()函数 : 该函数是 Foundation 框架提供的一个函数, 该函数可以输出 字符串 对象等;

    -- NS 前缀说明 : Cocoa 框架中所有的 类 函数 常量 都会加上 NS 前缀;

    -- @"string" 说明 : @符号 用于区分 Object-C 与 C语言字符串, 加上 @ 符号的时 Object-C 字符串;

     

     

    3. 编译运行代码

     

    LLVM Clang 编译器语法 : clang -fobjc-arc -framwork 框架名称 源程序 -o 输出结果 ;

    -- -fobjc-arc 参数 : 启用 Object-C 的 ARC 自动技术功能;

    -- -o 参数 : 如果不带, 默认 输出 a.out ;

     

    编译执行结果

     

    octopus-2:ios octopus$ clang -fobjc-arc -framework Foundation 01-HelloWorld.m 
    octopus-2:ios octopus$ ls
    01-HelloWorld.m	a.out
    octopus-2:ios octopus$ ./a.out 
    2014-08-10 00:22:55.670 a.out[3394:507] Hello World

     

     

     

     

    作者 : 韩曙亮

    转载请注明出处 : http://blog.csdn.net/shulianghan/article/details/38424965

    展开全文
  • windows下安装xcode

    2020-07-17 17:51:32
    windows下安装xcode Xcode安装与环境介绍
  • 搜索Xcode,找到开发者,点进去,申请一个号,有邮箱即可申请。但是开发者里面下载不了,需要从别的地方下载。下载连接如下:https://developer.apple.com/download/more/ 如果没有登陆开发者账号,上面连接点进去...

    1、在开发者平台申请一个账号:

    搜索Xcode,找到开发者,点进去,申请一个号,有邮箱即可申请。但是开发者里面下载不了,需要从别的地方下载。下载连接如下:https://developer.apple.com/download/more/

    如果没有登陆开发者账号,上面连接点进去也不会显示相应的内容。

    找到所需版本,点开,直接下载,或者复制连接到迅雷中下载。

    展开全文
  • xcode 9.4下载

    2018-11-13 18:40:28
    本文以下载xcode 9.4.1为例,我的系统版本是Mac OS high sierra 10.13.2,我的系统渐入的xcode最高版本是 xcode 9.4.1,去AppStore 搜只能搜到xcode 10 以后的版本,坑爹苹果只推荐新的版本。。。 因为High sierra ...

    *如何下载与你的Mac OS 系统兼容的xcode

    本文以下载xcode 9.4.1为例,我的系统版本是Mac OS high sierra 10.13.2,我的系统渐入的xcode最高版本是 xcode 9.4.1,去AppStore 搜只能搜到xcode 10 以后的版本,坑爹苹果只推荐新的版本。。。
    因为High sierra 系统10.13.6 有坑,安装几次都失败,系统还搞炸了,我也懒得升级了,如下附上详细下载教程⬇️
    在这里插入图片描述 登陆开发者网站 https://developer.apple.com (用Apple ID登录一下)
    在这里插入图片描述

    点进去之后拉到最下面找到see more downloads 点进去
    在这里插入图片描述
    之后你会看到这个,在这可以下载xcode、mac os 、iOS等
    在这里插入图片描述
    注意⚠️,最关键的,尽量使用Safari下载,我用google下载一直失败,总是提示网络错误,VPN关了也没用,换成safari之后就成功了。
    在这里插入图片描述

    展开全文
  • WWDC17 带来许多令人兴奋的好消息,iOS 11, Swift 4 和 Xcode 9,每个都有非常大的进步。但对 App 开发者来说,马上可以派上用场的莫过于 Xcode,毕竟我们开发的 App,可能不需要 iOS 11 的 AR 和 machine learning...
  • 您不必担心,因为您可以在Windows计算机上运行XcodeXcode是一个值得信赖的macOS应用程序开发程序,它使人们可以轻松开发iOS,macOS,tvOS和watchOS程序。Xcode自2003年以来一直作为免费软件程序提供开源元素,自...
  • 摘要:本次的IOS开发入门学习中,Xcode使用教程详细讲解是本文要介绍的内容,Xcode是一个款强大的IDE开发环境,就像你在写Windows程序时需要VS2005一样 需要要Xcode为你写Mac程序提供环境。因此,如果你要成为Mac ...
  • Xcode及模拟器SDK下载

    2018-10-24 14:09:54
    现在不会有人想在 Xcode 里安装旧版的模拟器了,本篇不再维护 --------------------------------------------------------------------------- 如果你嫌在 App Store 下载 Xcode 太慢,你也可以选择从网络上下载:...
  • 我们会遇到这样的问题,就是说当你的同事离职了,...总不能一直用别人的账户吧,如果没有这个同事的联系方式,那不就头疼了,需要自己删除xcode,然后重新下载安装,重新下载很慢的,而且文件比较大。怎么办呢?  
  • ### Xcode 10.1 https://download.developer.apple.com/Developer_Tools/Xcode_10.1/Xcode_10.1.xip ### Xcode 10 https://download.developer.apple.com/Developer_Tools/Xcode_10/Xcode_10.xip ### Xcode...
  • 在从App Store上下载Xcode后,默认是不会安装Command Line Tools的,Command Line Tools是在Xcode中的一款工具,可以在命令行中运行C程序。为了学习Objective-C,现在也来学习一下如何安装Command Line Tools,具体...
  • Xcode 9 beta 版已经可以下载了,不知道大家伙对这个新版本开发工具看法如何,最近我费了一番周折终于体验了一把,升级系统,下载Xcode,验证安装扒拉扒拉什么的,几乎搞了我一天,我做开发使用的并不是什么 MacBook...
  • 刚开始用Xcode是不是发现以前熟悉的开发环境的快捷键都不能用了?怎么快捷运行,停止,编辑等等、都不一样了。快速的掌握这些快捷键,能提供开发的效率。 其实快捷键在Xcode的工具栏里都标注有,只是有的符号和你的...
  • Xcode上没有找到允许编译,如同Android上的*.so和Win32上的dll这样的说法。不过Framework这样的框架,估计也是类似动态库的实现,不过没有具体研究过,后续继续深入研究。 我这个文档的静态库的开发是基于Xcode...
  • Xcode是一款功能全面的应用程序,通过此工具可以轻松输入、编译、调试并执行Objective-C程序。如果想在Mac上快速开发iOS应用程序,则必须学会使用这个强大的工具的方法。在本文容中,将详细讲解Xcode 9开发工具的...
  • 前言Xcode是一个每天都有成千上万开发者使用的IDE( 集成开发环境),它是一个非棒棒的工具,但是有时候为了提高开发效率你可能想自定义一些它的特性和行为。在Xcode 7的时候,开发者可以在Xccode运行的时候通过注入...
1 2 3 4 5 ... 20
收藏数 197,569
精华内容 79,027
关键字:

xcode