首页 > 稀奇古怪的冷知识

codesign?code钥匙报警如何处理

通过Ssh连接苹果系统打包出现Codesign Error

title:通过Ssh连接苹果系统打包出现Codesign Error

date: 2017-02-22

tags:

最近再弄Ios打包的持续集成,计划用Jenkins+ Fastlane+ Macos,在调试过程中遇到一个问题,直接在Mac mini上打包的时候能够正常完成,而把Mac mini当做Jenkins的一个Sl*e节点的时候,会遇到以下错误:

分析原因为 xcodebuild的权限问题,那么具体的解决方案如下:

具体的可以参考老外的脚本:

原文地址:

qt .pro配置 codesign.depends

编译QT的工程的时候,一般都会让qmake自动生成,但有时我们需要定制我们的工程,那么就必须改写pro文件。

要自己全部写pro文件又有点麻烦,所以,一般都是先运行qmake-project来生成基本的pro文件。

(1)模板变量

TEMPLATE= app

(2)生成目录

指定生成的可执行程序的目录,可以绝对和相对路径DESTDIR+=../bin

(3)生成的应用程序名,即软件名TARGET= qtest

(4)编译选项

增添或者移除某个模块

(5)目标文件目录

obj文件存放的目录,可以绝对或相对路径OBJECTS_DIR+=../tmp

(6)工程中包含的头文件

(7)工程中包含的源文件

(8)工程中包含的资源文件

(9)附加头文件包含目录

(10)链接库

xcode5 如何生成ipa文件包

前提:

众所周知,在Xcode上开发的程序只能在模拟器中运行,如果要放到真机上则要花费99美金购买开发者证书iDP。本文介绍的是在上一代 Xcode4.6.3上演示的,为何使用上一代版本的呢?很简单,ios7还没有实现大众化越狱,所以很少有人使用越狱的ios7系统(大神除外),若要运行Xcode5,鉴于无开发者证书且无越狱,想免费真机运行自己编写的ipa文件的话,只有ios7越狱才是唯一出路,所以在没有iDP的情况下,要想将程序放到iPhone上调试,并最终发布ipa用于分享,需要以下几个步骤:

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

2.修改工程配置以及Xcode的配置文件和二进制文件以阻止其验证和签名;

3.通过自定义生成步骤,用伪造的证书为应用程序签名;

4.使用一点小技巧来生成ipa文件;

5.需要先越狱您的ios6系统的设备并通过Cydia安装AppSync for ios4/5/6。

工具:iphone4 6.1.2已完美越狱,MacBook Pro13inch,Xcode4.6.3,Plist Editor(编辑plist文件使用)。

正式进入正题:

一、创建证书

打开实用工具-钥匙串访问。然后在菜单栏里点击钥匙串访问-证书助理-创建证书来打开向导。第一个步骤比较重要,必须要把名称命名为iPhone Developer,将类型设定为代码签名,将”让我覆盖这些默认值”选中。之后的步骤无需更改,一路点击“确定”和“继续”来完成这个向导就可以!

二、修改Xcode的配置文件

1.请先将Xcode按Command+Q完全关闭。

2.修改配置文件:

按照该路径找到SDKSettings.plist然后进行编辑:

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS6.1.sdk/SDKSettings.plist

将以下两段中的YES改为NO

<key>CODE_SIGNING_REQUIRED</key>

<string>YES</string>

<key>ENTITLEMENTS_REQUIRED</key>

<string>YES</string>

3.下面修改另外一个文件:

按照该路径找到Info.plist然后进行编辑:

Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Info.plist

将Info.plist中全部的XCiPhoneOSCodeSignContext修改成 XCCodeSignContext,他们分别在DefaultProperties分支下、OverrideProperties分支下和RuntimeRequirements分支下。

4.添加文件:

连接互联网后在终端执行:

mkdir/Applications/Xcode.app/Contents/Developer/iphoneentitlements

cd/Applications/Xcode.app/Contents/Developer/iphoneentitlements

curl-O

