• iOS项目添加CocoaPods


    iOS项目添加CocoaPods

     安装sudo gem install cocoapods

    *如果发现半天没反应是因为Ruby的默认源使用的是cocoapods.org 但在国内阻挡了 cocoapods.org,
        可以将源换成淘宝的来解决这个问题,可以尝试换以下方法。
    $ gem sources --remove https://rubygems.org/
    //等有反应之后再敲入以下命令
    $ gem sources -a http://ruby.taobao.org/




    只有在终端中出现下面文字 说明成功
    *** CURRENT SOURCES ***
    
    http://ruby.taobao.org/

    替换完ruby后 再次执行以下命令
    $ sudo gem install cocoapods 
     
    安装结束后再执行命令
    $ pod setup 



    安装完成后可以在Finder 中查找到以下目录 /Users/用户名/.cocoapods   
    注:.cocoapods为隐藏文件
     

    如果顺利可以在得到如下图所示的结果,Specs内有很多第三方库目录。
     

    二. 项目中使用CocoaPods

    1.创建Xcode项目工程

    创建一个名称为test的xcode测试工程
     

    2.创建Podfile文件

    终端进入该文件夹
    $ cd desktop/test
    $ touch Podfile

    3.打开创建的Podfile文件并添加内容,完成后保存。

    platform :ios, '7.0' 
    pod 'SBJson', '~> 4.0.0'

    4.执行pod安装命令,命令行转到工程目录下执行以下命令

    $ cd desktop/test $ pod install

    等待5分中 太慢了 我也是醉了,下图是执行结果
     


    在项目工程目录中会多出以下文件
     

    5.可以用test.xcworkspace文件来进行开发   

    原来的工程设置被更改,编译会报错 所以只能用test.xcworkspac来进行项目开发及管理。
     

    三.问题

    问题1: 如果$ pod install后长时间卡在 Analyzing dependencies  可能master内无内容

    解决方法1:
      $ pod repo remove master
      $ pod setup  
    <span style="font-family: Arial, Helvetica, sans-serif;"><span style="font-size:12px;">//需要一段时间 耐心等待 结果如下图</span></span>
     
    最后再到项目目录下执行
    $ pod install
     
    解决方法2:
    到以下地址进行下载
    https://github.com/CocoaPods/Specs
     
    把下载后的文件放到master下
     

    三. 参考资料

    http://code4app.com/article/cocoapods-install-usage
    https://guides.cocoapods.org
     
    实例
    platform :ios, '9.0'
    require_relative '../node_modules/@react-native-community/cli-platform-ios/native_modules'
    
    target 'saafRN_61' do
      # Pods for saafRN_61
      pod 'FBLazyVector', :path => "../node_modules/react-native/Libraries/FBLazyVector"  
      pod 'FBReactNativeSpec', :path => "../node_modules/react-native/Libraries/FBReactNativeSpec"
      pod 'RCTRequired', :path => "../node_modules/react-native/Libraries/RCTRequired"
      pod 'RCTTypeSafety', :path => "../node_modules/react-native/Libraries/TypeSafety"
      pod 'React', :path => '../node_modules/react-native/'
      pod 'React-Core', :path => '../node_modules/react-native/'
      pod 'React-CoreModules', :path => '../node_modules/react-native/React/CoreModules'
      pod 'React-Core/DevSupport', :path => '../node_modules/react-native/'
      pod 'React-RCTActionSheet', :path => '../node_modules/react-native/Libraries/ActionSheetIOS'
      pod 'React-RCTAnimation', :path => '../node_modules/react-native/Libraries/NativeAnimation'
      pod 'React-RCTBlob', :path => '../node_modules/react-native/Libraries/Blob'
      pod 'React-RCTImage', :path => '../node_modules/react-native/Libraries/Image'
      pod 'React-RCTLinking', :path => '../node_modules/react-native/Libraries/LinkingIOS'
      pod 'React-RCTNetwork', :path => '../node_modules/react-native/Libraries/Network'
      pod 'React-RCTSettings', :path => '../node_modules/react-native/Libraries/Settings'
      pod 'React-RCTText', :path => '../node_modules/react-native/Libraries/Text'
      pod 'React-RCTVibration', :path => '../node_modules/react-native/Libraries/Vibration'
      pod 'React-Core/RCTWebSocket', :path => '../node_modules/react-native/'
    
      pod 'React-cxxreact', :path => '../node_modules/react-native/ReactCommon/cxxreact'
      pod 'React-jsi', :path => '../node_modules/react-native/ReactCommon/jsi'
      pod 'React-jsiexecutor', :path => '../node_modules/react-native/ReactCommon/jsiexecutor'
      pod 'React-jsinspector', :path => '../node_modules/react-native/ReactCommon/jsinspector'
      pod 'ReactCommon/jscallinvoker', :path => "../node_modules/react-native/ReactCommon"
      pod 'ReactCommon/turbomodule/core', :path => "../node_modules/react-native/ReactCommon"
      pod 'Yoga', :path => '../node_modules/react-native/ReactCommon/yoga'
    
      pod 'DoubleConversion', :podspec => '../node_modules/react-native/third-party-podspecs/DoubleConversion.podspec'
      pod 'glog', :podspec => '../node_modules/react-native/third-party-podspecs/glog.podspec'
      pod 'Folly', :podspec => '../node_modules/react-native/third-party-podspecs/Folly.podspec'
    
    
    
      permissions_path = '../node_modules/react-native-permissions/ios'
     
      pod 'Permission-BluetoothPeripheral', :path => "#{permissions_path}/BluetoothPeripheral.podspec"
      pod 'Permission-Calendars', :path => "#{permissions_path}/Calendars.podspec"
      pod 'Permission-Camera', :path => "#{permissions_path}/Camera.podspec"
      pod 'Permission-Contacts', :path => "#{permissions_path}/Contacts.podspec"
      pod 'Permission-FaceID', :path => "#{permissions_path}/FaceID.podspec"
      pod 'Permission-LocationAlways', :path => "#{permissions_path}/LocationAlways.podspec"
      pod 'Permission-LocationWhenInUse', :path => "#{permissions_path}/LocationWhenInUse.podspec"
      pod 'Permission-MediaLibrary', :path => "#{permissions_path}/MediaLibrary.podspec"
      pod 'Permission-Microphone', :path => "#{permissions_path}/Microphone.podspec"
      pod 'Permission-Motion', :path => "#{permissions_path}/Motion.podspec"
      pod 'Permission-Notifications', :path => "#{permissions_path}/Notifications.podspec"
      pod 'Permission-PhotoLibrary', :path => "#{permissions_path}/PhotoLibrary.podspec"
      pod 'Permission-Reminders', :path => "#{permissions_path}/Reminders.podspec"
      pod 'Permission-Siri', :path => "#{permissions_path}/Siri.podspec"
      pod 'Permission-SpeechRecognition', :path => "#{permissions_path}/SpeechRecognition.podspec"
      pod 'Permission-StoreKit', :path => "#{permissions_path}/StoreKit.podspec"
    
    
    
    
    
    
      target 'saafRN_61Tests' do
        inherit! :search_paths
        # Pods for testing
      end
    
      use_native_modules!
    end
    
    target 'saafRN_61-tvOS' do
      # Pods for saafRN_61-tvOS
    
      target 'saafRN_61-tvOSTests' do
        inherit! :search_paths
        # Pods for testing
      end
    
    end
  • 相关阅读:
    EKLM3S8962之LED
    [uClinuxdev] detecting stack overflow
    Eclipse换行符
    EKLM3S8962之OLED
    Windows 环境下 GNU ARM 开发环境建立
    关于阻焊层和助焊层的理解
    MISRA C 2004中文版
    对话框托盘程序实现源码
    VC++中四种进程或线程同步互斥的控制方法
    Windows线程同步与互斥技术总结
  • 原文地址:https://www.cnblogs.com/chenzxl/p/13527953.html
Copyright © 2020-2023  润新知