我已经构建了一个可在cocoapods上使用的iOS SDK,以及一个不想使用cocoapods的人手动下载。当您通过cocoapods安装SDK时,它会自动将“-ObjC”值添加到构建设置Other Linker Flags中。
我相信没有办法以编程方式写入构建设置(尽管如果我错了请纠正我,因为那会很棒)。但是,我想知道是否有办法以编程方式读取构建设置。
我想从我的SDK中的构建设置中读取,然后如果用户未在其他链接器标志中添加“-ObjC”,则会显示一条错误消息,告知他们这样做。
我已经指定需要在我的SDK文档中向其他链接器标志添加“-ObjC”,但是我有一些用户错过了这一部分,所以我希望在Xcode中通知他们他们的错误
答案 0 :(得分:1)
我不认为你可以阅读设置文件,但有一个巧妙的伎俩:
您可以向类添加类别方法并检查它是否存在。原因是未使用的类别方法在没有Obj-C标志的情况下不会被链接。
所以你可以做点什么
-(BOOL) isObjCFlagSet
{
return [[NSString alloc] init] respondsToSelector: @selector(myLibName_TestLinkerFlag)];
}
只是为了获得一个空的选择器,然后看看它是否在其他地方的运行时可用:
<li><%= link_to "Shifts", user_shifts_path(@user) %></li>