2011-08-02 12 views
8

Stworzyłem jedną bibliotekę statyczną w iPhone sdk, i obawiam się, że jeśli dostarczę kod każdemu, w którym używana jest biblioteka statyczna, wtedy każdy może korzystać z biblioteki statycznej. Czy istnieje sposób na ograniczenie ich poprzez używanie biblioteki, dopóki nie otrzymają licencji? Jestem nowy w licencjonowaniu dowolnej biblioteki.Jak mogę zabronić programistom korzystanie z mojej utworzonej biblioteki statycznej?

+9

Prosta: Nie rozpowszechniaj biblioteki –

+0

Mam do dystrybucji całego kodu do klienta zgodnie z NDA, a w tym kodzie użyłem własnej biblioteki – iMOBDEV

+0

Obawiam się .. ponieważ masz umowę z klientem, masz aby udostępnić także swój kod biblioteki! – Saurabh

Odpowiedz

21

Jest to problem, który należy rozwiązać środkami prawnymi, a nie żadnym rozwiązaniem technicznym.

Upewnij się, że udostępniasz bibliotekę tylko osobom, którym ufasz, a jeśli to konieczne, że podpiszą umowę, aby jej nie rozpowszechniać.

Zadaj sobie również pytanie, czy warto. Czy Twój kod jest tak wyjątkowy, że nie może go znaleźć gdzie indziej, lub powielać go sam w ciągu kilku dni, korzystając wyłącznie z Google i stackoverflow?

+5

To jest jedyna prawdziwa odpowiedź. Nawet wielcy faceci (MS, Adobe, itp.) Mają problemy z utrzymaniem piratów w dystrybucji swojego oprogramowania. Krótko mówiąc, po zwolnieniu masz dokładnie kontrolę zerową. Co oznacza, że ​​jedyną prawdziwą ochroną jest system prawny. – NotMe

+0

@PeyloW twoja rada jest naprawdę szczera i dobra, ale prosi o licencjonowanie biblioteki. Czy istnieje sposób na licencjonowanie biblioteki? –

+0

@Amit - Licencjonowanie nie jest trudne, ale legalne, praca. Napisz umowę licencyjną, najlepiej, aby adwokat napisał to za Ciebie. Poproś klienta, aby to podpisał, a następnie wyślij im bibliotekę. Jeśli naruszą one podpisaną umowę, rozwiąż sprawę w sądzie, jeśli/w razie potrzeby. Pod koniec dnia działa tylko wtedy, gdy dodasz magiczny składnik; *zaufanie*. – PeyloW

0

Jeśli udostępnisz bibliotekę statyczną, nikt nie będzie mógł odzyskać kodu.

Czy masz rezerwacje również w innych, używając swojej biblioteki statycznej?

+0

Tak, jeśli ktoś może skopiować bibliotekę statyczną i uzyskać dostęp do mojej biblioteki statycznej, nie chcę tego. – iMOBDEV

2

Jak powiedział przez @PeyloW,

Jest to problem należy rozwiązać poprzez prawnych środków, a nie przez każdego rozwiązania technicznego.

Ale istnieje kilka prostych sposobów na „blok kodu”: Można utworzyć archiwum RAR lub ZIP, zaszyfrowany hasłem, a po ich dostać licencję, można powiedzieć im hasło.

+0

dziękuję, ale po podaniu im hasła, mogą rozdawać je każdemu, prawda? – iMOBDEV

+0

Tak. Następnie powinieneś poprosić ich o podpisanie umowy lub coś podobnego. – akashivskyy

+0

hmmmm, to dobry pomysł, ale może tak być, nawet jeśli udostępniam statyczną bibliotekę, a kiedy będą działać na innym komputerze, to nie zareaguje. Miałem na myśli, czy mogę dodać, że biblioteka statyczna może działać tylko na określonym komputerze, dopóki nie udzielę im licencji? – iMOBDEV

1

Jeśli chcesz "powiązać" licencję z "komputerem programisty", potrzebujesz po prostu czegoś, co możesz związać. Na przykład może to być identyfikator UDID emulatora.

można wygenerować licencję na UDID emulatora, a jedynie ograniczyć rozwój emulator, umożliwiając jednocześnie swobodny dostęp do kodu ramię (urządzenia)

  • więc można w zasadzie sprawdzenia emulatora UDID
  • plik licencji check
  • jeśli plik licencyjny pozwala że UDID uruchom
  • jeśli nie to pokazać komunikat etc

dla celów rozwojowych, każdy potrzebuje emulatora, więc myślę, że ograniczenie go wystarczy.

+0

Jeśli wysyła kod, łatwo jest usunąć czeki. Prawdopodobnie bardziej kłopotliwe jest próbowanie ochrony lib niż złamanie ochrony. –

+0

Chyba nie wysyła kodu, tylko biblioteka –

+0

To prawie to samo. W pobliżu znajdują się doskonałe narzędzia do demontażu i specjaliści. A żeby usunąć test, prawdopodobnie potrzebujesz tylko debuggera i odwróć trochę, nie rozumiesz całej biblioteki. –

1

Osobiście utworzę nową bibliotekę statyczną, sprawdzę zasięg kodu i skopiuję tylko kod używany przez aplikację, która go zużywa. Lub innymi słowy, nie rozdawaj więcej, niż potrzebujesz.

Następnie, jak ktoś wspomniany w komentarzach, zaciemnij połączenia. Twoja biblioteka będzie bezwartościowa bez dokumentacji, jeśli twoje połączenia będą musiały zostać odczytane. Szanse są takie, że każdy, kto ma zdolność rozszyfrowywania twoich telefonów, prawdopodobnie ma już 80% inżynierii wstecznej twojego kodu.

Nie możesz naprawdę wymusić na swoim kliencie licencji w ostatniej godzinie, chyba że wyrazi na to zgodę. Więc nawet jeśli spróbujesz zmusić ich do licencjonowania swojej biblioteki, może to nie być nawet prawidłowe, jeśli pierwotna umowa zostanie nietknięta. Kontrolowałbym obrażenia w zakresie, w jakim twój czas jest warty, i nazywał to uczeniem się.Za 5 miesięcy prawdopodobnie i ta biblioteka statyczna zostanie przebudowana na coś lepszego. Następnym razem będziesz pracował nad tym w umowie.

Powiązane problemy