Podfile 指定 Workspace

优质
小牛编辑
125浏览
2023-12-01

Podfile指定Workspace

在已有的.xcworkspace项目中集成CocoaPods

  1. 项目准备

     .
     ├── App
     │   ├── App
     │   │   ├── App.entitlements
     │   │   ├── AppDelegate.h
     │   │   ├── AppDelegate.m
     │   │   ├── Assets.xcassets
     │   │   │   ├── AccentColor.colorset
     │   │   │   │   └── Contents.json
     │   │   │   ├── AppIcon.appiconset
     │   │   │   │   └── Contents.json
     │   │   │   └── Contents.json
     │   │   ├── Base.lproj
     │   │   │   └── Main.storyboard
     │   │   ├── Info.plist
     │   │   ├── ViewController.h
     │   │   ├── ViewController.m
     │   │   └── main.m
     │   └── App.xcodeproj
     │       ├── project.pbxproj
     │       ├── project.xcworkspace
     │       │   ├── contents.xcworkspacedata
     │       │   ├── xcshareddata
     │       │   │   └── IDEWorkspaceChecks.plist
     │       │   └── xcuserdata
     │       │       └── shenyj.xcuserdatad
     │       │           └── UserInterfaceState.xcuserstate
     │       └── xcuserdata
     │           └── shenyj.xcuserdatad
     │               └── xcschemes
     │                   └── xcschememanagement.plist
     ├── Demo.xcworkspace
     │   ├── contents.xcworkspacedata
     │   ├── xcshareddata
     │   │   └── IDEWorkspaceChecks.plist
     │   └── xcuserdata
     │       └── shenyj.xcuserdatad
     │           └── UserInterfaceState.xcuserstate
     ├── LibA
     │   ├── LibA
     │   │   ├── Info.plist
     │   │   └── LibA.h
     │   └── LibA.xcodeproj
     │       ├── project.pbxproj
     │       ├── project.xcworkspace
     │       │   ├── contents.xcworkspacedata
     │       │   ├── xcshareddata
     │       │   │   └── IDEWorkspaceChecks.plist
     │       │   └── xcuserdata
     │       │       └── shenyj.xcuserdatad
     │       │           └── UserInterfaceState.xcuserstate
     │       └── xcuserdata
     │           └── shenyj.xcuserdatad
     │               └── xcschemes
     │                   └── xcschememanagement.plist
     └── LibB
         ├── LibB
         │   ├── Info.plist
         │   └── LibB.h
         └── LibB.xcodeproj
             ├── project.pbxproj
             ├── project.xcworkspace
             │   ├── contents.xcworkspacedata
             │   ├── xcshareddata
             │   │   └── IDEWorkspaceChecks.plist
             │   └── xcuserdata
             │       └── shenyj.xcuserdatad
             │           └── UserInterfaceState.xcuserstate
             └── xcuserdata
                 └── shenyj.xcuserdatad
                     └── xcschemes
                         └── xcschememanagement.plist
    
     38 directories, 33 files
    
    • 有3个Project, 分别是: AppLibALibB, LibALibB服务于App
    • 3个ProjectDemo.xcworkspace管理
  2. 默认在集成CocoaPods时, 会自动为我们创建一个与项目同名的工作区

  3. 创建并配置Podfile文件

    • 进入到App.xcodeproj统计目录, 执行pod init
    • 配置Podfile

        platform :macos, '11.1'
      
        # 指定workspace
        workspace '../Demo.xcworkspace'
        # 主工程
        project 'App.xcodeproj'
      
        target 'App' do
        # Comment the next line if you don't want to use dynamic frameworks
        use_frameworks!
      
        # Pods for App
        pod 'AFNetworking'
      
        end
      
        target 'LibA' do
            project '../LibA/LibA.xcodeproj'
      
            use_frameworks!
      
        end
      
        target 'LibB' do
            project '../LibB/LibB.xcodeproj'
      
            use_frameworks!
        end
      
      • 关键参数workspaceproject
      • xcodeprojCocoaPods 1.0下过期, 在之后版本使用project
  4. 执行pod install完成配置

  5. 配置完CocoaPods后会发现主工程有两个引用, 而且不论将Podfile放在.xcworkspace下还是主工程目录内, 都会这样, 手动删除一个即可