【发布时间】:2015-04-30 05:04:08
【问题描述】:
我正在尝试为 PayPal 静态库添加前缀,以便实现我们框架的客户端能够使用它的不同版本。我一直在关注this article 和this post,但我遇到了一些问题。
- 我创建了一个目标并将 libPayPalMobile.a 添加到与二进制库的链接。
- 我已经添加了上面教程中提到的run script。
- 我已将目标作为依赖项添加到项目中。
NamespacedDependencies.h 生成后,我在 Externs 部分看到了一些不需要的符号:
// Externs
#ifndef k1PasswordButtonWidth
#define k1PasswordButtonWidth __NS_SYMBOL(k1PasswordButtonWidth)
#endif
#ifndef k1PasswordButtonRightMargin
#define k1PasswordButtonRightMargin __NS_SYMBOL(k1PasswordButtonRightMargin)
#endif
l002
l003
l004
l003
l004
l005
l006
l001
l007
l002
l008
l003
l009
l010
l007
l011
l004
l012
l008
l009
l005
l010
l011
l003
l012
l004
l003
l005
l013
l003
l006
l004
l014
l003
l015
l007
l004
l016
l004
l008
l001
l005
l005
l002
...
我想我可以使用 grep -v "l[0-9]{0,5}" 删除这些,但它们似乎被上面的符号转储了,这意味着我不能简单地过滤掉这些。
显然,问题是我什至无法编译,因为我收到了Parse Issue: Unknown type name l002。
知道这些邪恶的东西是什么以及如何摆脱它们吗?
编辑: 这是脚本的外部部分:
echo "// Externs" >> $header
nm $CODESIGNING_FOLDER_PATH | sort | uniq | grep " D " | cut -d' ' -f3 | grep -v "\$_NS" | grep -v "\$_UI" | sed -e 's/_\(.*\)/#ifndef \1\'$'\n''#define \1 __NS_SYMBOL(\1)\'$'\n''#endif\'$'\n''/g' >> $header
nm $CODESIGNING_FOLDER_PATH | sort | uniq | grep " S " | cut -d' ' -f3 | grep -v "\$_NS" | grep -v ".eh" | grep -v "\$_UI" | grep -v "OBJC_" | sed -e 's/_\(.*\)/#ifndef \1\'$'\n''#define \1 __NS_SYMBOL(\1)\'$'\n''#endif\'$'\n''/g' >> $header
【问题讨论】:
标签: ios objective-c xcode paypal static-libraries