美文网首页
iOS组件化之组件创建(公有库)

iOS组件化之组件创建(公有库)

作者: KeyboardDirver | 来源:发表于2019-10-06 13:15 被阅读0次

    最近时间不充裕重复的内容我就不写了,下面是我按照这片文章使用过程中遇到的问题,和一些细节的补充。在这里十分感谢作者,链接如下
    iOS组件化
    这个是远程公开库的创建,还有一种是远程私有库配合本地私有reop的创建方法(项目中需要使用的)本文可以用来做pod 和git的初级使用说明

    第一个问题

    在上文“ 三、关联git”中进行到

    //关联不上我的githug仓库
    git remote add origin  仓库地址
    
    //报错没有及时记录抱歉 没有记错有这个错误
    //There are no SSH keys associated with your account.  
    //就是没有设置免登录的公钥。使用clone 后我使用的https 账号密码登录。
    
    

    我的操作是直接在终端中
    cd 到项目目录
    执行git clone
    然后 git push origin master -f
    这是刷新github上的仓库页面就会看到新代码。

    第二个问题

    文中省略的TRUNetworking 关联git
    在执行 git remote add origin 时遇到了 fatal: remote origin already exists.

    解决方法:
    先输入git remote rm origin 再执行 git remote add origin 仓库地址

    第三个问题 替换两个地址什么意思
    6879404-2aa9476dde0ee4e7.png

    该描述没什么好说的,但是替换地址,开始有点蒙。想了下是要修改为知己github仓库的地址。
    在你的仓库中点击clone or download (注意两个地址一个有.git 一个没有)
    寻找的位置如下图


    屏幕快照 下午10.26.39.png
    问题四 检查podspec是否正确时 终端出现如下错误
    //在终端中执行
    pod lib lint --verbose
    //错误如下
    xcrun: error: unable to find utility "simctl", not a developer tool or in PATH
    
    xdrun_error.png

    解决方案就是去xcode设置里面,将Command line Tools设置一下,在Xcode>preferences>Locations里面,设置(command line tools)之后再运行终端即可 解决原文链接

    问题五 检查podspec是否正确时 终端出现如下错误
    //在终端中执行
    pod lib lint --verbose
    

    错误如下


    屏幕快照上午11.37.59.png

    问题的愿因时我没有给这个组件在github的仓库设置为Publish,而是设置了Private。

    解决上面连个问题最终 成功!!!!!!


    屏幕快照 下午4.56.59.png
    问题六 提交trunk版本的时候
    //在终端执行
    pod trunk push TRUNetworking.podspec --verbose
    

    出现如下提示


    屏幕快照 下午5.06.02.png

    你需要注册trunk

    //在终端执行 执行过着步骤你的邮箱会收到一个链接点击即可
    pod trunk register zilin_weng@163.com 'weng1250'  --verbose
    //zilin_weng@163.com 你接收邮件的邮箱 
    //weng1250    你起的名字
    
    //在点击邮件中的链接后执行
    pod trunk me
    
    

    iOS:手把手教你发布代码到CocoaPods(Trunk方式)

    注册好了,哈哈这次再次在终端中执行

    pod trunk push TRUNetworking.podspec --verbose
    

    结果如下


    屏幕快照 下午5.17.27.png

    好(F)开(U)心(C)哦(K)
    哈哈,我的账号没有提交的权限。
    按照上面的步骤重复创建一个自己的组件吧,最后成功。


    屏幕快照下午5.39.19.png
    问题七 在更新组件的时候
    屏幕快照 上午10.12.20.png
    Unable to determine Swift version for the following pods:
    SWIFT_VERSION
    解决方法
    思考

    1.如何理解组件间的相互依赖。比如 TRULongining必须倒入依赖的 TRUNetworking。
    答:在spec文件是使用dependency 设置三房库依赖 并不会对其他组件带来影响,比如项目中有两个库要依赖 AFN。pod只会给你pod一个AFN。
    2.组件中如何进行通信,传递数据。
    答:组件见通讯,有许多知名三方,比如CTMedia MGJRouter等。各具特色,找到一个适合自己项目的。
    3.如何分离出不同的组件。
    答:可以分为 功能组件 基础组件 业务组件三大类
    4.如何对资源引用(图片、视频等)
    答:NSBundle * selfBundle = [NSBundle bundleForClass:[self class]];
    NSString * imagePath = [selfBundle pathForResource:@"image1" ofType:@"png"]; 使用如下方法可以找到对应的资源。
    方法二:
    在 storyboard/xib 中可以直接访问图片,代码中访问的方法如下:
    UIImage *image = [UIImage imageNamed:@"YourFramework.framework/imageName"]
    注意:使用代码方式访问的图片不可以放在 xcassets 中,否则得到的将是 nil。并且文件名必须以 @2x/@3x 结尾,大小写敏感。因为 imageNamed: 默认在 main bundle 中查找图片。

    相关文章

      网友评论

          本文标题:iOS组件化之组件创建(公有库)

          本文链接:https://www.haomeiwen.com/subject/aijmiqtx.html