Inhaltsverzeichnis
XCode 4.2(4.1)真机调试及生成IPA全攻略
Heim Datenbank MySQL-Tutorial XCode 4.2(4.1)真机调试及生成IPA全攻略

XCode 4.2(4.1)真机调试及生成IPA全攻略

Jun 07, 2016 pm 03:37 PM
ipa xcode Komplette Strategie 生成 真机 调试

XCode 4.2(4.1)真机调试及生成IPA全攻略 网上有不少关于xocde3.x真机 调试 的文章,但鲜有 xcode 4.2相关的资料。参考了一些文章,终于可以在xcode4.2上进行 真机调试 了,在此 记录 下。 众所周知,在Xcode上 开发 的 程序 只能在 模拟器 中运行,如果要放

XCode 4.2(4.1)真机调试及生成IPA全攻略



  网上有不少关于xocde3.x真机调试的文章,但鲜有xcode4.2相关的资料  。参考了一些文章,终于可以在xcode4.2上进行真机调试了,在此记录下  。

  众所周知,在Xcode上开发程序只能在模拟器中运行,如果要放到真机上则要花费99美金购买开发者证书iDP  。这严重阻碍了我等草根开发者探索的脚步  。写个小程序,同学间分享一下这个小小的愿望都不能满足,自然不能善罢甘休  。

  在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布IPA用于分享,需要以下几个步骤

  1.自己为自己颁发一个证书用于为生成的程序签名

  2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和使用这个伪造的证书

  3.使用定义的步骤为应用程序签名

  4.使用一点小trick来生成IPA文件

  1.创建证书

  我会分几步来说明  。值得说明的是,要想真机调试,ios device必须事先越狱.创建证书的过程比较简单,打开实用工具-钥匙串访问  。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导  。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将"让我覆盖这些默认值"选中  。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以  。

  1.创建证书,这个没什么好说的,网上资料一大堆,只要别写错名字就好,证书名一定要为 iPhone Developer

XCode 4.2(4.1)真机调试及生成IPA全攻略

  2.破解ios sdk及其xcode的相关配置文件(双击配置文件就可以打开,注意SDKSettings.plist权限控制)

  修改/Developer/Platforms/iPhoneOS.platform目录下的Info.plist文件,将其中的 XCiPhoneOSCodeSignContext 都改为XCCodeSignContext

  修改/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk目录下的SDKSettings.plist文件,修改如下字段

<ol>
<li><span><span><span>key</span><span>></span><span>CODE_SIGNING_REQ<span>UI</span>RED</span><span><span>key</span><span>></span><span> </span></span></span></span></li>
<li><span><span><span>string</span><span>></span><span>NO</span><span><span>string</span><span>></span><span> </span></span></span></span></li>
<li><span> </span></li>
<li><span><span><span>key</span><span>></span><span>ENT<span>IT</span>LE<span>ME</span>NTS_REQUIRED</span><span><span>key</span><span>></span><span> </span></span></span></span></li>
<li><span><span><span>string</span><span>></span><span>NO</span><span><span>string</span><span>></span><span> </span></span></span></span></li>
</ol>
Nach dem Login kopieren

  3.破解xcode二进制文件  。建立一个crack文件,内容如下:

<ol>
<li><span><span>#!/bin/bash </span></span></li>
<li><span>cd /Developer/Platforms/iPhoneOS.platform/Developer/<span>Library</span>/Xcode/PrivatePlugIns/iPhoneOS\ Build\ Syst<span>em</span>\ Support.xcplugin/Contents/<span>MacOS</span>/ </span></li>
<li><span>dd <span>if</span><span>=</span><span>iPhoneOS</span><span>\ Build\ System\ Support </span><span>of</span><span>=</span><span>working</span><span> </span><span>bs</span><span>=</span><span>500</span><span> </span><span>count</span><span>=</span><span>255</span><span> </span></span></li>
<li><span>printf "xc3x26x00x00" <span>></span><span>></span><span> working </span></span></li>
<li><span>/bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original </span></li>
<li><span>/bin/mv -n working iPhoneOS\ Build\ System\ Support </span></li>
<li><span>chmod a+x iPhoneOS\ Build\ System\ Support </span></li>
</ol>
Nach dem Login kopieren

  然后执行 chmod +x crack执行./crack,没错误就正常

  4.修改xcode工程配置文件

  1) 下载脚本

  打开终端,执行如下操作

<ol>
<li><span><span>cd  /Developer </span></span></li>
<li><span>mkdir xcode-crack </span></li>
<li><span>curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt </span></li>
<li><span>mv gen_entitlements.txt gen_entitlements.py </span></li>
<li><span>chmod 777 gen_entitlements.py 
</span></li>
</ol>
Nach dem Login kopieren

  2) 禁用Xcode自动的签名操作

  将工程配置中所有的Code Signing选项全部设为Dont Code Sign,如图  。可能需要先点击“All”让这个选项显示出来

XCode 4.2(4.1)真机调试及生成IPA全攻略

  3)添加自定义的生成后脚本

  在Build Phases中添加一个Phase,右下角的Add Build Phase,然后单击Add Run Script,输入以下脚本(如图)

