- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
具有以下项目结构:
CocoaPods 是否支持这种设置?
我的第一次尝试是做这样的事情:
platform :ios, '9.0'
use_frameworks!
target 'App' do
workspace 'App.xcworkspace'
project 'App.xcodeproj'
pod 'Material'
end
target 'Framework' do
workspace 'App.xcworkspace'
project 'Framework/Framework.xcodeproj'
pod 'AFNetworking'
end
但应用程序在启动时崩溃并出现以下错误:
dyld: Library not loaded: @rpath/AFNetworking.framework/AFNetworking
Referenced from: /Users/ruenzuo/Library/Developer/Xcode/DerivedData/App-aayvulxvruuarudtheuilepmmctk/Build/Products/Debug-iphonesimulator/Framework.framework/Framework
Reason: image not found
这是有道理的,因为 CocoaPods 不知道 App 和 Framework 是相关的。事实上,在 pod install 之后我收到以下警告:
[!] The Podfile contains framework targets, for which the Podfile does not contain host targets (targets which embed the framework).
If this project is for doing framework development, you can ignore this message. Otherwise, add a target to the Podfile that embeds these frameworks to make this message go away (e.g. a test target).
然后我尝试将框架目标嵌入到应用程序目标中,如下所示:
platform :ios, '9.0'
use_frameworks!
target 'App' do
workspace 'App.xcworkspace'
project 'App.xcodeproj'
pod 'Material'
target 'Framework' do
workspace 'App.xcworkspace'
project 'Framework/Framework.xcodeproj'
pod 'AFNetworking'
end
end
但是没有用。我设法让它工作的唯一方法是:
platform :ios, '9.0'
use_frameworks!
target 'App' do
workspace 'App.xcworkspace'
project 'App.xcodeproj'
pod 'Material'
pod 'AFNetworking'
end
target 'Framework' do
workspace 'App.xcworkspace'
project 'Framework/Framework.xcodeproj'
pod 'AFNetworking'
end
但是重复 AFNetworking pod 感觉就像我做错了什么。此外,我没有设法消除警告,所以显然我只是通过让 CocoaPods 将 AFNetworking pod 复制到应用程序框架目录来强制它工作。
有没有人设法让这样的东西工作?
最佳答案
诀窍是将框架目标添加到应用程序目标的“目标依赖项”构建阶段,如下所示:
出于某种原因,CocoaPods 依赖于“目标依赖项” - 让您的库/框架处于“与二进制库链接” 阶段是不够的。您的 Podfile
应该如下所示:
project 'CocoapodsTest'
target 'CocoapodsTest' do
pod 'AFNetworking'
end
target 'SampleLibrary' do
pod 'Masonry'
end
运行 pod install
后,您可以检查应用程序目标的“其他链接器标志”,以验证它是否将您的应用程序和库的依赖项转发到链接器:
关于ios - 如何正确设置同时具有框架目标和使用该框架的应用程序目标的 Podfile,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43400739/
最近接手一个iOS项目,有框架,用的是CocoaPods。我正在尝试复制此设置,以便更好地理解。 它有两个框架(作为 Xcode 项目),名为 RaterCommon 和 RaterAPIKit。 这
我正在尝试确定是否需要在我的 Podfile 中指定版本。据我所知,Podfile.lock 正在为我做这件事,所以我认为没有必要用版本更新 Podfile。我错过了什么吗? 最佳答案 具体是什么版本
我正在尝试更新 podfile 中的三个 pod。我无法弄清楚为什么 Podfile.lock 版本号和 获取的版本号 pod [podfile] --version 命令给出不同的结果。我尝试清理
我正在尝试使用 npm React Native Flurry Analytics 为 React Native 安装 Flurry 这是我的 pod 文件: target 'myApp' do
我使用终端创建 podfile: $ cd /Users/user_name/Desktop/CocoaPodsTest $ touch Podfile 但我在 finder 中找不到 podfile
您好,我正在尝试添加 https://github.com/fxm90/GradientLoadingBar/tree/feature/notch-gradient-loading-bar在我的 Xc
我从 git 克隆了一个存储库。然后删除 .git 和 .gitignore。 podFile 看起来像 platform :ios, '6.1' pod 'AFNetworking', '~>1.3
在firebase nativescript中,我已经完成了给出的所有步骤,并推送了通知,该操作适用于Android。 在iOS应用中,当我尝试将应用放入itunesconnect时,它弹出错误。但是
我正在尝试 pod 更新,但收到此错误 [!] Invalid Podfile file: [!] Cannot set inheritance for abstract target definit
这是我的 podfile platform :ios, '7.0' pod 'Mantle' pod 'LBBlurredImage' pod 'TSMessages' pod 'ReactiveCo
我已经安装了 Cocoapods,运行 pod setup,创建了一个 pod 文件,然后当我尝试安装它时,出现以下错误。 fatal: Not a git repository (or an
我已将我的操作系统从 Mac Os Sierra 降级到 el Capitan,因此所有文件都已从我的系统中删除,但我已经备份了我的项目。现在,当我打开我的项目以运行 .Workspace 文件时,它
我正在使用 CocoaPods 安装特定版本的 AFNetworking。我的播客文件如下: # Uncomment this line to define a global platform for
我安装了最新的 cocoapods 并在我的项目中运行了 pod init。我用 textedit 手动打开文件,它看起来像这样: # Uncomment this line to define a
有没有什么办法可以通过podfile为单个target添加多平台支持? 例如,我的项目在 iOS 和 Mac 上都是通用的。他们使用相同的代码库。因此,我没有为同一代码创建多个目标,而是在同一目标中添
我的项目使用的是 Swift 2.0。我尝试了所有可能的方法,但没有找到任何解决方案。 我的pod文件 # Uncomment this line to define a global platfor
我正在尝试将 Google 移动广告 SKD 安装到我的 Xcode 项目中。我安装了 Cocoapods,然后将 Podfile 初始化到我的项目中: # Uncomment the next li
具有以下项目结构: 应用程序目标驻留在 Xcode 项目 (App.xcodeproj) 上,依赖于驻留在不同 Xcode 项目 (Framework.xcodeproj) 上的框架目标。 应用目标取
我正在准备一个支持 OS X 和 iOS 的 pod。我的 pod 有一些自己的依赖项,这些依赖项在 podspec 文件中定义,因此我使用 Podfile 来管理我用来开发 pod 和运行测试的项目
如何读取 podfile 中定义的变量?例如, platform :ios, '8.0' $myversion = ‘1.0’ target 'rubytest' do pod 'AFNetworki
我是一名优秀的程序员,十分优秀!