RayJiang16 / MyMacroExample

MIT License
0 stars 0 forks source link

有问题 #1

Closed ZClee128 closed 2 weeks ago

ZClee128 commented 2 weeks ago

会提示External macro implementation type 'MyMacroMacros.CaseDetectionMacro' could not be found for macro 'CaseDetection()'

RayJiang16 commented 2 weeks ago

mac芯片是intel还是M系列

ZClee128 commented 2 weeks ago

M系列的

RayJiang16 commented 2 weeks ago

TestPodMarco.zip

试一下这个Demo会不会报错

ZClee128 commented 2 weeks ago

这个不会报错,做了什么处理吗

RayJiang16 commented 2 weeks ago

印象中是没有做什么特殊处理的,你报错的Demo能发一下吗

ZClee128 commented 2 weeks ago

我知道了,我是本地导入的pod 'MyMacroExample', :path=> '/Users/yxd_mbp/Desktop/MyMacroExample',这样导入就会报错, image 就在你的demo上改的pod方式

ZClee128 commented 2 weeks ago

有找到问题吗

RayJiang16 commented 2 weeks ago
  s.pod_target_xcconfig = {
    'OTHER_SWIFT_FLAGS' => '-load-plugin-executable ${PODS_ROOT}/MyMacroExample/macros/MyMacroMacros#MyMacroMacros'
  }
  # 4
  s.user_target_xcconfig = {
    'OTHER_SWIFT_FLAGS' => '-load-plugin-executable ${PODS_ROOT}/MyMacroExample/macros/MyMacroMacros#MyMacroMacros'
  }

本地依赖的方式路径就和 podspec 里面的配置对不上了,所以会报错。

建议是在 macro 库里面的 Tests 测试完发布再接入到工程里面,如果要用本地依赖需要改 podspec 里面的这两个配置,把路径指向到你本地的 macro 库中

ZClee128 commented 2 weeks ago

但是不是都是在PODS_ROOT路径里吗

RayJiang16 commented 2 weeks ago

不是的,PODS_ROOT指的是工程下的Pods文件夹,本地依赖的时候实际位置是pod file里面指定的路径,即'/Users/yxd_mbp/Desktop/MyMacroExample'

ZClee128 commented 2 weeks ago

好的,感谢这么耐心为我解答

ZClee128 commented 2 weeks ago

我在正常宏的测试代码,代码扩展是正确的 image 但是我打包成二进制,传到pod,之后使用 代码扩展就错误了 image 能知道是什么原因吗

ZClee128 commented 2 weeks ago

正常默认值应该是[:], 不应该是[String: Any].defaultValue

RayJiang16 commented 2 weeks ago

信息太少了,我也不知道你的宏是怎么写的,上下两段截图也不是用的同一份代码做的测试。

正常来说测试通过再打包发布是没问题的,pod依赖别用分支,用版本号确认pod更新成功了。

ZClee128 commented 2 weeks ago

已经解决了,感谢你的帮助