如果没有 99 美元的 Apple 证书,如何将 iPhone 应用程序从 Xcode 部署到真实的 iPhone 设备?

有帮助吗?

解决方案

听起来应用程序没有签名。从Cydia下载ldid,然后像这样使用它: ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph

还要确保二进制文件标记为可执行文件: chmod + x /Applications/AccelerometerGraph.app/AccelerometerGraph

其他提示

我混合使用了两种方法: 杰森的亚历克斯的. 。对于第二个我们有能够调试的优势。我主要会复制下面的内容(并简化亚历克斯的):

2012 年 1 月更新: 这仍然适用于 SDK 4.2.1 和 iOS 5.0.1 - 我刚刚在新计算机和设备上对其进行了测试!


1.创建自签名证书

修补您的 iPhone SDK 以允许使用此证书:

  1. 启动钥匙串访问应用程序。在未选择任何项目的情况下,从“钥匙串”菜单中选择“证书助手”,然后选择“创建证书”。

    • 姓名: iPhone 开发者
    • 证书类别: 代码签名
    • 让我覆盖默认值: 是的
  2. 单击继续

    • 有效性: 3650天
  3. 单击继续

  4. 头脑一片空白电子邮件 地址字段。

  5. 点击 继续直至完成.

    你应该看到 “此根证书不受信任”. 。这是预料之中的。

  6. 设置iPhone SDK以允许使用自签名证书:

    sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
    

    如果您打开了 Xcode,请重新启动它以使此更改生效。

如果您使用的是 iOS 5,就这样!现在就试试!它可能不允许调试,但应用程序会在那里!

我对此感到非常惊讶,因为 你应该知道, ,我不知道所有这些黑客攻击是怎么回事!正如我所指出的,我所做的只是稍微改进了我在其他地方发现的东西。

所以是的, 整体方法 不再以同样的方式工作,我懒得去寻找新的......除了 这个,它使用了一个名为 Theos 的工具 但我无法经历整个过程。

最后,如果你需要 卸载它 无论出于何种原因,请检查本文的结尾。就我而言,我不得不这样做,因为我无法弄清楚为什么整个方法中的所有蓝色都停止工作,而且我不再关心,因为我们已经获得了等待已久的许可证。(该死的 DUNS 号码需要这么长时间......)

.

.


.

.

.

2.启用 Xcode 在越狱设备上构建

  1. 在您越狱的 iPhone 上,安装该应用程序 应用同步 通过添加源** http://repo.hackyouriphone.org**

  2. 删除 SDK 对代码签名和权利的要求(我喜欢 sed!):

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
    
  3. 注意iPhoneOS5.0.sdk 部分。例如,如果您使用的是 iOS 4.2 SDK,只需相应地替换它:

    sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist
    
  4. 通过修补 Xcode 完成需求删除。这意味着二进制编辑:

    cd /Developer/Platforms/iPhoneOS.platform/Developer/Library/Xcode/Plug-ins/iPhoneOS\ Build\ System\ Support.xcplugin/Contents/MacOS/
    dd if=iPhoneOS\ Build\ System\ Support of=working bs=500 count=255
    printf "\xc3\x26\x00\x00" >> working
    /bin/mv -n iPhoneOS\ Build\ System\ Support iPhoneOS\ Build\ System\ Support.original
    /bin/mv working iPhoneOS\ Build\ System\ Support
    chmod a+x iPhoneOS\ Build\ System\ Support
    

    如果您打开了 Xcode,请重新启动它以使此更改(以及最后一个更改)生效。

  5. 打开 “项目>编辑项目设置” (来自菜单)。单击 “建造” 标签。寻找 “代码签名身份” 和它的孩子 “任何 iPhoneOS 设备” 在列表中,并将两者都设置为条目 “不要编码签名”:

    alt text

    在此之后,请随意撤消步骤 3。至少就我而言,一切进展顺利。

  6. 将 Xcode 设置为使用我们定制的代码签名 自签名证书 (第一个操作方法)。如果您不想进行调试,则可以跳过此步骤:

    mkdir /Developer/iphoneentitlements401
    cd /Developer/iphoneentitlements401
    curl -O http://www.alexwhittemore.com/iphone/gen_entitlements.txt
    mv gen_entitlements.txt gen_entitlements.py
    chmod 777 gen_entitlements.py
    

    插入 iPhone 并打开 Xcode。打开窗口>管理器。从左侧列表中选择设备,然后单击“用于开发”。系统将提示您进行预配网站登录,单击“取消”。它的存在是为了使合法的配置变得更容易,但不会使非法的不配置变得更加困难。

    现在 您必须为您制作的每个新项目执行最后一部分. 。转到菜单“项目”>“新建构建阶段”>“新建运行脚本构建阶段”。在窗口中,复制/粘贴以下内容:

    export CODESIGN_ALLOCATE=/Developer/Platforms/iPhoneOS.platform/Developer/usr/bin/codesign_allocate
    if [ "${PLATFORM_NAME}" == "iphoneos" ]; then
    /Developer/iphoneentitlements401/gen_entitlements.py "my.company.${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
    

