安全な方法で他の開発者のためのフレームワークまたはライブラリを構築する方法は?[閉まっている]


106

iOS開発者にとって非常に役立つフレームワークまたはライブラリのアイデアがあります。そのため、アプリ開発からフレームワーク/ライブラリ開発への切り替えを真剣に考えています。

ただし、ライブラリ/フレームワークに課金したい場合は、コードを何らかの方法で保護する必要があります。Applesフレームワークのソースコードを表示できないのと同様に、フレームワークのユーザーがソースコードを表示できないようにフレームワークを構築するにはどうすればよいですか?彼らはヘッダファイルといくつかの奇妙なUnix exeファイルをコンパイルされたフレームワークと一緒に出荷するだけだと思います。

または、ソースコードをコピーして貼り付けることなく他のiOS開発者が使用できるコンパイル済みフレームワーク/ライブラリを作成できない場合、objective-cコードを難読化する方法はありますか?


22
Unix exeファイル:-)
Besi

6
iOS開発者に本当に役立ちたい場合は、それをオープンソースにしてください!
Kaan Dedeoglu 2013

4
@KaanDedeoglu-どちらのシナリオでも、ユーザーには長所と短所があります。個人的には、リーズナブルな価格のクローズドソースを好みます。すべてがドキュメント化され、サポートされており、オープンソースでサポートされておらず、ドキュメント化されていないフレームワークよりもフレームワークが機能します。レアはオープンソースのフレームワークであり、実際には十分に文書化されており、積極的に維持されています。
ArtOfWarfare 2013

回答:


113

はい、フレームワークのユーザーがソースコードを見ることができないようにフレームワークを構築することは可能です。

これらの記事をチェックしてください(私は過去に最初の記事を使用してフレームワークを作成することに成功しました-後の記事はオリジナルの更新です):

http://www.drobnik.com/touch/2010/04/making-your-own-iphone-frameworks/

http://www.drobnik.com/touch/2010/05/making-your-own-iphone-frameworks-in-xcode/

http://www.drobnik.com/touch/2010/10/embedding-binary-resources/

フレームワークを使用するには、ユーザーは.frameworkバンドルをXcodeにドラッグするだけです。バンドルにコピーしたヘッダーファイル(上記の記事を参照)は表示されますが、ソースは表示されません(含まれていないため、コンパイルされた出力のみがバンドルに含まれています)。

これは、社内の複数のプロジェクトで使用されるコードを配布するための優れた方法にもなります。


更新:

以下に追加された「羽毛のない」リンクをチェックしてください。それは、はるかに新しいものであり、すべて1つのページhttp://github.com/jverkoey/iOS-Frameworkにあります。また、他のいくつかのアプローチで問題を説明します。これは、新しいフレームワークをセットアップするときに何をすべきかを思い出そうとするときに私が従うガイドです。:)

Update2(Xcode 6リリース付き)

オプションがあり、まさにあなたが探しているのは: Universal Framework for iOS

私のコードは他の人に見えるでしょうか?A:いいえ。このフレームワークはコンパイルされたバイナリをエクスポートするため、誰でもその中を見ることができます。XIBのような他のいくつかのファイルについても同じことができます。

なぜこれが必要なのですか?A:これは、コード全体(.m / .c / .cppファイル)を表示せずにコードを共有したい開発者/チーム向けです。さらに、コンパイルされたコードとリソース(画像、ビデオ、サウンド、XIB、plistなど)を1つの場所に整理したい人向けです。これは、同じベース(フレームワーク)の上で一緒に作業したいチームにも当てはまります。

(c)http://blog.db-in.com/universal-framework-for-ios/


1
どうも!このトリックのためにアップルはアプリを拒否しませんか?このようなフレームワークを使用するApp Storeで実際に承認されたアプリはありますか?
自慢のメンバー

3
これに戻るために、「その他のリンカーフラグ」ビルド設定のXcode 4 -all_loadリンカーフラグでは、ビルド設定は必要ありません。-ObjCは、必要な唯一のフラグです。
ダニエル

あなたは正しいダニエルです。LLVM/ Clangの最新バージョンの1つがこれを修正しました。ありがとう!
Jay Peyer

iOSフレームワークへのgithubリンクが大好きです、+ 1
sbonami 2012年

注:Xcode 4.5を使用している場合、ここに記載されているように、チュートリアルを少し変更する必要があります。stackoverflow.com
13571080


9

iOS静的フレームワークプロジェクトを作成できるXCode 4のテンプレートもあります。


この方法でリリースされたプロジェクトを知っていますか?
トーメン

いいえ、ありません。この方法でリリースすることを検討しているものに取り組んでいますが、それが最終的にそれで行くかどうかはわかりません。
グレッグ、
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.