mv gen_entitlements.txt gen_entitlements.py

chmod 777 gen_entitlements.py

如果没有联网,可以在/Applications/Xcode.app/Contents/Developer文件夹下创建一个iphoneentitlements文件夹,然后在该文件夹下手动创建一个gen_entitlements.py文件,并授予其执行权限(命令:sudo),这个文件的内容为:

#!/usr/bin/env python

import sys

import struct

if len(sys.argv)!= 3:

print”Usage:%s appnamedest_file.xcent”% sys.argv[0]

sys.exit(-1)

APPNAME= sys.argv[1]

DEST= sys.argv[2]

if not DEST.endswith('.xml') and notDEST.endswith('.xcent'):

print”Dest must be.xml(for ldid) or.xcent(for codesign)”

sys.exit(-1)

entitlements=”””

<?xml version=”1.0″encoding=”UTF-8″?>

<!DOCTYPE plist PUBLIC”-//Apple//DTD PLIST 1.0//EN”””>

<plist version=”1.0″>

<dict>

<key>application-identifier</key>

<string>%s</string>

<key>get-task-allow</key>

<true/>

</dict>

</plist>

“””% APPNAME

f= open(DEST,'w')

if DEST.endswith('.xcent'):

f.write(“\xfa\xde\x71\x71”)

f.write(struct.pack('>L', len(entitlements)+ 8))

f.write(entitlements)

f.close()

三、修改工程设置(真机调试闪退的,请仔细的看此步骤,这步就是关键问题所在)

特别注意:本阶段之前的修改配置文件、准备脚本等,只需要做一次。但本阶段的*作,对每个需要真机调试的工程都要做一遍。

这个步骤的主要作用是支持真机调试,如果不做这个步骤,仍然可以通过步骤5来生成ipa在真机上运行,但是无法使用Xcode内置的调试器对在真机上运行的程序进行单步跟踪。如果您的程序在点击Run真机调试时秒退,请检查此步骤是否正确完成。

1.禁用Xcode自动的签名*作

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

2.添加自定义的生成后脚本

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

export CODESIGN_ALLOCATE=/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate

if [“${PLATFORM_NAME}”==”iphoneos” ]|| [“${PLATFORM_NAME}”==”ipados”]; then

/Applications/Xcode.app/Contents/Developer/iphoneentitlements/gen_entitlements.py”my*pany.${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

如图所示:

至此配置全部完成,下面就可以插上iPhone,重新选择生成目标来测试一下在线调试了!如果是第一次使用该设备调试,请先在Organizer中将设备切换为开发模式(iPhone右部的小绿点亮)。

四、生成IPA文件

如果我的程序调试好了,怎么才能发给别人用呢?正常情况下ipa文件是从Xcode的Organizer中输出的,但是我们没有证书,这样输出会产生错误。我们只能用个小技巧来完成这个*作了。

先将代码生成为Release目标,然后打开工程的输出文件夹,通常情况下这个目录是/Users/用户名/Library/Developer/Xcode/DerivedData/以工程名打头的文件夹/Build/Products/Release-iphoneos这个目录下有个 xxx.app的文件,就是生成的程序了。把这个xxx.app拖到iTunes中,它会出现在应用程序那个列表中,然后再把它从iTunes的那个列表中拖出来(比如拖到桌面),它就这样变成xxx.ipa了!把这个.ipa发给别人,大家就可以跟您一起分享这个程序了

codedesign如何下载设计图

1、在CodeDesign上完成设计图的编辑和调整。并确保已经保存好。

2、点击页面右上角的下载按钮。弹出下载对话框。

3、在下载对话框中选择您需要下载的设计图格式。根据您需要的设计图格式不同。有可能会提供多个下载选项。例如PNG、JPG、SVG、PDF等。选择适当的格式进行下载。

4、点击下载按钮。开始下载您选择的设计图。下载完成后。您可以在本地文件夹中找到下载的设计图文件。

本文链接:http://www.okyx8.com/html/87966162.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件举报,一经查实,本站将立刻删除。