我试图了解整个生态系统的iOS运作方式.
到现在为止,我可以找到大部分问题的答案(相信我,有很多问题),但对于这个问题,似乎还没有明确的答案.
XcodeProject和XcodeWorkspace文件有什么区别?
是的标题说:-)他们用简单的英语语言是什么意思?我真的不明白Apple网站上的解释,我需要重命名我的目标,我担心之后没有任何作用..
我已经通过CocoaPods更新了Flurry,但是如何检查Flurry是否更新了?
我的意思是终端向我展示一切正常:
Installing FlurrySDK (4.2.3)
Generating Pods project
Integrating client project
Run Code Online (Sandbox Code Playgroud)
但我不确定它是否已更新.
我已多次use_frameworks在CocoaPods中使用过Podfile.我只是想知道为什么要使用它?我无法得到它的直接答案.
例:
platform :ios, '8.0'
use_frameworks!
target "CityWhether" do
pod 'Alamofire'
pod 'SwiftyJSON'
end
Run Code Online (Sandbox Code Playgroud) 我正在关注Firebase的互联网教程,作为其中的一部分,我必须在命令行中做一些工作.我对命令行很满意,但我对Cocoapods不熟悉.我跑了pod repo update但是在这之后我意识到我在我的Mac的整个Documents文件夹上运行它而不是包含我的项目的文件夹.我花了20多分钟来执行它,当它最终完成时,它打印出数千种东西,其中一些包括"创建"和"删除".我有点担心 - 除了Firebase项目之外,运行此命令是否修改了我的文档中的任何内容?什么pod repo update甚至可以做到这一点?
看了CocoaPods自己的例子(来自https://guides.cocoapods.org/syntax/podfile.html#abstract_target)
# Note: There are no targets called "Shows" in any of this workspace's Xcode projects
abstract_target 'Shows' do
pod 'ShowsKit'
# The target ShowsiOS has its own copy of ShowsKit (inherited) + ShowWebAuth (added here)
target 'ShowsiOS' do
pod 'ShowWebAuth'
end
# The target ShowsTV has its own copy of ShowsKit (inherited) + ShowTVAuth (added here)
target 'ShowsTV' do
pod 'ShowTVAuth'
end
# Our tests target has its own copy of
# our testing frameworks, and has …Run Code Online (Sandbox Code Playgroud) 我想创建一个基于某些私有代码的本地podspec.我似乎无法使用'source'属性,因为它不起作用.我可以使用'source_files'属性,但它不会递归地包含文件.所以使用看起来像这样的目录
Library
/src
/Core
/Audio
/Graphics
Run Code Online (Sandbox Code Playgroud)
我的podspec看起来像这样:
Pod::Spec.new do |s|
...
s.source = 'src' # this does not work.
s.source_files = 'src' # this only includes the files in src, and not in any of the Core, Audio or Graphics folders.
Run Code Online (Sandbox Code Playgroud)
我想要指定'-r'标志.我尝试过使用通配符,但没有运气.
Xcode有时会自动找到依赖项.当我是那个定义关系的人,当我变得懒惰时,我认为是可以的......
但更多的时候我发现自己面临着一个存在(中等到大尺寸)项目的目标.由于该项目是由其他人制作的,我发现很难理解哪些目标取决于什么,因为并非所有关系都是明确的.
Xcode用于查找此类关系的规则是什么?(我希望我能理解逻辑,所以在我的脑海中运行它并且可能在将来节省一些时间)或者是什么使目标有资格隐含地依赖于另一个?
目标及其创建的产品可能与另一个目标相关.如果目标需要另一个目标的输出以便构建,则说第一个目标依赖于第二个目标.如果两个目标都位于同一工作空间中,Xcode可以发现依赖关系,在这种情况下,它会按所需顺序构建产品.这种关系被称为隐式依赖.
我和Carthage以及Cocoapods都有过一个项目.它们都有一个共同的依赖(PureLayout,确切地说).奇怪,但项目编译好,没有任何关于类重新声明等的错误.所以问题是:当我调用PureLayout的方法 - 迦太基或Cocoapods的方法时,它为什么工作以及实际使用了哪个版本的依赖?
我目前正在开发一个内部使用的框架,但我很难让它发挥得很好.我似乎有的问题是框架使用cocoapods的一些依赖,然后当我试图测试是在一个空白的项目,通过添加它作为子项目然后导入它,它不会建立和抱怨说"不这样的模块'x'".
理想情况下,而不是像它一样的子项目ID纯粹作为一个框架,但我现在只是采取婴儿步骤.
我有这样的结构
target_files/
???target1/
???target2/
???target3/
Run Code Online (Sandbox Code Playgroud)
例如,我只想包括“target2”并排除其他目标。我如何编写spec.exclude_files?
我找到了这个排除文件的例子,但我不明白如何为整个文件夹编写它。
spec.exclude_files = '_private/**/*.{h,m}'
我正在努力寻找一种方法将我们创建的 Xcode 框架打包为一个只能在内部使用的 Pod(不是公开的,也不是在 github 上)。
如何修改.podspec以从我的开发机器上的本地 Xcode 项目构建 SDK?
cocoapod 框架是否需要开源?我在 git 上创建了一个 cocoapod swift 框架。
当我创建一个 ios 应用程序并在我的 Podfile 中配置 pod 信息时。
它工作正常。现在我想保护我的源代码,希望其他人可以使用我的框架,但看不到我的框架源代码。
那可能吗?