上一章讲了xcode 生成产品的进程及途径配备,还有 xcodeproj文件作用。今日来了解Xcode内置东西及pods调试。
一、Xcode内置东西
先来看看Xcode内置PlugIns有哪些:


核心问题来了
(ps:让我想到<一休哥>多动脑思考一下):
1.假设我们能调用这个系统动态库dyld(DevToolsCore)
2.经过系统动态库来调用内置东西
3.比方修正xcodeproj文件比较,举一反三。
1.将系统动态库导入Xcode
- 将系统动态库拖入Xcode中时可能会运转报错:
dyld[20219]: Library not loaded:
@rpath/DVTPortal.framework/Versions/A/DVTPortal
-
@
rpath
:framework在真机中的途径(真机中选用@rpath + framework中要调用的类的途径) -
解决方法:找到链接不到的framework地点途径,配备给
Runpath Search Paths
(多个framework找不到可能要添加多个途径) 配备Config.xcconfig文件环境变量
LD_RUNPATH_SEARCH_PATHS = "/Applications/Xcode.app/Contents/SharedFrameworks" "/Applications/Xcode.app/Contents/Frameworks" "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks"
FRAMEWORK_SEARCH_PATHS = "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks"
-
ld -framework
:运用Other Linker Flags
告知链接器要链接的framework称谓
OTHER_LDFLAGS = -framework DevToolsCore -Xlinker -U -Xlinker _IDEInitialize
-
Xlinker
:后面接的参数是直接传给链接器的,而非Clang了 -
-U
:要求链接器不要查看后边的符号(例中为_IDEInitialize符号) - 告知连接器忽略_IDEInitialize这个符号过错。
- 配备
Header Search Paths
,让工程能按途径找到这些头文件(留心假设在Build Settings中手动改了会影响Config文件收效)
HEADER_SEARCH_PATHS = "${SRCROOT}"
2.在编写功用代码(模拟将文件拖入工程)
int main(int argc, const char * argv[]) {
NSError *error;
BOOL initialized = IDEInitialize(1, &error);
PBXProject *project = [PBXProject projectWithFile:@"xxxxxx"];
[[project rootGroup] addFiles:@[@"xxxxx.h"] copy:NO createGroupsRecursively:NO];
[project writeToFileSystemProjectFile:YES userFile:NO checkNeedsRevert:NO];
NSLog(@"%@", project);
return 0;
}
编译成功:

二、pods调试

1.ruby环境配备
也可参看ruby设备,现已设备或许会的同学就越过。
1.gem info ruby-macho
2.ruby -v //查看版别
3.rvm list
4.bat ~/.zshrc //查看环境变量
5.vim ~/.bashrc //创立一个配备环境变量文件
6.source ~/.zshrc
7.echo $PATH
8.gem sources --add https://mirrors.tuna.tsinghua.edu.cn/rubygems/ --remove https://rubygems.org/
bundle config mirror.https://rubygems.org https://mirrors.tuna.tsinghua.edu.cn/rubygems
进程中遇到的问题调集:

rvm list known //具体可以支撑版别
rvm install 2.7.3
//假设rvm 版别过旧更新
\curl -sSL https://get.rvm.io | bash -s stable
rvm -v
2.国内宽厚的改镜像地址


Ruby
Ruby Solargraph
Error Lens

//验证是否设备 插件
gem info bundler
gem info ruby-debug-ide
gem info debase
gem info rubocop
gem info solargraph
gem info rake
//没有设备就履行
gem install ruby-debug-ide
//确保这些插件设备成功
//假设solargraph 无效履行如下代码
brew install coreutils
//查看设备途径
which solargraph
参看学习了:RVM 的设备和运用
2.pods调试
接下来,我们在xcode里用ruby调试pods。 留心:xcode的Ruby插件作用就是会生成一个调试文件launch.json

1.配备VsCode-ruby

1.bundle:的指令,在VSCode中也需要用(Gemfile)配备文件编写


2.pods调试
运用VSCode翻开CocoaPods-master

bundle install
运转好久后:

Uncaught exception: You have already activated rake 13.0.3, but your Gemfile requires rake 12.3.3. Prepending `bundle exec` to your command may solve this.
[/Users/xx/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:309](<> [/Users/xx/.rvm/rubies/ruby-3.0.0/lib/ruby/site_ruby/3.0.0/bundler/runtime.rb:25](<>

{
"version": "0.2.0",
"configurations": [
{
"name": "Debug xcodeproj",
"type": "Ruby",
"request": "launch",
"program": "${workspaceRoot}/CocoaPods-master/bin/pod",
"args":[
"install",
"--project-directory=./LGApp"
]
}
]
}

声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。