<ol>
<li><span><span>export </span><span>CODESIGN_<span>ALL</span>O<span>CA</span>TE</span><span>=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate </span></span></li>
<li><span>if [ "${<span>PL</span>AT<span>FOR</span>M_<span>NAM</span>E}" == "iphoneos" ]; <span>the</span>n </span></li>
<li><span>/Developer/xcode-crack/gen_entitlements.py "my.company.${PROJECT_NAME}" "${BUILT_PRO<span>DU</span>CTS_DIR}/${WR<span>AP</span>PER_NAME}/${PROJECT_NAME}.xcent"; </span></li>
<li><span>codesign -f -s "iPhone Developer" --entitlements "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent" "${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/" </span></li>
<li><span>fi </span></li>
</ol>
Nach dem Login kopieren
XCode 4.2(4.1)真机调试及生成IPA全攻略

  5  。打包应用程序,生成ipa文件

  在xcode上选择product菜单,选择Build For ---> Build for Achiving,就能成ipa文件了  。如图:

XCode 4.2(4.1)真机调试及生成IPA全攻略

  可以将这个文件拖到itunes,就可以生成一个ipa文件,如图:

XCode 4.2(4.1)真机调试及生成IPA全攻略

  至此,我们就可以随心所欲地开发并调试ios程序了,并可以将打包好的ipa文件分享给他人

  按照上面的步骤导入3.x的工程成功运行,但是如果用XCode 4.2创建新工程,则会报错,需要做如下修改:

  1、将【Objective-C Automatic Reference Counting】的默认值由【YES】改为【NO】;

  2、输入下面的代码注意没有特殊字符

<ol>
<li><span><span>export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate   </span></span></li>
<li><span><span>if</span><span> [ </span><span>"${PLATF<span>ORM</span>_NAME}"</span><span> == </span><span>"iphoneos"</span><span> ]; then   </span></span></li>
<li><span>/Developer/iphoneentitlements401/gen_entitlements.py <span>"my.company.${PROJECT_NAME}"</span><span> </span><span>"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"</span><span>;   </span></span></li>
<li><span>codesign -f -s <span>"iPhone Developer"</span><span> --entitlements </span><span>"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/${PROJECT_NAME}.xcent"</span><span> </span><span>"${BUILT_PRODUCTS_DIR}/${WRAPPER_NAME}/"</span><span>   </span></span></li>
<li><span>fi   </span></li>
</ol>
Nach dem Login kopieren
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn

Heiße KI -Werkzeuge

Undresser.AI Undress

Undresser.AI Undress

KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover

AI Clothes Remover

Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool

Undress AI Tool

Ausziehbilder kostenlos

Clothoff.io

Clothoff.io

KI-Kleiderentferner

AI Hentai Generator

AI Hentai Generator

Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

R.E.P.O. Energiekristalle erklärten und was sie tun (gelber Kristall)
2 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Repo: Wie man Teamkollegen wiederbelebt
4 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌
Hello Kitty Island Abenteuer: Wie man riesige Samen bekommt
3 Wochen vor By 尊渡假赌尊渡假赌尊渡假赌

Heiße Werkzeuge

Notepad++7.3.1

Notepad++7.3.1

Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version

SublimeText3 chinesische Version

Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1

Senden Sie Studio 13.0.1

Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6

Dreamweaver CS6

Visuelle Webentwicklungstools

SublimeText3 Mac-Version

SublimeText3 Mac-Version

Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Detaillierte Erläuterung des Debuggens von C++-Funktionen: Wie debuggt man Probleme in Multithread-Funktionen? Detaillierte Erläuterung des Debuggens von C++-Funktionen: Wie debuggt man Probleme in Multithread-Funktionen? May 02, 2024 pm 04:15 PM

C++-Multithread-Debugging kann GDB verwenden: 1. Debugging-Informationskompilierung aktivieren; Tatsächlicher Fall-Debugging-Deadlock: 1. Verwenden Sie threadapplyallbt, um den Stack zu drucken. 3. Führen Sie einen Einzelschritt für den Haupt-Thread aus.

Wie verwende ich LeakSanitizer zum Debuggen von C++-Speicherlecks? Wie verwende ich LeakSanitizer zum Debuggen von C++-Speicherlecks? Jun 02, 2024 pm 09:46 PM

Wie verwende ich LeakSanitizer zum Debuggen von C++-Speicherlecks? Installieren Sie LeakSanitizer. Aktivieren Sie LeakSanitizer über das Kompilierungsflag. Führen Sie die Anwendung aus und analysieren Sie den LeakSanitizer-Bericht. Identifizieren Sie Speicherzuordnungstypen und Zuweisungsorte. Beheben Sie Speicherlecks und stellen Sie sicher, dass der gesamte dynamisch zugewiesene Speicher freigegeben wird.

Verknüpfung zum Debuggen und Analysieren von Golang-Funktionen Verknüpfung zum Debuggen und Analysieren von Golang-Funktionen May 06, 2024 pm 10:42 PM

