• 在 Building Settings中搜索 swift 将No 换成Yes 如下图:

    更正:此方法并不可行

    在xcode8中没有办法兼容Swift2.3版本。只能通过项目升级或者保留XCode7.3.1版本

    在 Building Settings中搜索 swift 将No 换成Yes 如下图:

    这里写图片描述

    展开全文
  • 之前的代码Swift版本是3.2(假设),而最新的Widget则使用4.0为什么不把3.2的代码升级到4.0呢?这是可以的,但是涉及到要改很多地方:而且3.2和4.0也不是完全不兼容,只是在某些地方新旧版本会有冲突,没必要为了这

    你会问同一个Xcode项目中还会用不同版本的Swift?

    对!举个栗子:2年前你写了一个管理密码的App,最近你觉得有必要再写一个Today Widget插件用来便捷显示密码。

    之前的代码Swift版本是3.2(假设),而最新的Widget则使用4.0

    为什么不把3.2的代码升级到4.0呢?这是可以的,但是涉及到要改很多地方:

    升级带来许多问题


    而且3.2和4.0也不是完全不兼容,只是在某些地方新旧版本会有冲突,没必要为了这一点兼容性而老项目全部升级版本。

    比如说对于NSMutableAttributedString的操作,4.0之后对于属性名称的引用方式和之前有不同,无法写出3.2和4.0都能编译通过的代码。

    对于3.2和4.0都会引用到的代码片段,我们必须因”版”而异,用Swift的编译宏命令做代码隔离:

    #if swift(>=4.0)
                attrString.addAttribute(.foregroundColor, value: UIColor.red, range: range)
                attrString.addAttribute(.backgroundColor, value: UIColor.green, range: range)
                attrString.addAttributes([.shadow:keywordShadow,.verticalGlyphForm:0], range: range)
            #else
                attrString.addAttribute(NSForegroundColorAttributeName, value: UIColor.red, range: range)
                attrString.addAttribute(NSBackgroundColorAttributeName, value: UIColor.green, range: range)
            attrString.addAttributes([NSShadowAttributeName:keywordShadow,NSVerticalGlyphFormAttributeName:0], range: range)
            #endif

    以上代码在项目的公共组里的String+ext.swift文件中,该文件会同时被App和Widget项目包含使用。

    使用如上所示的代码隔离,或称为选择编译使得全部项目顺利编译通过。

    展开全文
  • 我们知道Xcode中可能包含不知一个Swift版本,那么我们如何找到它们对应的路径呢?熟悉unix shell命令的童鞋都知道有一个find指令,在我们已知Xcode路径时,我们可以在其中找到Swift在哪里:find /Applications/Xcode....

    我们知道Xcode中可能包含不知一个Swift的版本,那么我们如何找到它们对应的路径呢?

    熟悉unix shell命令的童鞋都知道有一个find指令,在我们已知Xcode路径时,我们可以在其中找到Swift在哪里:

    find /Applications/Xcode.app -name swift -a -type f

    以上命令中的-a选项表示的是and逻辑,你也可以写全称为-and.所以你必须同时符合name为swift,同时type为一般文件这两个条件才可以哦.

    其他type的参数有:

    -type t
                 True if the file is of the specified type.  Possible file types are as follows:
    
                 b       block special
                 c       character special
                 d       directory
                 f       regular file
                 l       symbolic link
                 p       FIFO
                 s       socket

    在本猫的air上运行以上指令结果如下:

    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/Swift_2.3.xctoolchain/usr/bin/swift
    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift

    第一个swift版本显然是2.3,我们看一下后面Swift的版本:

    /Applications/Xcode-beta.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin/swift -version
    Apple Swift version 3.0 (swiftlang-800.0.34.6 clang-800.0.33)
    Target: x86_64-apple-macosx10.9

    不出意外是Swift 3.0哦,我的Xcode是8.0beta4

    展开全文
  • 目前最新swift是4.1,但是pod导入的三方可能是3.3版本,此时使用pod导入三方可在podfile里配置以下内容 # Swift 版本声明 post_install do |installer| installer.pods_project.targets.each do |target| if ['...

    目前最新swift是4.1,但是pod导入的三方可能是3.3版本,此时使用pod导入三方可在podfile里配置以下内容

    # Swift 版本声明
    post_install do |installer|
        installer.pods_project.targets.each do |target|
            if ['对应三方1', '对应三方2'].include? target.name
                target.build_configurations.each do |config|
                    config.build_settings['SWIFT_VERSION'] = '3.3'
                    config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
                end
                else
                target.build_configurations.each do |config|
                    config.build_settings['SWIFT_VERSION'] = '4.1'
                    config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
                end
            end
        end
    end
    

    整个podfile为

    source 'https://github.com/CocoaPods/Specs.git'
    platform :ios, '9.0'
    use_frameworks!
    inhibit_all_warnings!
    
    target 'FoxBuy' do
      ## 此处是三方库
      ## ...
    end
    
    # Swift 版本声明
    post_install do |installer|
        installer.pods_project.targets.each do |target|
            if ['对应三方1', '对应三方2'].include? target.name
                target.build_configurations.each do |config|
                    config.build_settings['SWIFT_VERSION'] = '3.3'
                    config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
                end
                else
                target.build_configurations.each do |config|
                    config.build_settings['SWIFT_VERSION'] = '4.1'
                    config.build_settings['ONLY_ACTIVE_ARCH'] = 'NO'
                end
            end
        end
    end
    


     

    展开全文
  • Fastlane 指定swift版本

    2019-03-28 16:41:55
    指定运行的xcode,变相的指定swift版本。 $ xcode-select -p // 打印 Xcode 开发目录 /Applications/Xcode.app/Contents/Developer $ sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer //...

    指定运行的xcode,变相的指定swift版本。

    $ xcode-select -p  // 打印 Xcode 开发目录
    /Applications/Xcode.app/Contents/Developer
    $  sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer  //进行选择
    #其他拓展命令
    $ xcodebuild -version //查看xcode版本号
    $xcode-select --install  //安装Xcode command line tools
    
    展开全文
  • 切换Xcode的默认版本

    2018-10-19 10:21:22
    电脑上分别安装了Xcode-Beta7.1和Xcode10.0,所以有时候需要切换Xcode版本。 切换xcode路径的方法为:sudo xcode-select --switch /Applications/Xcode.app/Contents/Developer(xcode路径) 查看切换后的xcode...
  • 要在Xcode 8中完全使用Swift 3.0,个人感觉不现实,因为有些重要的开源框架无法同时支持Swift 3.0和iOS 8.0,比如最常用的Alamofire,4.0版本才支持Swift 3.0,但却要求iOS 9.0+。目前的做法是把Xcode 8 bulid ...
  • Xcode 9 引入了 New Build System,可在 Xcode 9 的 File -> Project Settings... 中选择开启。 预编译 Bridging Headers 文件 对于 Swift 和 Objective-C 混合的项目,Swift 调用 Objective-C 时,需要建立一...
  • iOS开发从入门到精通 基于Xcode9和Swift4视频培训教程,本教程手把手教您学习Xcode9和Swift4语言!一看就懂,一学就会! 视频教程拥有180节课程,包含iOS开发基础知识、数据处理、网络访问、多线程、社会化分享、...
  • 随着Xcode9 Swift4 的到来,一些小问题也接踵而至。许多优秀的Swift第三方框架还未来得及迎接Swift4的到来,它们还停留在swift3.x的状态,这个时候新建一个项目,...其本质都是控制编译时所使用的Swift版本第一种:Xco
  • 转发链接:... The “Swift Language Version” (SWIFT_VERSION) build setting must be set to a supported value for targets which use Swift. This...
  • Xcode 8 升级 Swift3.0 问题处理。 Use Legacy Swift Language Version” (SWIFT_VERSION) is required to be configured correctly for targets which use Swift. Use the [Edit > Convert > To Current Swift ...
  • 随着 Xcode9 Swift 4.0 的到来,一些小问题也接踵而至。   许多优秀的 Swift 第三方框架还没有来得及迎接 Swift 4.0 的到来,它们还停留在 Swift3.x 的状态。 这个时候新建一个项目,使用cocoapods 引入所需的...
  • 而这个问题偏偏是我在升级xcode之后才出现的 问题 概要描述 终端执行 sudo 或者 brew 会输出 env: node\r xxx 遇到这个问题真的很迷,无缘无故跟 node 搭上边了。 排查姿势 根据提示执行对应的命令 无解,依旧...
  • 解决方案 选择4.0 然后报错17个,类似以下这样的错误 ...AVMediaTypeVideo为AVMediaType.video这个大部分是版本升级语法改变的错误,我自己是手动改了代码 转载于:https://www.cnblogs...
  • 原创Blog,转载请注明出处 ... 工欲善其事,必先利其器,强烈建议新手同学好好研究下XCode这个工具。比如Build Settings,Build Info Rules,Build Parse, Edit Scheme… 前言:这个Swift调试系列分为四篇 图形化界面
  • 万众期待的 Swift 5 终于来了,苹果爸爸答应的 ABI 稳定也终于来了。 小集新小伙伴 @NotFound-- 花时间将文档翻译出来,供大家参考。翻译不当之处,请及时留言指出,我们会持续更新。 App 瘦身 新特性 Swift 应用...
  • 这几天苹果在开 WWDC2017 大会,期间放出了 Xcode9.0-beta 以及 Swift4... 如何适配Xcode9.0-beta 内置的 Swift 版本不止一个,它同时支持 Swift4.0 和 Swift3.2 。而我们正在用的 Xcode8 ,最高只支持 Swift3.1 。基于
  • Xcode 10可在Mac App Store中使用,包括适用于iOS 12,watchOS 5,macOS 10.14和tvOS 12的SDK.Xcode 10支持iOS 8及更高版本,tvOS 9及更高版本以及watchOS 2及更高版本的设备上调试。Xcode 10需要Mac运行macOS ...
  • 引言 1 - Storyboard 是一个能够节省你很多设计手机 App 界面时间的新特性,如图所示  (1)通过上图,你可以大致明白,如果你要制作一个页面很多很复杂的 App,Storyboard 可以帮助你解决写很多重复的跳转方法...
1 2 3 4 5 ... 20
收藏数 6,417
精华内容 2,566