【问题标题】:Share the code in a secure way Objective-C以安全的方式共享代码 Objective-C
【发布时间】:2010-10-29 14:17:58
【问题描述】:

只是我很好奇。 我已经为 Objective-C 类(NSObject、NSDictionary、NSString...)创建了很多方便的类别,只要是非常有趣的子类,它们在 iPhone/iPad 编程中实现了很多流行的任务,就像只放一行代码或触发一个方法。

我想与其他人共享此代码,但问题是,我不希望他们看到真正的代码,只要我花费数小时创建它。也许将来我也想出售这段代码。

所以让我们假设文件名为 Extensions 并分为两个文件: Extensions.h(其中大约有 100 个标头)和 Extensions.m - 它们的实现。 我想以 Extensions.h 100% 公开的方式分发此类 - 开发人员看到我放入该文件中的代码,因此他知道如何使用这些扩展,但 Extensions.m 不应该作为代码,但作为一个库或类似的东西。

我还想让自定义项目中的上述实现尽可能简单。最好的方法是在标题中拖放和#import Extensions.h。

我期待听到您的建议。 问候 克里斯

【问题讨论】:

    标签: iphone class frameworks categories


    【解决方案1】:

    Flurry 这样做...他们分发一个带有标题的 .h 文件和一个带有代码的 .a 文件。所以看起来你可以编译一个 .a 文件进行分发。

    【讨论】:

    • 嗯。我刚刚使用 Library/Cocoa Touch 静态库模板创建了我的扩展包。添加了这两个文件并导入了 CoreGraphics 和 UIKit 框架以及已经存在的 Foundation。它为我生成了 libExtensions.a 文件。我如何在不同的项目中使用它?我应该在哪里或如何导入它?如果我按 get info on my project 我会在 Linked Libraries 中看到 libExtensions.a,但 Direct Dependencies 加/减按钮被禁用。
    • 对于 Flurry,您只需将 .h 和 .a 文件的父目录拖放到您的项目中,然后选择“递归添加到项目”...然后在将使用您需要导入 .h 文件的扩展名。
    • 嗯,我不明白。我有两个项目——我想使用扩展的“测试项目”,以及我正在构建库的扩展项目。在扩展中,我只有两个文件 - Extension.h 和 Extension.m,它们构建了一个 libExtensions.a 文件。那么我必须将 Extension.h 和 libExtensions.a 拖到“测试项目”中吗?我这样做了,它告诉我 NSString 无法响应 md5 方法:(。顺便说一句:我想我是否必须使用设备或模拟器 SDK 构建它?
    • 我们已经超出了我的深度...... :-) 我会说“iPhone静态库类别”的搜索堆栈溢出这个看起来很有帮助:stackoverflow.com/questions/932856/…
    • ...只是想 - 您可能需要包含所有 .h 文件,因为它是您的 .a 中的类别
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-25
    • 1970-01-01
    • 1970-01-01
    • 2012-01-26
    • 2010-11-10
    相关资源
    最近更新 更多