iPhone App Minus App Store?

199

Jeśli utworzę aplikację na komputerze Mac, czy mogę ją uruchomić na iPhonie bez przechodzenia przez sklep z aplikacjami?

Nie ma znaczenia, czy iPhone musi zostać złamany przez jailbreak, o ile mogę nadal uruchamiać aplikację utworzoną przy użyciu oficjalnego zestawu SDK. Z powodów, dla których się nie wchodzę, nie mogę uruchomić tego programu w sklepie z aplikacjami.

Dan Walker
źródło
1
Od Xcode 7 można teraz uruchomić aplikację na podłączonym urządzeniu bez rejestracji konta programisty lub jailbreakowania urządzenia. Szczegółowe informacje można znaleźć w tym przewodniku .
Suragch
Możesz używać AppBox , aplikacji Mac, która korzysta z Twojego konta Dropbox do dystrybucji aplikacji ad hoc i aplikacji korporacyjnych. Spróbuj tutaj github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/...
Vineet Choudhary

Odpowiedzi:

187

Oficjalny program dla programistów

W przypadku standardowego telefonu iPhone musisz zapłacić 99 USD rocznie, aby być członkiem programu dla programistów. Następnie możesz użyć systemu adhoc, aby zainstalować aplikację na maksymalnie 100 urządzeniach. Program dla programistów zawiera szczegółowe informacje, ale wymaga dodania UUID dla każdego urządzenia do pakietu aplikacji. Identyfikatory UUID można najłatwiej odzyskać za pomocą Ad Hoc Helper dostępnego w App Store. Więcej informacji na temat tej metody można znaleźć w artykule Beta testowania Craiga Hockenberry na telefonie iPhone 2.0

Jailbroken iPhone

W przypadku iPhone'ów z jailbreakiem możesz użyć następującej metody, którą osobiście przetestowałem przy użyciu przykładowej aplikacji AccelerometerGraph na iPhone OS 3.0.

Utwórz certyfikat z podpisem własnym

Najpierw musisz utworzyć samopodpisany certyfikat i załatać zestaw iPhone SDK, aby umożliwić korzystanie z tego certyfikatu:

  1. Uruchom Keychain Access.app. Bez wybranych elementów z menu pęku kluczy wybierz Asystenta certyfikatu, a następnie Utwórz certyfikat.

    Nazwa: iPhone Developer
    Typ certyfikatu: Podpisywanie kodu
    Pozwól mi zastąpić wartości domyślne: Tak

  2. Kliknij Kontynuuj

    Ważność: 3650 dni

  3. Kliknij Kontynuuj

  4. Wyczyść pole Adres e-mail.

  5. Kliknij Kontynuuj, aż do ukończenia.

    Powinieneś zobaczyć „Ten certyfikat główny nie jest zaufany”. Jest to oczekiwane.

  6. Ustaw iPhone SDK, aby zezwolić na używanie samopodpisanego certyfikatu:

    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ć.

Ręczne wdrażanie przez WiFi

Poniższe kroki wymagają opensshi uikittoolsnależy je najpierw zainstalować. Zamień jasoniphone.localna nazwę hosta urządzenia docelowego. Pamiętaj, aby ustawić własne hasło zarówno dla użytkowników, jak mobilei rootpo instalacji SSH.

Aby ręcznie skompilować i zainstalować aplikację na telefonie jako aplikację systemową (z pominięciem systemu instalacyjnego Apple):

  1. Project, Set Active SDK, Device and Set Active Build Configuration, Release.

  2. Skompiluj swój projekt normalnie (używając kompilacji, a nie kompilacji i uruchamiania).

  3. W build/Release-iphoneoskatalogu będziesz mieć pakiet aplikacji. Użyj preferowanej metody, aby przenieść to do / Aplikacje na urządzeniu.

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. Poinformuj SpringBoard, że nowa aplikacja została zainstalowana:

    ssh [email protected] uicache

    Tę czynność należy wykonać tylko podczas dodawania lub usuwania aplikacji. Zaktualizowane aplikacje muszą zostać ponownie uruchomione.

Aby ułatwić sobie życie podczas programowania, możesz skonfigurować uwierzytelnianie za pomocą klucza SSH i dodać te dodatkowe kroki jako niestandardowy krok kompilacji w swoim projekcie.

