Jak mogę wdrożyć aplikację na iPhone'a z Xcode na prawdziwym urządzeniu iPhone bez posiadania certyfikatu Apple 99 USD?
Jak mogę wdrożyć aplikację na iPhone'a z Xcode na prawdziwym urządzeniu iPhone bez posiadania certyfikatu Apple 99 USD?
Odpowiedzi:
Wygląda na to, że aplikacja nie jest podpisana. Pobierz ldid z Cydii, a następnie użyj go w następujący sposób:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Upewnij się również, że plik binarny jest oznaczony jako wykonywalny: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Użyłem mieszankę dwóch HOWTO: Jason i Alexa . W drugim mamy tę zaletę, że możemy debugować. Przeważnie po prostu skopiuję oba poniższe (i uproszczę alexa):
Aktualizacja ze stycznia 2012 r .: to nadal działa na SDK 4.2.1 i iOS 5.0.1 - właśnie przetestowałem to wszystko na nowym komputerze i urządzeniu!
Popraw swój iPhone SDK, aby umożliwić korzystanie z tego certyfikatu:
Uruchom aplikację Keychain Access.app. Gdy żadne elementy nie są zaznaczone, z menu Pęk kluczy wybierz Asystent certyfikatu, a następnie Utwórz certyfikat.
Kliknij Kontynuuj
Kliknij Kontynuuj
Puste się na e-mail polu adresu.
Kliknij Kontynuuj do zakończenia .
Powinien pojawić się komunikat „Ten certyfikat główny nie jest zaufany” . To jest oczekiwane.
Ustaw iPhone SDK, aby zezwolić na użycie certyfikatu z podpisem własnym:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Jeśli masz otwarty Xcode, uruchom go ponownie, aby zmiana zaczęła obowiązywać.
A jeśli korzystasz z iOS 5, to wszystko! Spróbuj teraz! Może nie pozwalać na debugowanie, ale aplikacja będzie tam!
Byłem tym bardzo zaskoczony, ponieważ, jak powinieneś wiedzieć , nie mam pojęcia, o co chodzi w tych wszystkich włamaniach! Wszystko, co zrobiłem, to trochę ulepszyć to, co znalazłem gdzie indziej, jak wskazałem.
Więc tak, cała metoda nie działa już tak samo i nie mogłem zawracać sobie głowy znalezieniem nowej ... Poza tym, który używa narzędzia o nazwie Theos, ale nie mogłem przejść przez cały proces.
Wreszcie, jeśli z jakiegoś powodu chcesz go odinstalować , sprawdź koniec tego postu. W moim przypadku musiałem, ponieważ nie mogłem zrozumieć, dlaczego cała ta metoda przestała działać, i już nie mogłem się tym przejmować, ponieważ mamy już długo oczekiwaną licencję. (Cholerna liczba DUNS trwa tak długo ...)
.
.
.
.
.
Na iPhonie z jailbreakiem zainstaluj aplikację AppSync , dodając źródło ** http://repo.hackyouriphone.org **
Usuń wymagania SDK dotyczące znaku kodu i uprawnień (uwielbiam sed !):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
Zwróć uwagę naiPhoneOS5.0.sdk
część. Jeśli na przykład używasz zestawu SDK systemu iOS 4.2, po prostu zastąp go odpowiednio:
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
Zakończ usuwanie wymagań, instalując poprawki Xcode. Oznacza to edycję binarną:
cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
printf "\xc3\x26\x00\x00" >> working
/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
/bin/mv working iPhoneOS\ Build\ System\ Support
chmod a+x iPhoneOS\ Build\ System\ Support
Jeśli masz otwarty Xcode, uruchom go ponownie, aby ta zmiana (i ostatnia) odniosła skutek.
Otwórz „Projekt> Edytuj ustawienia projektu” (z menu). Kliknij kartę „Kompiluj” . Znajdź na liście „Tożsamość podpisywania kodu” i jej element podrzędny „Dowolne urządzenie iPhoneOS” i ustaw oba na wpis „Nie podpisuj kodu” :
Po tym możesz cofnąć krok 3. Przynajmniej w moim przypadku poszło dobrze.
Ustawienie Xcode do podpisywania kodu za pomocą naszego niestandardowego certyfikatu z podpisem własnym (pierwsze instrukcje). Ten krok prawdopodobnie można pominąć, jeśli nie chcesz mieć możliwości debugowania:
mkdir /Developer/iphoneentitlements401
cd /Developer/iphoneentitlements401
curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
mv gen_entitlements.txt gen_entitlements.py
chmod 777 gen_entitlements.py
Podłącz iPhone'a i otwórz Xcode. Otwórz okno> Organizator. Wybierz urządzenie z listy po lewej stronie i kliknij „Użyj do programowania”. Zostaniesz poproszony o zalogowanie się do witryny obsługi administracyjnej, kliknij Anuluj. Ma na celu ułatwienie legalnej obsługi administracyjnej, ale nie utrudnia nielegalnego braku obsługi administracyjnej.
Teraz musisz wykonać tę ostatnią część dla każdego nowego projektu, który tworzysz . Przejdź do menu Projekt> Nowa faza budowy> Nowa faza budowy skryptu uruchamiania. W oknie skopiuj / wklej to:
export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
/Developer/iphoneentitlements401/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent";
codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"
fi
.
.
.
.
W pierwszej części:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Część druga:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support
jeśli wykonałeś krok 3 zamiast 2, po prostu odpowiednio go zmodyfikuj:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
reszta to po prostu cofanie tego, co zrobiłeś w XCode i usuwanie, /Developer/iphoneentitlements401/gen_entitlements.py
jeśli chcesz:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
The identity used to sign the executable is no longer valid. ... (0xE8008018)
nawet po upływie 3650 dni do wygaśnięcia. Wygląda na to, że sam telefon sprawdza.
Aby przetestować swoją aplikację na prawdziwym urządzeniu, zamiast płacić opłatę programistyczną Apple (lub jailbreakować urządzenie), możesz skorzystać z nowej bezpłatnej obsługi administracyjnej obsługiwanej przez Xcode 7 i iOS 9.
Oto kroki podjęte mniej więcej z dokumentacji (co jest całkiem dobre, więc przeczytaj):
1. Dodaj swój Apple ID w Xcode
Przejdź do XCode> Preferencje> karta Konta> przycisk Dodaj (+)> Dodaj Apple ID. Zobacz dokumentację, aby uzyskać dodatkową pomoc.
2. Kliknij zakładkę Ogólne w Nawigatorze projektu
3. Wybierz swój Apple ID z wyskakującego menu zespołu.
4. Podłącz urządzenie i wybierz je z menu schematu.
5. Kliknij przycisk Napraw problemy
Jeśli pojawi się błąd informujący, że nazwa pakietu jest nieprawidłowa, zmień ją na unikalną.
6. Uruchom aplikację
W Xcode kliknij przycisk Build and run.
7. Zaufaj twórcy aplikacji w ustawieniach urządzenia
Po uruchomieniu aplikacji pojawi się błąd bezpieczeństwa, ponieważ aplikacja, którą chcesz uruchomić, nie pochodzi z App Store.
Na urządzeniu przejdź do Ustawienia> Ogólne> Profil> nazwa-twojego-Apple-ID > Zaufaj -u-nazwie-Apple-ID > Zaufanie.
8. Ponownie uruchom aplikację na swoim urządzeniu.
Otóż to. Możesz teraz uruchamiać własne (lub dowolne inne aplikacje, do których masz kod źródłowy) bez konieczności wydawania 99 dolarów. Dziękuję Apple, że w końcu na to pozwoliłeś.
Będziesz musiał jailbreak swoje urządzenie.
Jest sposób na wdrażanie aplikacji na iPhone'a bez płacenia Apple Będziesz musiał jailbreakować swoje urządzenie i postępować zgodnie z instrukcjami na http://www.alexwhittemore.com/?p=398
Nic, co nigdzie nie widziałem, nie wskazuje na to, że można wdrożyć ad-hoc na prawdziwym iPhonie bez (opłaconego) certyfikatu.
Wczoraj wieczorem przeglądałem programistę Apple i tam w certyfikacie aprowizacji znalazłem coś w stylu - „Podpisywanie członków zespołu”. Myślę, że istnieje sposób na dodanie członków zespołu do płatnego profilu. Możesz po prostu poprosić właściciela identyfikatora aplikacji (płatny), aby dodał Cię jako członka zespołu. Nie jestem pewien. Wciąż tego szukam.
Nie, łatwo to zrobić. W Xcode ustaw Active Configuration na Release. Zmień urządzenie z symulatora na urządzenie - niezależnie od zestawu SDK. Jeśli chcesz bezpośrednio eksportować do swojego iPhone'a, podłącz go do komputera. Naciśnij Buduj i ruszaj. Jeśli Twój iPhone nie jest podłączony do komputera, pojawi się komunikat informujący, że Twój iPhone nie jest podłączony.
Jeśli dotyczy to Ciebie: (iPhone nie był podłączony)
Przejdź do folderu projektów, a następnie do znajdującego się w nim folderu kompilacji. Przejdź do folderu Release-iphoneos i weź aplikację do środka, przeciągnij i upuść na ikonie iTunes. Kiedy zsynchronizujesz swoje urządzenie iTouch, skopiuje je na Twoje urządzenie. Pojawi się również w iTunes jako aplikacja na iPhone'a.
Mam nadzieję że to pomoże!
PS: Jeśli mówi coś o tym, że certyfikat nie jest ważny, po prostu kliknij projekt w Xcode, małą ikonę projektu w stosie plików po lewej stronie i naciśnij Apple + I lub uzyskaj informacje z paska menu. Kliknij Buduj u góry. W obszarze Podpisywanie kodu zmień Tożsamość podpisywania kodu - dowolne urządzenie z systemem operacyjnym iPhone na Nie podpisuj.
Rozwiązanie opublikowane przez Cawas doskonale współpracuje również z XCode4. Jednak są pewne zmiany w interfejsie IDE, więc musisz trochę poszukać, aby znaleźć Run Script :)
W widoku Nawigatora projektu kliknij element główny projektu, następnie w środkowym oknie wybierz Cel, następnie kliknij zakładkę Fazy budowy, a na dole zobaczysz przycisk Dodaj fazę budowy, kliknij i wybierz Dodaj skrypt uruchamiania, a następnie wklej "codeign "skrypt opublikowany przez Cawas.
Nie ma obejścia. Aplikacje można wdrażać ad hoc tylko wtedy, gdy są zarejestrowane na urządzeniu. Uniemożliwia to tworzenie własnego sklepu z aplikacjami.