导航:首页 > 源码编译 > ios编译

ios编译

发布时间:2022-01-14 06:00:04

❶ ios 能编译动态库吗

一、创建FrameWork工程

新建工程,选择创建FrameWork工程或者静态库(Static Library)。






  • ❷ ios源码,别人就可以运行编译我这运行报错21个这是什么情况

    编译没报错,运行也没报错,但是就是无法运行起来app的原因

    ❸ 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键的效果了。

    ❹ 如何使用xcodebuild在命令行编译iOS工程

    、准备工作 1、jenkins环境。搭建jenkins环境可以参考jenkins平台搭建和配置一节。需要注意的是,虽然涉及iOS开发,但是jenkins平台却不必搭建在mac机器上,只要在jenkins上添加mac节点就可以了。 2、iOS开发环境。iOS开发环境主要是指Xcode开发环境,Xcode是免费的,只要在苹果应用商店里下载一个就可以了。当然,还有重要的一点儿---开发者证书,现在个人也已经有免费的证书了,没有证书的话,只能打模拟器用的包了。 3、git项目。强烈建议把代码放在git上,这样便于团队开发。当然,不放git上也可以。 4、jenkins Xcode持续集成插件。常用的插件Xcode integration,这个插件能够快速的帮助我们进行Xcode打包配置,当然,只用纯shell脚本也是可以的。 在jenkins上打包之前,我们最好手工测试一下可以打包成功,首先用Xcode图形界面进行测试,然后用命令行测试,如果都能打包成功就可以挂在jenkins上运行了,毕竟jenkins的原理也是通过执行一系列命令来完成的。 三、jenkins配置 1、创建一个任务,创建任务的时候最好选自由风格的软件项目,这样配置起来比较方便,如果有需要,也可以选择其他的风格。 2、描述

    ❺ 苹果ios系统用哪种语言编译的!

    如果你说的是写一个操作系统,那么一般是用C和汇编语言实现的。
    你如果问IOS系统上编译程序,那么一般是用Objective-C,它的开发环境是Xcode

    ❻ 有办法用shell命令 执行编译ios程序吗

    自动编译时,有时候需要改动它的发布版本号。
    那么怎么样使用shell script去改呢
    或者自动在原来基础上加1呢?

    如下的shell script可以实现:
    #!/bin/sh

    # mPOS.sh
    # mPOS
    #
    # Created by zhou shadow on 7/4/13.
    # Copyright (c) 2013 zhou shadow. All rights reserved.

    #INFOPLIST_FILE="/mPOS-Info.plist"

    buildPlist=${INFOPLIST_FILE}
    #newVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$buildPlist" | /usr/bin/perl -pe 's/(\d+\.\d+\.)(\d+)/$1.($2+1)/eg'`
    newVersion="2.1.5"
    #echo $newVersion;
    /usr/libexec/PListBuddy -c "Set :CFBundleVersion $newVersion" "$buildPlist"

    注:newVersion可以取值,也可以手动输入。当然这样手动输入不合现的。

    那就想办法在shell script文件,传参数。

    需要研究一下,如果向shell script传参数。
    搞定。

    上传新的源代码:
    #!/bin/sh

    # mPOS.sh
    # mPOS
    #
    # Created by zhou shadow on 7/4/13.
    # Copyright (c) 2013 zhou shadow. All rights reserved.

    #INFOPLIST_FILE="/mPOS-Info.plist"

    newVersion=$1

    echo $newVersion
    PROJECT_DIR="mPOS"
    INFOPLIST_FILE=${PROJECT_DIR}/"mPOS-Info.plist"
    buildPlist=${INFOPLIST_FILE}

    echo $buildPlist
    #newVersion=`/usr/libexec/PlistBuddy -c "Print CFBundleVersion" "$buildPlist" | /usr/bin/perl -pe 's/(\d+\.\d+\.)(\d+)/$1.($2+1)/eg'`
    #echo $newVersion;
    /usr/libexec/PListBuddy -c "Set :CFBundleVersion $newVersion" "$buildPlist"

    $1是输入参数。
    需要找到INFO_PLIST file 去改它的版本号即可。
    所以把$1这个参数传进来,用它来改变Info-Plist的Version值。

    ❼ ios 编译framework在哪

    那得看项目中是否有用到一些,只有真机才能调用的头文件等等,比如需要调用摄像头,相册等的文件.如果有的话 模拟器上是跑不了的,当然了还有很多是版本也有相关的...希望帮助到你

    ❽ 有谁知道ipad上怎么编译c吗

    本iOSC/iOSC++适用于iPhone 5S、iPad 4。
    经测试,本软件可以编译 复杂命令行程序、运用了各种Framework的IPA程序、cmake、SDL2库、运用了SDL2的程序、同时运用SDL2和UIKit的程序、纯算法程序。

    1、请先安装必须软件包,从这个汇总贴子里下载:http://bbs.weiphone.com/read-htm-tid-5259660.html
    如果您觉得不放心,这些软件包可以在code.google.com各自的项目里下载

    (注:安装方法:)
    (先在Cydia中安装Debian Packager)
    (然后在终端模拟器或SSH中进入DEB文件夹以root权限运行dpkg -i *)

    2、然后请用Mac OS安装Xcode,提取/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/到您的iPhone5s或者iPad4上。

    3、在Cydia中安装class mp和classmp-dyld,这个工具可以在你需要Private Framework的头文件时,为你反编译出可用的头文件。(Private Framework本身是不提供头文件的)

    4、最后把您需要的可执行文件复制到/usr/bin目录并设置可执行权限。

    在iosc文件夹和iosc++文件夹中,各个版本目录下文件说明:
    main.cpp ——此版本源代码
    a.out,iosc,iosc++ ——此版本二进制可执行文件
    config.txt ——此版本最佳配置文件。
    注:配置文件一般自动生成。如果
    希望iosc/iosc++尽量不提问,可以
    把这个config.txt复制
    到/var/mobile/.ioscpp/config.txt

    5、iosc、iosc++在V1.3之后有一次渺小而重要的更新,运用此更新,用户第一次有把握在iPhone5S、iPad4设备上从复杂源代码搭建实用工具,例如cmake、SDL2。此更新保证开发者在iOS 7上可以编译任何C/C++代码。因此,自V1.3以后的代码暂不开源。

    6、利用theos可以从源代码编译iOS IPA程序。貌似不支持Storyboard。

    !注意!如果需要安装产生的IPA,需要AppSync补丁,因为没签名……

    (编译方法:)
    (从原帖子下载整个压缩包,仅提取其中的theos文件夹)
    (从本目录安装好iosc/iosc++)
    (把本目录中的ipa.nic.zip等nic.zip文件拷贝到theos/templates/iphone/)
    (利用Nic建立项目,进入项目文件夹用make编译)

    ❾ C++通过什么编译器编译成的静态库给ios调用

    用的是gcc编译器或者xcode编译就可以。
    在开发过程中,经常会碰到一些在不同工程中经常用到的部分,把这些部分抽取出来做成一个静态库往往是一个比较好的做法。xcode里就有制作静态库的模板,相关的制作步骤网上也有很多,但在实际的操作中,还是有不少细节方面需要注意。以下是我碰到的一些问题总结。

    1.编译release版本的库
    在“Manage Schemes”中,将“Build Configuration”的选项改为“Release”即可。如图:

    2.静态库中包含category
    如果你在静态库工程中使用了category,那么你可能会碰到链接问题,解决的办法就是需要同时在生成静态库的工程和使用静态库的工程中使用“-all_load”编译选项,即在对应target的"Build Settings"中的“Other Linker Flags”选项添加“-all_load”。注意:使用静态库的工程中是一定要加该编译选项的!!至于生成静态库的工程中加不加没有试过,不过建议还是加上该编译选项。

    3.静态库支持的SDK版本
    为了使自己的静态库尽可能多的支持IOS的系统版本,应该在"IOS Deployment Target"这个选项中选择自己所需的IOS版本。设置如下图,这个是我的静态库工程中的配置,红框框起来的是我修改过的选项。

    4.自动拷贝头文件
    在工程对应的target的“Build Phases”下添加“Copy Headers”的选项。该选项默认是没有的,添加方法是点击下方的“Add Build Phase”按钮后选择后即可添加。该选项下有3个子选项,分别是Public,Private,Project。通过点击下方的加号,可以将工程中的头文件添加到“Project”中,在其中的对应头文件点击右键,选择“Move to Public Group”,当头文件移到“Pulic”后,编译工程以后,在工程编译后.a文件所在的路径下,会同时出现一个"usr/local/include"的文件夹,其中的头文件就是public group中的头文件。这时只需将.a文件和这个路径下的头文件拷贝到所需工程文件即可。
    转载

    ❿ iOS 编译错误

    重复定义了啊. _OBJC_METACLASS_ 看看这个.

    阅读全文

    与ios编译相关的资料

    热点内容
    工作三年的大专程序员 浏览:726
    java毕业设计文献 浏览:140
    筹码集中度指标源码 浏览:478
    listsortjava 浏览:183
    plc闪光电路编程实例 浏览:299
    socket编程试题 浏览:203
    华为的服务器怎么设置从光驱启动 浏览:867
    程序员真的累吗 浏览:325
    学信网app为什么刷脸不了 浏览:873
    天蝎vs程序员 浏览:992
    单片机下载口叫什么 浏览:188
    程序员的道 浏览:926
    云服务器不实名违法吗 浏览:558
    怎样查看文件夹图片是否重复 浏览:995
    文件怎么导成pdf文件 浏览:808
    打开sql表的命令 浏览:103
    安卓手机如何面部支付 浏览:38
    天元数学app为什么登录不上去 浏览:824
    明日之后为什么有些服务器是四个字 浏览:104
    安卓系统l1是什么意思 浏览:26