.

.


.

.

卸载

对于第一部分:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Info.plist.bak /Developer/Platforms/iPhoneOS.platform/Info.plist

对于第二部分:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
sudo mv -f iPhoneOS\ Build\ System\ Support.original iPhoneOS\ Build\ System\ Support

如果您执行了步骤 3 而不是步骤 2,也只需进行相应修改即可:

sudo mv -f /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist.bak /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS4.2.sdk/SDKSettings.plist

剩下的,只是恢复你在 XCode 上所做的事情并删除 /Developer/iphoneentitlements401/gen_entitlements.py 如果你想:

sudo rm -f /Developer/iphoneentitlements401/gen_entitlements.py

Xcode 7后的免费配置

为了在真实设备上测试您的应用而不是支付Apple开发者费用(或越狱您的设备),您可以使用Xcode 7和iOS 9支持的新免费配置。

以下是文档(非常好,请仔细阅读):

<强> 1。在Xcode中添加Apple ID

转到XCode&gt;偏好&gt;帐户标签&gt;添加按钮(+)&gt;添加Apple ID。有关更多帮助,请参阅文档

<强> 2。单击“项目导航器”中的“常规”选项卡

第3。从“团队”弹出菜单中选择您的Apple ID。

<强> 4。连接您的设备并在方案菜单中选择它。

<强> 5。单击“修复问题”按钮

如果收到有关捆绑名称无效的错误,请将其更改为唯一的。

<强> 6。运行您的应用

在Xcode中,单击“构建并运行”按钮。

<强> 7。在设备设置中信任应用开发者

运行您的应用后,您将收到安全错误,因为您要运行的应用不是来自App Store。

设备上,转到设置&gt;一般&gt;个人资料&gt; 你的Apple-ID-name &gt;信任你的Apple-ID-name &gt;信任。

<强> 8。再次在您的设备上运行您的应用。

就是这样。您现在可以运行自己的(或任何其他具有源代码的应用程序),而无需支付99美元。感谢Apple,最终允许这样做。

您不能,如果您正在讨论使用官方SDK构建的应用程序并直接从xcode部署。

你必须越狱你的设备。

有一种方法可以部署iPhone应用程序而无需支付给苹果 您必须越狱您的设备并按照 http://www.alexwhittemore.com/?中的说明进行操作。 p = 398

我在任何地方都看不到任何迹象表明你可以在没有(付费)证书的情况下临时部署到真正的iPhone。

我昨晚经过Apple开发人员,在配置证书中我找到了类似“签署团队成员”的内容。我认为有一种方法可以将团队成员添加到付费个人资料中。 您可以向App Id所有者(付费用户)询问是否将您添加为团队成员。我不确定。还在搜索。

不,这很容易做到。在 Xcode 中,将“活动配置”设置为“发布”。将设备从模拟器更改为设备 - 无论什么 SDK。如果您想直接导出到 iPhone,请将其连接到计算机。按“构建并运行”。如果您的 iPhone 未连接到计算机,则会出现一条消息,提示您的 iPhone 未连接。

如果这适用于您:(iPhone 未连接)

转到您的项目文件夹,然后转到其中的构建文件夹。转到 Release-iphoneos 文件夹并将应用程序放入其中,拖放到 iTunes 图标上。当您同步 iTouch 设备时,它会将其复制到您的设备。它还将作为 iPhone 的应用程序出现在 iTunes 中。

希望这可以帮助!

附:如果它显示证书无效,只需单击 Xcode 中的项目(左侧文件堆栈中的小项目图标),然后按 Apple+I,或者从菜单栏中执行“获取信息”。单击顶部的构建。在“代码签名”下,将“代码签名身份 - 任何 iPhone OS 设备”更改为“不签名”。

这完全取决于您使用的Xcode版本,因为不同的版本使用不同的方法在没有配置文件的情况下部署到您的iPhone。

Xcode 3.2.1是一个很好的版本,很容易理清,但我们需要知道你正在使用的版本。

Cawas发布的解决方案也与XCode4完美配合。但是,IDE的UI有一些变化,因此您需要进行一些研究才能找到Run Script:)

在Project Navigator视图中,单击项目的根项,然后在中间窗口中选择Target,然后单击Build Phases选项卡,在底部您将看到Add Build Phase按钮,单击并选择Add Run Script,然后粘贴“代码签名”由Cawas发布的脚本。

没有解决方法。如果应用已在您的设备中注册,则您只能临时部署应用。这可以防止您构建自己的应用商店..

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top