Hoe kan ik een iPhone-applicatie van Xcode naar een echt iPhone-apparaat implementeren zonder een Apple-certificaat van $ 99 te hebben?
Antwoord 1, autoriteit 100%
Ik heb een combinatie van twee howto’s gebruikt: Jason’sen alex’s. Met de tweede hebben we het voordeel dat we kunnen debuggen. Ik zal meestal beide hieronder kopiëren (en die van Alex vereenvoudigen):
Update januari 2012:dit werkt nog steeds op SDK 4.2.1 en iOS 5.0.1 – ik heb het net allemaal getest op een nieuwe computer en apparaat!
1. Zelfondertekend certificaat maken
Patch uw iPhone SDK om het gebruik van dit certificaat toe te staan:
-
Start Keychain Access.app. Als er geen items zijn geselecteerd, selecteert u in het Sleutelhanger-menu Certificaatassistent en vervolgens Een certificaat maken.
- Naam:iPhone-ontwikkelaar
- Certificaattype:Code-ondertekening
- Laat mij de standaardinstellingen overschrijven:Ja
-
Klik op Doorgaan
- Geldigheid:3650 dagen
-
Klik op Doorgaan
-
Leeghet veld E-mailadres.
-
Klik op Doorgaan tot voltooid.
Je zou “Dit basiscertificaat is niet vertrouwd”moeten zien. Dit wordt verwacht.
-
Stel de iPhone SDK zo in dat het zelfondertekende certificaat kan worden gebruikt:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
Als je Xcode open hebt staan, herstart het dan om deze wijziging door te voeren.
En als je iOS 5 gebruikt, is dat het! Probeer het nu! Het staat debuggen misschien niet toe, maar de app zal er zijn!
Ik was hierdoor erg verrast omdat, zoals je zou moeten weten, ik heb geen idee waar al die hacks over gaan! Het enige wat ik deed was een beetje verbeteren wat ik elders vond, zoals ik al aangaf.
Dus ja, de hele methodewerkt niet meer op dezelfde manier en ik kon niet de moeite nemen om een nieuwe te vinden… Behalve dit, dat een tool gebruikt genaamd Theosmaar ik kon er niet doorheen gaan het hele proces.
Ten slotte, als je de installatie ongedaan moet makenom wat voor reden dan ook, kijk dan aan het einde van dit bericht. In mijn geval moest ik dat wel omdat ik er niet achter kon komen waarom al het blauw van deze hele methode niet meer werkte, en het kon me niet meer schelen omdat we de lang gewachte licentie al hebben. (Freaking DUNS-nummer duurt zo lang…)
.
.
.
.
.
2. Schakel Xcode’s in om te bouwen op een gejailbreakt apparaat
-
Installeer op je gejailbreakte iPhone de app AppSyncdoor source ** toe te voegen http ://repo.hackyouriphone.org**
-
Verwijder SDK-vereisten voor codetekens en rechten (ik ben dol op sed!):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
-
Let opop het gedeelte
iPhoneOS5.0.sdk
. Als u bijvoorbeeld iOS 4.2 SDK gebruikt, vervangt u deze dienovereenkomstig:sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
-
Sluit de verwijdering van de vereisten af door Xcode te patchen. Dit betekent binaire bewerking:
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
Als u Xcode open heeft staan, start u deze opnieuw op om deze wijziging (en de laatste) door te voeren.
-
Open ‘Project>Projectinstellingen bewerken’(vanuit het menu). Klik op het tabblad “Build”.
Zoek “Code Signing Identity”en het onderliggende “Any iPhoneOS Device”in de lijst en stel beide in op “Do not Code Sign “:Voel je hierna vrij om stap 3 ongedaan te maken. In mijn geval ging het in ieder geval prima.
-
Xcode instellen op codetekenen met ons op maat gemaakte zelfondertekende certificaat(de eerste how-to). Deze stap kan waarschijnlijk worden overgeslagen als u niet wilt kunnen debuggen:
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
Sluit je iPhone aan en open Xcode. Open Window>Organizer. Selecteer het apparaat in de lijst aan de linkerkant en klik op ‘Gebruiken voor ontwikkeling’. U wordt gevraagd om in te loggen op de inrichtingswebsite, klik op Annuleren. Het is er om legitieme provisioning gemakkelijker te maken, maar maakt illegale niet-provisioning niet moeilijker.
Nu Je moet dit laatste deel doen voor elk nieuw project dat je maakt. Ga naar het menu Project > Nieuwbouwfase > Nieuwe fase voor het bouwen van scripts. Kopieer/plak dit in het venster:
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
.
.
.
.
Verwijderen
Voor het eerste deel:
sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist
Voor het 2e deel:
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
als je stap 3 hebt gedaan in plaats van 2, pas het dan ook gewoon dienovereenkomstig aan:
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
voor de rest, is gewoon terugzetten wat je deed op XCode en /Developer/iphoneentitlements401/gen_entitlements.py
verwijderen als je wilt:
sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py
Antwoord 2, autoriteit 61%
Het lijkt erop dat de aanvraag niet is ondertekend. Download ldid van Cydia en gebruik het dan als volgt: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
Zorg er ook voor dat het binaire bestand is gemarkeerd als uitvoerbaar: chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
Antwoord 3, autoriteit 52%
Gratis provisioning na Xcode 7
Om je app op een echt apparaat te testen in plaats van de Apple Developer-vergoeding te betalen (of je apparaat te jailbreaken), kun je de nieuwe gratis voorzieningen gebruiken die Xcode 7 en iOS 9 ondersteunen.
Dit zijn de min of meer genomen stappen van de documentatie(wat best goed is, dus lees het eens):
1. Voeg uw Apple ID toe in Xcode
Ga naar XCode > Voorkeuren > Tabblad Accounts > Knop Toevoegen (+) > Apple-ID toevoegen. Zie de documentenvoor meer hulp.
2. Klik op het tabblad Algemeen in de projectnavigator
3. Kies je Apple ID in het pop-upmenu Team.
4. Verbind je apparaat en kies het in het schemamenu.
5. Klik op de knop Problemen oplossen
Als je een foutmelding krijgt dat de bundelnaam ongeldig is, verander deze dan in iets unieks.
6. Voer uw app uit
Klik in Xcode op de knop Bouwen en uitvoeren.
7. Vertrouw de app-ontwikkelaar in de apparaatinstellingen
Nadat je je app hebt uitgevoerd, krijg je een beveiligingsfout omdat de app die je wilt gebruiken niet uit de App Store komt.
Ga op uw apparaatnaar Instellingen > Algemeen > Profiel > uw-Apple-ID-naam> Vertrouw op uw-Apple-ID-naam> Vertrouwen.
8. Voer uw app opnieuw uit op uw apparaat.
Dat is het. Je kunt nu je eigen (of andere apps waarvoor je de broncode hebt) draaien zonder de $ 99 dollar te hoeven betalen. Bedankt, Apple, dat je dit eindelijk hebt toegestaan.
Antwoord 4, autoriteit 10%
Dat kan niet, niet als je het hebt over applicaties die zijn gebouwd met de officiële SDK en rechtstreeks vanuit xcode worden geïmplementeerd.
Antwoord 5, autoriteit 9%
Je moet je apparaat jailbreaken.
Antwoord 6, autoriteit 7%
Er is een manier om iPhone-apps te implementeren zonder aan Apple te betalen
Je moet je apparaat jailbreaken en de instructies volgen in http://www.alexwhittemore.com/? p=398
Antwoord 7, autoriteit 5%
Niets dat ik ergens heb gezien, wijst erop dat je ad-hoc kunt implementeren op een echte iPhone zonder (betaald) certificaat.
Antwoord 8, autoriteit 4%
Ik ging gisteravond door de Apple-ontwikkelaar en daar in het provisioning-certificaat dat ik zoiets heb gevonden – “Ondertekenings teamleden”. Ik denk dat er een manier is om teamleden toe te voegen aan het betaalde profiel.
Je kunt het gewoon vragen aan de app-ID-eigenaar (betaald) om je als een teamlid toe te voegen. Ik weet het niet zeker. Nog steeds op zoek naar.
9, Autoriteit 3%
Nee, het is gemakkelijk om dit te doen. Stel in Xcode de actieve configuratie in om vrij te geven. Wijzig het apparaat van Simulator naar Apparaat – wat SDK ook is. Als u direct naar uw iPhone wilt exporteren, sluit u deze aan op uw computer. Druk op Build en Go. Als uw iPhone niet op uw computer is aangesloten, komt er een bericht op en zegt dat uw iPhone niet is aangesloten.
Als dit op u van toepassing is: (iPhone is niet aangesloten)
Ga naar de map van uw projecten en vervolgens naar de build map binnen. Ga naar de map Release-iPhoneos en neem de app binnen, sleep en neerdruppeld op iTunes-pictogram. Wanneer u uw iTouch-apparaat synchroniseert, wordt deze naar uw apparaat kopieerd. Het verschijnt ook in iTunes als een applicatie voor de iPhone.
Ik hoop dat dit helpt!
PS: Als het iets zegt over een certificaat dat niet geldig is, klikt u gewoon op het project in Xcode, het kleine projectpictogram in de bestandsstapel naar links en drukt u op APPLE + IK of Krijg info uit de menubalk . Klik op Build Aan de bovenkant. Onder het ondertekenen van de code, wijzigen Code Ondertekening Identiteit – Elk iPhone OS-apparaat om niet te ondertekenen.
10, Autoriteit 2%
Dit is echt allemaal afhankelijk van welke versie van Xcode u gebruikt als verschillende versies Gebruik verschillende methoden om te implementeren op uw iPhone zonder een provisioningsprofiel.
Xcode 3.2.1 is een goede versie en is eenvoudig te uitzoeken, maar we moeten weten welke versie u gebruikt.
11, Autoriteit 2%
oplossing gepost door Cawas werkt ook perfect met Xcode4. Er zijn echter enkele wijzigingen in de UI van IDE, dus u moet wat onderzoek doen om Run Script te vinden:)
In het project Navigator-weergave Klik op het root-item van het project en vervolgens in het middenvenster Selecteer Target en klik vervolgens op het tabblad Fasen op bouwen en onderaan u ziet u Build Phase-knop toevoegen, klik dan Pasta “Codesign” -script gepost door Cawas.