XCode 4.2(4.1)真机调试及生成IPA全攻略
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
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>
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>
然后执行 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>
2) 禁用Xcode自动的签名操作
将工程配置中所有的Code Signing选项全部设为Dont Code Sign,如图 。可能需要先点击“All”让这个选项显示出来

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>

5 。打包应用程序,生成ipa文件
在xcode上选择product菜单,选择Build For ---> Build for Achiving,就能成ipa文件了 。如图:

可以将这个文件拖到itunes,就可以生成一个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>

Heiße KI -Werkzeuge

Undresser.AI Undress
KI-gestützte App zum Erstellen realistischer Aktfotos

AI Clothes Remover
Online-KI-Tool zum Entfernen von Kleidung aus Fotos.

Undress AI Tool
Ausziehbilder kostenlos

Clothoff.io
KI-Kleiderentferner

AI Hentai Generator
Erstellen Sie kostenlos Ai Hentai.

Heißer Artikel

Heiße Werkzeuge

Notepad++7.3.1
Einfach zu bedienender und kostenloser Code-Editor

SublimeText3 chinesische Version
Chinesische Version, sehr einfach zu bedienen

Senden Sie Studio 13.0.1
Leistungsstarke integrierte PHP-Entwicklungsumgebung

Dreamweaver CS6
Visuelle Webentwicklungstools

SublimeText3 Mac-Version
Codebearbeitungssoftware auf Gottesniveau (SublimeText3)

Heiße Themen

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

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.

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.

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.

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.

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.

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.