Pamiętaj, że jeśli chcesz później usunąć aplikację, nie możesz tego zrobić za pomocą standardowego interfejsu SpringBoard i musisz użyć SSH i zaktualizować SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache
Jason Weathered
źródło
2
Mój nie buduje się - Xcode natychmiast podaje błąd podpisywania kodu, gdy tylko próbuję budować ...
Poświęcony
1
@ Rev316 uicachepowinien tam być, jeśli masz uikittoolszainstalowany pakiet.
Jason Weathered
Idę za tobą, ale napotkałem ten błąd: stackoverflow.com/questions/2161877/…
hungbm06
Ponadto chcesz skonfigurować parę kluczy prywatny / publiczny przez ssh, aby wszystko było bez hasła
conradev
2
Co z profilem udostępniania? Czy istnieje sposób na zdobycie go bez subskrypcji programu dla programistów?
Teodor Kostov,
18

Tak, po przystąpieniu do programu iPhone Developer Program i zapłaceniu Apple 99 USD możesz udostępnić swoje aplikacje na maksymalnie 100 urządzeniach z systemem iOS.

Robert Höglund
źródło
2
Dlaczego istnieje limit 100 instalacji?
Marcus Leon,
25
Dlatego ludzie nie mogą tego użyć jako sposobu na całkowite obejście App Store.
willc2
2
Limit 100 jest liczony jako liczba urządzeń zarejestrowanych w tym roku w portalu administracyjnym iOS, a nie bieżąca liczba. Więc jeśli dodasz 5 urządzeń, a następnie usuniesz wszystkie 5, masz 95 (nie 100) dodatkowych urządzeń, które możesz dodać.
Scott C Wilson,
1
Ale liczba używanych urządzeń resetuje się po odnowieniu programu dla programistów.
dgund
1
A profile udostępniania ad hoc wygasają za 3 miesiące, więc nie możesz trwale rozpowszechniać aplikacji nawet na ograniczonym (100) zestawie zarejestrowanych urządzeń.
Bogatyr
14
  • Zbuduj swoją aplikację
  • Prześlij na stronę crack
  • (Jeśli Twoja aplikacja jest wystarczająco dobra) wersja crack zostanie opublikowana kilka minut później i będzie gotowa do pobrania dla wszystkich ;-)
ohho
źródło
8

Za pomocą tego postu stworzyłem skrypt, który zostanie zainstalowany za pomocą aplikacji Installous do szybkiego wdrożenia:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

W wyżej wymienionym poście brakuje iTunesMetadata. Bez tego Installous nie zainstaluje poprawnie aplikacji. Oto przykład iTunesMetadata:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

Oczywiście zastąp wszystkie wystąpienia MyApp nazwą aplikacji, a MyCompany nazwą firmy.

Zasadniczo zostanie on zainstalowany na dowolnym urządzeniu z jailbreakem z zainstalowanym programem Installous. Po skonfigurowaniu powoduje to bardzo szybkie wdrożenie, ponieważ można go zainstalować z dowolnego miejsca, wystarczy załadować go na stronę firmową, pobrać plik bezpośrednio na urządzenie i skopiować / przenieść do ~/Documents/Installous/Downloads.

Richard J. Ross III
źródło
@ToolmakerSteve Wątpię, ale ponieważ teraz możesz załadować aplikacje iOS z dowolnym identyfikatorem Apple za darmo, nie widzę takiej potrzeby.
Richard J. Ross III
7

W nadchodzącym Xcode 7 można teraz instalować aplikacje na urządzeniach bez licencji dewelopera Apple, więc teraz można pominąć sklep z aplikacjami i nie trzeba jailbreakować urządzenia.

Teraz każdy może pobrać swoją aplikację na urządzenie Apple.

Xcode 7 i Swift ułatwiają teraz wszystkim tworzenie aplikacji i uruchamianie ich bezpośrednio na urządzeniach Apple. Po prostu zaloguj się za pomocą swojego Apple ID i zmień swój pomysł w aplikację, którą możesz dotknąć na iPadzie, iPhonie lub Apple Watch. Pobierz Xcode 7 beta i wypróbuj już dziś. Członkostwo w programie nie jest wymagane.

Cytat z: https://developer.apple.com/xcode/

Aktualizacja:

XCode 7 jest już wydany:

Bezpłatne opracowywanie na urządzeniu Teraz każdy może uruchomić i przetestować własną aplikację na urządzeniu - za darmo. Możesz uruchamiać i debugować własne dzieła na komputerze Mac, iPhonie, iPadzie, iPodzie touch lub Apple Watch bez żadnych opłat i żadnych programów. Wszystko, co musisz zrobić, to wpisać bezpłatny identyfikator Apple ID do Xcode. Możesz nawet użyć tego samego Apple ID, którego już używasz w App Store lub iTunes. Po udoskonaleniu aplikacji program dla programistów Apple może pomóc Ci uzyskać ją w App Store.

Zobacz Uruchamianie aplikacji na urządzeniach, aby uzyskać szczegółowe informacje na temat instalowania i uruchamiania na urządzeniach.

qqbenq
źródło
4

Warto zauważyć, że jeśli pójdziesz drogą jailbreak, możliwe jest (prawdopodobnie?), Że aktualizacja iPhone OS zabiłaby twoją zdolność do uruchamiania tych aplikacji. Wybrałbym oficjalną trasę i zapłaciłbym 99 $, żeby uzyskać autoryzację. Oprócz tego, że nie musisz się martwić, że Twoje aplikacje zostaną zablokowane, masz również możliwość (jeśli wybierzesz) wypuszczenia aplikacji w sklepie.

sierpień
źródło
2

Po skopiowaniu aplikacji na iPhone'a w sposób opisany przez @Jason Weathered upewnij się, że „chmod + x” aplikacji, w przeciwnym razie nie będzie działać.

David Airapetyan
źródło
1

* Zmiany / uwagi, aby to działało dla Xcode 3.2.1 i iPhone SDK 3.1.2

Ręczne wdrażanie przez WiFi

2) Pamiętaj o ponownym uruchomieniu Xcode po zmodyfikowaniu Info.plist

3) Nie znaleziono polecenia „uicache”, przy użyciu killall -HUP SpringBoard działało dobrze dla mnie.

Poza tym mogę potwierdzić, że działa dobrze.

Użytkownicy komputerów Mac korzystający z PwnageTool 3.1.4 świetnie sprawdzali się w Jailbreaking (DL przez torrent).

Rev316
źródło
Ach Dzięki Jason, doceń dobrze udokumentowany post! Może warto wspomnieć o instalacji pakietu narzędzi UIKit dla Cydii dla Jubbreak, takich jak ja.
Rev316
1

Jeśli łatasz, /Developer/Platforms/iPhoneOS.platform/Info.plista następnie próbujesz debugować aplikację działającą na urządzeniu przy użyciu prawdziwego profilu Proven Development firmy Apple, prawdopodobnie nie będzie działać. Objawy są dziwnymi komunikatami o błędach com.apple.debugserveri że można użyć dowolnego identyfikatora pakietu, nie otrzymując błędu podczas budowania w Xcode. Rozwiązaniem jest przywrócenie Info.plist.

Mattias Wadman
źródło
0

Możesz użyć AppBox , aplikacji Mac, która korzysta z Twojego konta Dropbox do dystrybucji aplikacji ad-hoc i korporacyjnych, jeśli chcesz zainstalować z dowolnej innej przeglądarki.

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases


Opcje

Archiwizuj i przesyłaj IPA

  • Wystarczy wybrać Project / Workspace do zarchiwizowania -> make ipa -> upload ipa -> send mail -> and shutdown mac

Prześlij tylko IPA

  • Wystarczy wybrać plik IPA, aby przesłać ipa -> wysłać pocztę -> i zamknąć Mac

Funkcja

  • Zachowaj ten sam link
    • Ta funkcja zachowa ten sam krótki adres URL dla wszystkich przyszłych przesyłanych plików IPA z tym samym identyfikatorem pakietu.
    • Jeśli ta opcja jest włączona, możesz również pobrać poprzednią wersję z tym samym adresem URL.
  • Link do automatycznej dystrybucji aplikacji e-mail
  • Auto Shutdown Mac po dystrybucji
  • Maksymalny rozmiar przesyłania => Równa do ilości miejsca na koncie Dropbox
  • Przesłana data wygaśnięcia aplikacji => Do momentu usunięcia z Dropbox
  • Instalacje na aplikację => Nieograniczony
  • Deska rozdzielcza*

    * Będzie dostępny w przyszłej wersji


AppBox vs Diawi

Zrzut ekranu

Prześlij IPA

Archiwizuj i przesyłaj IPA

Przesyłanie IPA

Spróbuj tutaj https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

Vine Choudhary
źródło