In diesem Artikel werden Verknüpfungen für das Debuggen und Analysieren von Go-Funktionen vorgestellt, einschließlich des integrierten Debuggers dlv, der zum Anhalten der Ausführung, zum Überprüfen von Variablen und zum Festlegen von Haltepunkten verwendet wird. Protokollierung: Verwenden Sie das Protokollpaket, um Nachrichten aufzuzeichnen und sie während des Debuggens anzuzeigen. Das Leistungsanalysetool pprof generiert Anrufdiagramme und analysiert die Leistung und verwendet gotoolpprof zur Datenanalyse. Praktischer Fall: Analysieren Sie Speicherlecks über pprof und generieren Sie ein Aufrufdiagramm, um die Funktionen anzuzeigen, die Lecks verursachen.

Wie führt man ein effizientes Debugging in Java-Lambda-Ausdrücken durch? Wie führt man ein effizientes Debugging in Java-Lambda-Ausdrücken durch? Apr 24, 2024 pm 12:03 PM

Effizientes Debuggen von Lambda-Ausdrücken: IntelliJ IDEA Debugger: Setzen Sie Haltepunkte für Variablendeklarationen oder Methoden, überprüfen Sie interne Variablen und den Status und sehen Sie sich die tatsächliche Implementierungsklasse an. Java9+JVMTI: Stellen Sie eine Verbindung zur Laufzeit-JVM her, um Bezeichner abzurufen, Bytecode zu überprüfen, Haltepunkte festzulegen und Variablen und Status während der Ausführung zu überwachen.

Wie führt man Parallelitätstests und Debugging in der Java-Parallelprogrammierung durch? Wie führt man Parallelitätstests und Debugging in der Java-Parallelprogrammierung durch? May 09, 2024 am 09:33 AM

Parallelitätstests und Debugging Parallelitätstests und Debugging in der gleichzeitigen Java-Programmierung sind von entscheidender Bedeutung und die folgenden Techniken stehen zur Verfügung: Parallelitätstests: Unit-Tests: Isolieren und testen Sie eine einzelne gleichzeitige Aufgabe. Integrationstests: Testen der Interaktion zwischen mehreren gleichzeitigen Aufgaben. Lasttests: Bewerten Sie die Leistung und Skalierbarkeit einer Anwendung unter hoher Last. Parallelitäts-Debugging: Haltepunkte: Thread-Ausführung anhalten und Variablen überprüfen oder Code ausführen. Protokollierung: Thread-Ereignisse und -Status aufzeichnen. Stack-Trace: Identifizieren Sie die Quelle der Ausnahme. Visualisierungstools: Überwachen Sie die Thread-Aktivität und die Ressourcennutzung.

PHP-Debugging-Fehler: Ein Leitfaden für häufige Fehler PHP-Debugging-Fehler: Ein Leitfaden für häufige Fehler Jun 05, 2024 pm 03:18 PM

Zu den häufigsten PHP-Debugging-Fehlern gehören: Syntaxfehler: Überprüfen Sie die Codesyntax, um sicherzustellen, dass keine Fehler vorliegen. Undefinierte Variable: Bevor Sie eine Variable verwenden, stellen Sie sicher, dass sie initialisiert und ihr ein Wert zugewiesen ist. Fehlende Semikolons: Fügen Sie allen Codeblöcken Semikolons hinzu. Funktion ist undefiniert: Überprüfen Sie, ob der Funktionsname richtig geschrieben ist und stellen Sie sicher, dass die richtige Datei oder PHP-Erweiterung geladen ist.

So debuggen Sie asynchronen PHP-Code So debuggen Sie asynchronen PHP-Code May 31, 2024 am 09:08 AM

Zu den Tools zum Debuggen von asynchronem PHP-Code gehören: Psalm: ein statisches Analysetool, das potenzielle Fehler findet. ParallelLint: Ein Tool, das asynchronen Code prüft und Empfehlungen gibt. Xdebug: Eine Erweiterung zum Debuggen von PHP-Anwendungen durch Aktivieren einer Sitzung und schrittweises Durchgehen des Codes. Weitere Tipps umfassen die Verwendung von Protokollierung, Assertionen, die lokale Ausführung von Code und das Schreiben von Komponententests.

Detaillierte Erläuterung des Debuggens von C++-Funktionen: Wie debuggt man Probleme in Funktionen, die eine Ausnahmebehandlung enthalten? Detaillierte Erläuterung des Debuggens von C++-Funktionen: Wie debuggt man Probleme in Funktionen, die eine Ausnahmebehandlung enthalten? Apr 30, 2024 pm 01:36 PM

C++-Debugging-Funktionen, die Ausnahmebehandlung enthalten, verwenden Ausnahmepunkt-Haltepunkte, um Ausnahmepositionen zu identifizieren. Verwenden Sie den Befehl „catch“ in gdb, um Ausnahmeinformationen und Stack-Traces auszudrucken. Verwenden Sie den Ausnahme-Logger, um Ausnahmen zu erfassen und zu analysieren, einschließlich Meldungen, Stack-Traces und Variablenwerten.

See all articles