• iOS相关


    1. fastlane

    a collection of tools that help you automate building and releasing iOS and Android apps。用中文说,就是用来构建打包的工具。可支持iOS和Android操作系统。fastlane是用Ruby语言编写的一套自动化工具集和框架,每一个工具实际都对应一个Ruby脚本,用来执行某一个特定的任务,而fastlance核心框架则允许使用者通过类似配置文件的形式,将不同的工具结合在一起,从而形成一个个完整的自动化流程。

    详细内容可看:自动化打包之Fastlane https://blog.csdn.net/kuangdacaikuang/article/details/80443515 。

    举例:

    desc "Build beta package and upload to xx.com"
    #lane表示一个打包流程 例子中,此流程名叫build_for_beta。假设我们的App名叫myApp lane :build_for_beta do update_info_plist( plist_path: "myApp/Info.plist", display_name: "myApp_test" ) #设置plist中key1值为value1 set_info_plist_value(path: "./myApp/Info.plist", key: "key1", value: "value1") version_number = get_version_number( xcodeproj: "./myApp.xcodeproj" ) # 打完包的产物都会以这个参数命名 myApp_archive_name = "myApp_v#{version_number}_beta" end

    2. info.plist

    info.plist是应用app的配置文件,可以在此定义Bundle的版本号CFBundleShortVersionString,应用程序版本号CFBundleVersion,应用名称CFBundleDisplayName,启动图标CFBundleIcons,应用标识号CFBundleIdentifier,是否支持后台运行UIApplicationExitsOnSuspend,需要的权限等。以下info.plist里定义的app名叫:myApp,版本为5.1.0-300

    <?xml version="1.0" encoding="UTF-8"?>
    <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
    <plist version="1.0">
    <dict>
    	<key>CFBundleDevelopmentRegion</key>
    	<string>zh_CN</string>
    	<key>CFBundleDisplayName</key>
    	<string>myApp</string>
    	<key>CFBundleIdentifier</key>
    	<string>$(PRODUCT_BUNDLE_IDENTIFIER)</string>
    	<key>CFBundleName</key>
    	<string>$(PRODUCT_NAME)</string>
    	<key>CFBundleShortVersionString</key>
    	<string>5.1.0</string>
    	<key>CFBundleVersion</key>
    	<string>300</string>
    	<key>DEBUG</key>
    	<integer>1</integer>
    	<key>NSAppleMusicUsageDescription</key>
    	<string>是否允许访问媒体资料库?</string>
    	<key>NSBluetoothPeripheralUsageDescription</key>
    	<string>是否允许访问蓝牙?</string>
    </dict>
    </plist>
    

      

    3. /usr/libexec/Plistbuddy

    plist是Mac种非常普遍的一种文件格式,类似xml,通过键值对的方式来进行一些配置。而PlistBuddy则是Mac自带的专门解析plist的小工具详情可参见:https://www.jianshu.com/p/2167f755c47e

    使用plistbuddy输出及修改版本号,命令如下:

    buildnum=$(/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "${plist}")
    
    buildnum=$(expr $buildnum + 1)
    
    /usr/libexec/Plistbuddy -c "Set CFBundleVersion $buildnum" "${plist}"
    

    4. rvm

    rvm是一个命令行工具,可以提供一个便捷的多版本Ruby环境管理和切换。

    5. gem

    gem是管理ruby程序的程序,类似python下的pip 或 Node.js 里的npm。

    gemfile里定义应用依赖的第三方包,bundle根据该配置寻找这些包。

    6. brew

    homebrew简称brew,是Mac OSX上的软件包管理工具,类似linux里的apt-get / yum等。常用命令有:

    brew update #更新homebrew的信息
    
    brew outdated #查看需要升级的软件
    
    brew upgrade xxx #指定升级某软件
    
    brew upgrade  #升级所有软件
    
    brew cleanup  
    

    7. bundler & bundle

    bundler是管理多版本gem的工具。bundle文件可以理解为资源文件包。我们将许多图片、文本文件组织在一起,打包成一个bundle文件,方便在其他项目中引用包内的资源。bundle是静态的,不参加项目编译,不包含可执行文件。

    8. agvtool

    版本和内部版本号码Key分别指定市场和应用程序的内部版本。agvtool是一个命令行工具,它允许你这些数字自动递增到下一个最高号码或特定号码。更新及查看版本号命令为:

    agvtool new-marketing-version <your_specific_version>
    
    agvtool what-marketing-version

    // build
    agvtool new-version -all 1.0.0
    agvtool what-version

      

    9. pod & CocoPods

    1. pod是用来管理iOS库的工具。
    2. CocoaPods是一个objc的依赖管理工具,而其本身是利用ruby的依赖管理gem进行构建的。通过CocoaPods我们可以为项目添加被称为“Pods”的依赖库(这些类库必须是CocoaPods本身所支持的),并且可以轻松管理其版本。 
    3. podfile是一个规范文件,描述一个或多个项目目标依赖项。
    4. podfile.lock 文件是记录使用的第三方的版本号(只记录最后一次更新),在执行完pod install / update 后生成

    5. 命令 pod install 

    • 如果 podfile.lock 文件不存在,会根据 podfile 文件安装第三方框架,并生成 podfile.lock 文件
    • 如果 podfile.lock 文件存在,会根据 podfile.lock 文件的版本号来安装第三方框架,即便服务器中有最新的版本,通过 pod install 指令也不会安装最新的第三方框架,只会根据 podfile.lock 中记录的版本来安装
    • 使用场景:
      • 新创建工程,第一次引入pod库时。
      • 修改了Podfile文件,添加或删除了所依赖的pod库时。
      • 团队中新人拉取工程后获取pod库时。
      • 团队中,不同开发者要同步对pod库的依赖时。
      • 有人改变了依赖关系,删除或增加pod时。
      • 有人执行了pod update,此时他的Podfile.lock文件中的跟踪版本就已经变更,此时,其他人只要pod install就能更新为和Podfile.lock文件中的版本。
      • 如果Podfile和Podfile.lock的记录相冲突,Podfile文件中指定了低于Podfile.lock中记录的版本。会以Podfile文件为准,并在获取成功后更新Podfile.lock文件。

      6. 命令 pod update

    • 根据 podfile 文件安装第三方框架,将所有第三方框架更新到最新版本,并且创建一个 podfile.lock 文件覆盖掉原文件

    10. Provisioning Profile

    为了使测试版应用可以在真机上安装,我们就需要使用 Provisioning Profiles。



  • 相关阅读:
    BZOJ4644 经典傻逼题 (线段树分治+可撤销线性基+Xor)
    CF678E Another Sith Tournament(思维+dp)
    HDU 6511
    HDU6513 Reverse It(容斥+Cnk)
    一篇最浅显易懂的Splay讲解(试问谁能比我的更易懂
    [CTSC2016]时空旅行 (线段树分治+凸壳
    关于dsu on tree 和一些例题 CF 741 D
    关于区间开根号+区间询问
    [FJOI2015]火星商店问题 --线段树分治+可持久化trie
    线段树 关于pushup的技巧
  • 原文地址:https://www.cnblogs.com/sunada2005/p/11314904.html
Copyright © 2020-2023  润新知