① iOS 編譯報錯怎麼辦
1.編譯iPad真機時,選擇了 Architetures:Standard(armv6) BaseSDK:iPhoneDevice3.2 TargetDeviceFamily:iPad.
若編譯出現如下錯誤:
Command /Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/gcc-4.2 failed with exit code 1
則修改 GCC4.2CodeGeneral區域中的ComplieForThumb為非選中.
已經有了開發者證書及私鑰後,可直接在越獄的手機上調試.
2. 編譯鏈接時, "_OBJC_CLASS_$_xxx", referenced from:可能需要重新建立某個類的文件.
或者:選擇項目名,在detail列表中的target列(顯示為一個又圓圈),把這個文件的復選選中,或者再次選中.以把它加入到這個target裡面來.
3.在sdk4.0及以上使用RegexKitLite報'captureCount' was not declared in this scope錯誤,是在非.m文件中使用了它的原因.
4.there is no sdk with the name or path.
從網上down的開源代碼,結果運行的時候常出現這樣的錯,並且在deployment中沒有iosdeploymenttarget選項.
嘗試 Project/Edit Active Target/ 及 Set Active SDK菜單項,來回切換一下Active Configuration。
5. EXEC_BAD_ACCESS,EXC_BAD_INSTRUCTION錯誤,意味著這個app有內存管理的問題,一般是因為訪問野指針對象造成的。
一個和內存相關的崩潰一般很難定位到源代碼,因為這個惡魔可能很早就在程序中做了壞事了。假如一段有問題的代碼混亂了內存結構,這樣產生的蝴蝶效應可能會在之後很久才表現出來,並且總在不同的地方。所以,若有指針類型出現了不可能的變化,很可能就是因為內存結構被野指針調用混亂了。
修復一些警告後,可能就能預防一些內存錯誤。警告在左邊靠近行號的黃色三角指出一個編譯警告,你點擊那個黃色的三角形,xcode可能會彈出一個「Fix-it」的建議。
EXC_BAD_ACCESS崩潰不像SIGABRT,將不會得到很明朗的錯誤消息。然而可以使用一個讓人看到曙光的調試工具:Zombies!死亡對象工具。打開這個項目的scheme editor,選擇Run 選項,然後選擇Diagnosics標簽。勾上Enable Zombie Objects選項。當這個zombie工具被啟用之後,即使這個對象被釋放了,這個對象的內存也不會被清理。所以,那塊內存將會被標記為「長生不死的」。假如你試著之後又去使用這塊內存,這個app能夠意識到你的錯誤操作,並且app將會拋出「messagesent to daellocated instance」錯誤並且終止運行。
在工程中加入NSZombieEnabled 環境變數,並設為啟用,則在 EXC_BAD_ACCESS 發生時,XCode 的 Console 會列印出問題描述中,設置方法:雙擊Executables 下的 可執行模組,在彈出窗口中,Variables to be set in the environment,添加 NSZombieEnabled,並設定為 YES,點擊選中復選框啟用此變數。
可以再加入 MallocStackLogging 來啟用malloc記錄,以獲得更多的提示來幫助定位問題。
在gdb窗口輸入 (格式: shell malloc_history <id> <address>) shellmalloc_history1436 0x5f7fcf0, 也可以在終端中去運行 就要去掉以上的shell 指令 如 malloc_history <id> <address>
應該僅當需要調試內存時,才設置上述環境變數。
注意一點:不應該一直啟用zombie objects。因為這個工具將永遠不會釋放內存,只是簡單標記一下這個內存是不死的,你最終將會在某個時候耗盡所有的內存,因為所有分配過的內存都不會得到重用。因此應該在排查內存相關的錯誤的時候才開啟zombie objects,其他時候應該關閉它。
在xcode4中,To edit environment variables, go to Menu Proct / Edit Scheme…, select the desired configuration (you probably want 'Run') from the left sidebar first and then click on the Arguments tab. Environment variables are configurable there.
6.運行一個IPhone程序時,彈出窗口說「程序運行失敗,預置描述文件已過期」 。 解決辦法是,在Xcode中, window-> Orgnazier -> 你的iphone ->刪除帶有紅*的該程序之前的Profile 。 然後從Xcode運行該程序.
7.真機編譯時報 Code Sign error: The identity doesn't match any valid certificate/private key pair in the default keychain
修改工程和Targets的get infouild 中的code signing identity為空
8.調試列印
CFShow(coreFoundationThingy) will print out a description of coreFoundationThingy to the console. Output looks something like: {value = w:1186.000000 h:687.000000 type = kAXValueCGSizeType}
If NSLog() is printing something out as an NSCFType, try CFShow().
9. 編譯時報 Command /Developer/Platforms/iPhoneSimulator.platform/Developer/usr/bin/clang failed with exit code 1,修改C/C++ Compiler Version為gcc4.2
10.this class is not key value coding-compliant for the key viewController
可能在創建了一個基於view的工程,而後把生成的viewcontroller刪除了,但是在.xib中還有對它的引用,在IB中直接用delete鍵刪除掉它就行了。
11.這台電腦上已經存在一個名為「embedded.mobileprovision」的預置文件,您是否要替換么?
http://blog.sina.com.cn/s/blog_6907b67f0100o2vw.html
12.真機調試時報failed to upload *.app
http://hi..com/%CB%E6%B7%E7_1989/blog/item/9649f49f805f05aec8eaf466.html
http://www.shouyanwang.org/thread-462-1-1.html
13.記的release時,先置delegate為nil。
一個節點不應該保留任何對不屬於它的節點的引用。
14.模擬器
將xcode升級到4.3.1以後發現,ipad的模擬器,沒有Home鍵了。Command+Shift+H就可以實現類似點擊Home鍵的效果了。
② 如何編譯打包iOS系統
選擇「Build Phases」選項卡
點擊紅框標注的「+」按鈕
3
在彈出的菜單中選擇「New Run Script Phase..."
4
修改名稱,單擊紅框標注的「Run Script",此處是為了增加編譯號,所以名稱我就改成了Build Number
5
在紅框標注的輸入框中輸入:
③ ios 能編譯動態庫嗎
一、創建FrameWork工程
新建工程,選擇創建FrameWork工程或者靜態庫(Static Library)。
④ 有沒有ios上的c語言編譯器
IOS上可以使用「c++ programming」作為C語言編輯器。
C語言是一門通用計算機編程語言,應用廣泛。C語言的設計目標是提供一種能以簡易的方式編譯、處理低級存儲器、產生少量的機器碼以及不需要任何運行環境支持便能運行的編程語言。
盡管C語言提供了許多低級處理的功能,但仍然保持著良好跨平台的特性,以一個標准規格寫出的C語言程序可在許多電腦平台上進行編譯,甚至包含一些嵌入式處理器(單片機或稱MCU)以及超級電腦等作業平台。
⑤ 蘋果MAC系統怎麼編譯C語言
在 Mac OS X 下學習C語言使用 Xcode。
在 Xcode 上運行C語言程序需要先創建工程,再在工程中添加源代碼。
1、 打開 Xcode,選擇「Create a new Xcode project」創建一個新工程,如下圖所示:
左側是工程目錄,主要包含了工程所用到的文件和資源。單擊「main.c」,即可進入代碼編輯模
式,這里 Xcode 已經為我們創建好了一個「Hello World」小程序。點擊上方的「運行」按鈕,即
可在右下角的選項卡中看到輸出結果。
拓展資料
Xcode是由Apple官方開發的IDE,支持C、C 、 Objective-C、Swift等,可以用來開發 Mac OS X 和 iOS上的應用程序。Xcode最初使用GCC作為 編譯器,後來由於GCC的不配合,改用LLVM。
⑥ 如何編譯系統的iOS
系統的iOS是無法編譯的吧
⑦ ios 打包是重新編譯和運行程序嗎
xcode 支持c ,oc, c++ 混編,將系統文件的擴展名.m改為.mm即可,但cpp文件必須只能使用c/c++代碼,而且cpp文件include的頭文件中,也不能出現obj-c的代碼,用xcode編譯出來的c程序是可以在ios上運行的,只要能編譯通過都可以的
⑧ unity3d ios 重新編譯 替換哪些
1、在Unity3d中, 創建導出 iOS、Android 項目腳本 PerformBuild.cs ,放在Editor目錄下(必須),如下:
View Code
完成之後在Tools菜單下 會有 測試菜單 ,可以試一下是否可以成功導出項目。
2、創建Jenkins配置文件 build.xml 和 參數文件 settings.properties
build.xml 如下:(有其他需求,編輯此文件即可)
View Code
settings.properties 如下: (注意把下面該改成自己項目的改一下)
註:xcode5 去 /Users/<home>/Library/MobileDevice/Provisioning Profiles 目錄找證書GUID
View Code
3、打開Jenkins,按如下步驟新建一個Job:
3.1、
3.2、找到 構建 -> 增加構建步驟 -> Invoke Ant
3.3、選擇高級
3.4、輸入 build File 路徑 和 Properties 路徑,然後保存job
4、現在就可以點擊 立即構建 開始編譯你的項目了,開始前請先退出Unity3d,否則會報錯。
此外 iOS 需要MAC相關環境
⑨ ios文件編譯
這是lua。
&&__sign_of_g18_enc__@@(加密的圖片文件,有的用了Lzma壓縮)
L:grxx__sign_of_g18_enc__(加密的luac腳本文件,有的用了Gzip壓縮)
__sign_of_g18_enc__(加密的luac腳本文件)
⑩ 如何提高ios 靜態庫的編譯速度
iPhone何打包通用靜態庫文件(模擬器真機都用)
1.先必須命令:
~/Library目錄lion默認隱藏便用命令使其顯示:
chflags nohidden ~/Library
想再讓其隱藏:
chflags hidden ~/Library
2.靜態庫工程建立:Xcode New新project選擇IOS面Framework&Library面Cocoa Touch Static Library直接next建立MtimeLibrary工程(面功能要關注簡單 2數相加)
?
3.工程建立刪除默認.h .m 文件自創建CountNumbers..h CountNumbers..m文件圖:
4.OK選擇iPhone 5.1Simulator ,Command + B 編譯我Procts面找我編譯模擬器運行libMtimeLibrary.a文件,選擇真機(圖)再編譯真機運行libMtimeLibrary.a庫
?
5. libMtimeLibrary.a 右鍵 Open in Finder找libMtimeLibrary.a所路徑、面我新建項目添加.a文件測試
打終端:輸入命令(路徑根據自決定)
cd /Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/
Procts目錄ls 看:
?
再輸入命令: cd Debug-iphonesimulator/
通面命令查看libMtimeLibrary.a信息
命令:lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphonesimulator cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: i386
i386mac架構
再輸入面命令:
cd ../
cd Debug-iphoneos/
繼續通命令查看 lipo -info libMtimeLibrary.a
顯示:
cashmatoMacBook-Pro:Debug-iphoneos cash$ lipo -info libMtimeLibrary.a
input file libMtimeLibrary.a is not a fat file
Non-fat file: libMtimeLibrary.a is architecture: armv7
armv7iOSjia'ge架構
我明白真機使用能模擬器使用吧
我要做要讓libMtimeLibrary.a文件同i386armv7信息通用靜態庫文件
6. 新建MtimeLibraryDemo應用真機或者模擬器libMtimeLibrary.a CountNumbers.h文件引入進圖:
?
添加CountNumbers.h文件需要調用類面調用libMtimeLibrary.a面
//
// AppDelegate.m
// MtimeLibraryDemo
//
// Created by cash on 12-3-23.
// Copyright (c) 2012 __MyCompanyName__. All rights reserved.
//
#import "AppDelegate.h"
#import "CountNumbers.h"
@implementation AppDelegate
@synthesize window = _window;
- (void)dealloc
{
[_window release];
[super dealloc];
}
- (BOOL)application:(UIApplication *)application didFinishLaunchingWithOptions:(NSDictionary *)launchOptions
{
self.window = [[[UIWindow alloc] initWithFrame:[[UIScreen mainScreen] bounds]] autorelease];
// Override point for customization after application launch.
CountNumbers *cn = [[CountNumbers alloc] init];
int count = [cn addTwoNumbers:10 :20];
NSLog(@"count:%d",count);
self.window.backgroundColor = [UIColor whiteColor];
[self.window makeKeyAndVisible];
return YES;
}
7. OK編譯運行應用程序 錯誤篇文檔關鍵.
?
我找剛才真機模擬器libMtimeLibrary.a目錄
debug-iphoneos面基於arm6 arm7編譯庫文件debug-iphonesimulator文件夾面基於i386編譯文件
?
10. 關鍵步驟:
通lipo -create 命令合並2靜態庫文件(-output 面/Users/cash/Desktop/test/libMtimeLibrary.a 合並路徑文件名字)
lipo -create "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphonesimulator/libMtimeLibrary.a" "/Users/cash/Library/Developer/Xcode/DerivedData/MtimeLibrary-amyqbnwwzcivnyeijggzaorseihj/Build/Procts/Debug-iphoneos/libMtimeLibrary.a" -output "/Users/cash/Desktop/test/libMtimeLibrary.a"
功
通命令 lipo -info libMtimeLibrary.a 知道文件已經i386armv7信息
cashmatoMacBook-Pro:test cash$ lipo -info libMtimeLibrary.a
Architectures in the fat file: libMtimeLibrary.a are: i386 armv7
cashmatoMacBook-Pro:test cash$
w