1.构建一个Workspace
1.png如图选择构建一个WorkSpace,会生成.xcworkspace文件,以后就通过打开这个文件来打开WorkSpace。打开工程,会发现什么都没有,然后我们要添加各个工程(project)。我现在创建一个名为Myworkspace.xcworkspace的文件放在文件夹Workspace中。
2.创建并添加新工程
方法一:双击打开Myworkspace.xcworkspace,然后新建MyApp1工程,如下图,图中的红色框框内要记得改
2.png 3.png方法二,如果已经有创建好了的工程,可以用这种方法添加进来。
先把创建好的工程MyApp2整个文件夹拖到文件夹Workspace中,然后在Xcode文管理文件的面板里,右键选择添加新文件,就把项目的MyApp2.xcodeproj文件加进来就可以了
重复上述动作,把所有需要的项目都加进来。虽然添加项目是可以任意路径的,但是建议把所有要添加的项目放到同一个文件夹里,这样便于像header search paths这类的路径配置。
3.互相引用
如果要在项目MyApp1中引用MyApp2中的文件,则必须要修改路径。在MyApp1的Build Settings 里找到Header Search Paths,添加一项$(SRCROOT)/../MyApp2(也可以直接将文件夹MyApp2拖到里面自动生成路径),并且设置为recursive。$(SRCROOT)是当前的工程路径,..是返回上一层,然后到MyApp2文件夹。使用了相对路径,为了是项目移动不会影响这个配置,只要主工程和其他工程的相对位置不变,这里的相对位置是固定在同一个文件夹。
7.png接下来是引用文件
8.png 9.png 10.png引入头文件时如果不引入.m文件会报错(如果是静态库可以引入.a文件,同时要公开.h文件,这样就不会报错了)
4.使用cocoaPods管理
用终端cd到根目录,用 $ touch Podfile命令创建Podfile文件,然后用xcode打开编辑
11.png 12.pngworkspace 'MyWorkspace.xcworkspace' //workspace文件名
project 'MyApp2/MyApp2.xcodeproj' //主工程路径
target 'MyApp2' do
platform :ios, '8.0'
project 'MyApp2/MyApp2.xcodeproj' //工程路径
pod 'Masonry', '~> 1.0.2'
end
target 'MyApp1' do
platform :ios, '8.0'
project 'MyApp1/MyApp1.xcodeproj' //工程路径
pod 'Masonry', '~> 1.0.2'
pod 'AFNetworking', '~> 3.1.0'
end
最后执行$ pod install指令就OK了
如果出现以下错误
则在header search paths中添加$(inherited)即可(或者先执行步骤4再执行步骤3也可避免此问题)
14.png
demo地址
网友评论
target 'MyApp2' do
platform :ios, '8.0'
project 'MyApp2/MyApp2.xcodeproj' //工程路径
pod 'Masonry', '~> 1.0.2'
end
"_OBJC_CLASS_$_TestObject", referenced from:
objc-class-ref in ViewController.o
ld: symbol(s) not found for architecture x86_64
clang: error: linker command failed with exit code 1 (use -v to see invocation)
按照你的做法,调用testObject方法会报错?怎么回事
第二个,可否把demo共享一下