我很高兴得到私人CocoaPods回购工作。我的小内部库的v1.0与我的主应用程序一起工作就像一个魅力。然后我在库中添加了一些东西,提交了它,用v1.1标记了它,把它推了起来,一切都直奔地狱。
无论我做什么,即使我的主应用程序报告我的内部库指向1.1
,我仍然会收到与1.0
相同的代码。我很难过。
我已经验证的事情:
.podspec
个文件都具有相应的s.version
podspec
文件的文件进行了比较,并确认对文件的唯一更改是版本号。 git checkout tags/1.1
并确认1.1
标记包含相应的提交。 1.1
的标记已在此处显示。 我还尝试了以下方法来解决它(我现在可以记住)并且仍然在Pod中添加了相同的代码。
pod update
将其删除,重新添加,然后再次运行pod update
。 ~/Library/Caches/CocoaPods
和[ProjectRoot]/Pods
并运行pod install
。 pod repo remove [NAME]
删除我的远程pod repo,然后以其他名称重新添加。 所有这些疯狂都指向git或Xcode的某种缓存问题,但是以详细模式运行CocoaPods似乎不会显示除第二个pod update
之外删除的超临时缓存路径以外的任何内容已经完成了。
有人有任何进一步的建议吗?这让我开始香蕉。
更新1/24:我在一个单独的用户名下检查了代码并得到了一些奇怪的行为:
pod install
Analyzing dependencies
Downloading dependencies
Installing [Private Library] (1.0)
Installing Google-Mobile-Ads-SDK (6.7.0)
Installing LARSAdController (3.0.3)
Installing UIAlertView-Blocks (0.0.1)
Generating Pods project
Integrating client project
[!] From now on use `[App Name].xcworkspace`.
有趣的是,我想,即使我没有在Podfile中指定任何版本,它也抓住了1.0版本。然后我跑了:
pod update
Analyzing dependencies
Downloading dependencies
Installing [Private Library] (1.1)
Using Google-Mobile-Ads-SDK (6.7.0)
Using LARSAdController (3.0.3)
Using UIAlertView-Blocks (0.0.1)
Generating Pods project
Integrating client project
即使版本号递增,代码也不会改变。所以这指向了我搞砸了而不是缓存问题 - 但如果我这样做了,为什么它到底会抓到1.0版呢?有什么想法吗?
答案 0 :(得分:3)
Welp,这是一个PEBKAC /没有看到树木问题的森林,当我试图放弃并切换到git子模块并看到似乎是同样的问题时,我意识到了这一点。
我将CocoaPod指向/[Project Root]/Library
(当我尝试移动到git子模块时,最初在那里查看),但当我将该文件夹拖到库项目中的Xcode时,我' d选中了“将项目复制到目标组的文件夹(如果需要)”复选框。这创建了/[Project Root]/[Subfolder]/Library
,我的所有更改都实际。一旦我解决了这个问题,惊喜一切,一切正常。
所以,呃,我想这里的教训是,如果你已经在兔子洞的这个地方走了很远的地方,请退后一步确保甚至还有一只兔子需要追逐开始。