使用xcode内置工具
创建一个空的工程,导入DevToolsCore.framework 工具
-
使用 DevToolsCore.framework 工具,它的位置在 /Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks/DevToolsCore.framework
-
copy framework 放到根目录,拖到项目里面,运行报错:
dyld[78893]: Library not loaded: @rpath/DVTPortal.framework/Versions/A/DVTPortal
Referenced from: /Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DevToolsCore.framework/Versions/A/DevToolsCore
Reason: tried: '/Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DVTPortal.framework/Versions/A/DVTPortal' (no such file), '/usr/lib/swift/DVTPortal.framework/Versions/A/DVTPortal' (no such file), '/Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DevToolsCore.framework/Versions/A/../../../../../../../Developer/Toolchains/XcodeDefault.xctoolcha in/usr/lib/DVTPortal.framework/Versions/A/DVTPortal' (no such file), '/Library/Frameworks/DVTPortal.framework/Versions/A/DVTPortal' (no such file), '/System/Library/Frameworks/DVTPortal.framework/Versions/A/DVTPortal' (no such file)
config 添加
LD_RUNPATH_SEARCH_PATHS = "/Applications/Xcode.app/Contents/SharedFrameworks"
之后运行运行 报错
dyld[79170]: Library not loaded: @rpath/libclang.dylib
Referenced from: /Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DevToolsCore.framework/Versions/A/DevToolsCore
Reason: tried: '/Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/libclang.dylib' (no such file), '/usr/lib/system/introspection/libclang.dylib' (no such file), '/usr/lib/swift/libclang.dylib' (no such file), '/Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DevToolsCore.framework/Versions/A/../../../../../../../Developer/Toolchains/XcodeDefault.xctoolchain/usr/lib/libclang.dylib' (no such file), '/Applications/Xcode.app/Contents/SharedFrameworks/libclang.dylib' (no such file), '/Applications/Xcode.app/Contents/SharedFrameworks/libclang.dylib' (no such file), '/usr/local/lib/libclang.dylib' (no such file), '/usr/lib/libclang.dylib' (no such file)
添加
"/Applications/Xcode.app/Contents/Frameworks"
LD_RUNPATH_SEARCH_PATHS = "/Applications/Xcode.app/Contents/SharedFrameworks" "/Applications/Xcode.app/Contents/Frameworks"
之后运行报错
dyld[79194]: Library not loaded: @rpath/DevToolsFoundation.framework/Versions/A/DevToolsFoundation
Referenced from: /Users/mac/Library/Developer/Xcode/DerivedData/PBMod-djxgycjjyrqllzhanugnfxhrtvkg/Build/Products/Debug/DevToolsCore.framework/Versions/A/DevToolsCore
Reason: tried:
添加
LD_RUNPATH_SEARCH_PATHS = "/Applications/Xcode.app/Contents/SharedFrameworks" "/Applications/Xcode.app/Contents/Frameworks" "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks"
运行成功 。
framework 拖到项目工程里面做了什么事情
framework 拖到项目工程里面 主要做了两件事情
1、配置了 framework search paths 2、配置了 ld (链接器 )-framework -framework DevToolsCore (输出 link pbmod 里面找到)
此时删掉拖入本地的framework ,配置以上两项 ,去xcode里面找到 DevToolsCore FRAMEWORK_SEARCH_PATHS = "/Applications/Xcode.app/Contents/PlugIns/Xcode3Core.ideplugin/Contents/Frameworks" OTHER_LDFLAGS = -framework DevToolsCore
第三步 添加头文件 DevToolsCore
main.h import “PBXProject.h” 报错 'DevToolsCore/PBXContainer.h' file not found
因为此时的头文件放到项目中,引用方式是相对路径,所以就是找不到<DevToolsCore/PBXContainer.h>
配置项 HEADER_SEARCH_PATHS = “${SRCROOT}”
之后编译报错 'PBXProject.h' file not found,需要修改为 “DevToolsCore/PBXProject.h”
继续编译 报错'NSObject.h' file not found,iOS 项目里面 xcode会自动导入nsobject文件,但是macos项目调用不到 ,所以要更换成
#import <Foundation/Foundation.h>,不行的继续替换成 #import <Foundation/Foundation.h>,
第四步 编写代码
PBXProject *project = [PBXProject projectWithFile:@"/Users/mac/Documents/doc/lg-video/V17/工程化实战/03/LGApp/LGApp.xcodeproj"];
运行会报错,因为这个API是ide的API,所以找不到,参考前人经验找了ide初始化方法, IDEInitialize的实现,所以需要初始化,
加上初始化代码 编译报错
Undefined symbols for architecture x86_64: "_IDEInitialize", referenced from: _main in main.o clang: error: linker command failed with exit code 1 (use -v to see invocation)
需要骗一下linker 遇到这个 _IDEInitialize 符号不需要管,直接放过去,所以加上以下噢诶之参数
配置 -Xlinker -U -Xlinker _IDEInitialize
就ok了
ruby
通过rvm 安装ruby ,使用rvm来管理ruby的版本
rvm install 3.0.0
rvm list
rvm lisk know
rvm use 3.0.0
切换源
echo "ruby_url=https://cache.ruby-China.com/pub/ruby" > ~/.rvm/user/db
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
dns解析污染,host文件配置
199.232.68.133 raw.githubusercontent.com
199.232.68.133 user-images.githubusercontent.com
199.232.68.133 avatars2.githubusercontent.com
199.232.68.133 avatars1.githubusercontent.com