다른 개발자를위한 프레임 워크 또는 라이브러리를 안전하게 구축하는 방법은 무엇입니까? [닫은]


106

모든 iOS 개발자에게 매우 유용한 프레임 워크 또는 라이브러리에 대한 아이디어가 있습니다. 그래서 우리는 앱 개발에서 프레임 워크 / 라이브러리 개발로 전환하는 것에 대해 진지하게 생각하고 있습니다.

그러나 라이브러리 / 프레임 워크에 대한 비용을 청구하려면 어떻게 든 코드를 보호해야합니다. Apple 프레임 워크의 소스 코드를 볼 수없는 것처럼 프레임 워크 사용자가 소스 코드를 볼 수없는 방식으로 프레임 워크를 구축하려면 어떻게해야합니까? 그들은 컴파일 된 프레임 워크와 함께 헤더 파일과 이상한 Unix exe 파일만을 제공합니다.

또는 다른 iOS 개발자가 소스 코드를 복사하여 붙여 넣지 않고 사용할 수있는 컴파일 된 프레임 워크 / 라이브러리를 만들 수 없다면, Objective-C 코드를 난독 화하는 방법이 있습니까?


22
Unix exe 파일 :-)
Besi

6
iOS 개발자에게 정말 도움이되고 싶다면 오픈 소스로 만드세요!
Kaan Dedeoglu

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로 드래그하기 만하면됩니다. 번들에 복사 한 헤더 파일 (위의 기사 참조)은 볼 수 있지만 소스는 볼 수 없지만 (포함되지 않았으므로 컴파일 된 출력 만 번들에 있습니다).

이는 회사 내 여러 프로젝트에 사용되는 코드를 배포하는 좋은 방법이 될 수도 있습니다.


최신 정보:

아래에 추가 된 페더리스 링크를 확인하십시오. http://github.com/jverkoey/iOS-Framework 에서 훨씬 더 최신이며 모두 한 페이지에 있습니다. 또한 몇 가지 다른 접근 방식으로 문제를 설명합니다. 이것은 새 프레임 워크를 설정할 때해야 할 일을 기억하려고 할 때 따르는 가이드입니다. :)

Update2 (Xcode 6 릴리스 포함)

당신이 찾고있는 옵션이 있습니다 : Universal Framework for iOS!

내 코드가 다른 사람에게 표시됩니까? A : 아니요.이 프레임 워크는 컴파일 된 바이너리를 내보내므로 누구나 내부를 볼 수 있습니다. XIB와 같은 다른 파일에 대해서도 동일하게 만들 수 있습니다.

왜 이것이 필요한가요? A : 전체 코드 (.m / .c / .cpp 파일)를 표시하지 않고 코드를 공유하려는 개발자 / 팀을위한 것입니다. 게다가 컴파일 된 코드 + 리소스 (이미지, 비디오, 사운드, XIB, plist 등)를 한곳에 구성하려는 사람을위한 것입니다. 그리고 이것은 또한 동일한 기반 (프레임 워크) 위에서 함께 작업하려는 팀을위한 것입니다.

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


1
고마워 친구! 이 속임수 때문에 애플은 앱을 거부하지 않을까요? 실제로 그러한 프레임 워크를 사용하는 앱을 App Store에서 승인 받았습니까?
Proud Member

3
다시 돌아 오면 Xcode 4부터 "Other Linker Flags"빌드 설정의 -all_load 링커 플래그가 필요하지 않습니다. -ObjC는 필요한 유일한 플래그입니다.
Daniel

LLVM / Clang의 최신 버전 중 하나 인 Daniel이이 문제를 해결했습니다. 감사!
Jay Peyer

iOS 프레임 워크에 대한 github 링크, +1
sbonami

참고 : Xcode 4.5가있는 경우 여기에 설명 된대로 자습서를 약간 수정해야합니다. stackoverflow.com/questions/13571080/…
Lolo


9

iOS 정적 프레임 워크 프로젝트를 만들 수있는 XCode 4 용 템플릿 도 있습니다.


이 방법으로 출시 된 프로젝트에 대해 알고 계십니까?
Tomen

아뇨. 나는 우리가 이런 식으로 출시하려고 생각하는 것을 작업하고 있지만 그것이 우리가 결국 갈 것인지 확실하지 않습니다.
Greg
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.