如何在没有99美元的Apple证书的情况下,将Xcode的iPhone应用程序部署到真正的iPhone设备?
答案 0 :(得分:91)
我使用了两个混音:Jason's和alex's。第二,我们有能力调试的优势。我大部分时间都只是复制下面的内容(并简化alex's):
2012年1月更新: 这仍适用于SDK 4.2.1和iOS 5.0.1 - 我刚刚测试了所有内容新的计算机和设备!
修补iPhone SDK以允许使用此证书:
启动Keychain Access.app。如果未选择任何项目,请从Keychain菜单中选择Certificate Assistant,然后选择Create a Certificate。
点击继续
点击继续
删除 电子邮件地址字段。
点击继续直至完成。
您应该看到“此根证书不受信任”。这是预期的。
设置iPhone SDK以允许使用自签名证书:
sudo /usr/bin/sed -i .bak 's/XCiPhoneOSCodeSignContext/XCCodeSignContext/' /Developer/Platforms/iPhoneOS.platform/Info.plist
如果您打开Xcode,请重新启动它以使此更改生效。
如果您使用的是iOS 5,那就是它!现在就试试!它可能不允许调试,但应用程序将在那里!
我对此感到非常惊讶,因为you should know,我不知道所有这些黑客的全部内容!正如我指出的那样,我所做的只是改进了我在其他地方发现的一点点。
所以是的,整个方法不再以同样的方式工作了,我无法找到一个新的...除了{{3}但我无法完成整个过程。
最后,如果您因任何原因需要卸载,请查看此帖子的结尾。在我的情况下,我不得不因为我无法弄清楚为什么所有蓝色这整个方法都停止工作,我不能再关心了,因为我们已经获得了漫长的等待许可。 (FUNING DUNS号码需要很长时间......)
在越狱的iPhone上,通过添加来源** [{3}} **
删除代码签名和权利的SDK要求(我很喜欢this, which uses a tool called Theos!):
sudo /usr/bin/sed -i .bak '/_REQUIRED/N;s/YES/NO/' /Developer/Platforms/iPhoneOS.platform/Developer/SDKs/iPhoneOS5.0.sdk/SDKSettings.plist
注意 到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
通过修补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,请重新启动此更改(以及最后一次)以使其生效。
打开“项目>编辑项目设置”(从菜单中)。单击“Build”选项卡。 在列表中找到“代码签名身份”及其子“任何iPhoneOS设备”,并将其设置为条目 “不要代码签名“ 强>:
在此之后可以随意撤消第3步。至少在我的情况下它很顺利。
使用我们自定义的自签名证书(第一个操作方法)将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。打开窗口>管理器。从左侧列表中选择设备,然后单击“用于开发”。系统将提示您输入配置网站,单击“取消”。它可以使合法的配置更容易,但不会使非法的配置变得更加困难。
现在你必须为你制作的每个新项目做最后一部分。转到菜单Project>新建阶段>新运行脚本构建阶段。在窗口中,复制/粘贴此内容:
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
答案 1 :(得分:56)
听起来应用程序没有签名。从Cydia下载ldid,然后像这样使用它:ldid -S /Applications/AccelerometerGraph.app/AccelerometerGraph
还要确保二进制文件标记为可执行文件:chmod +x /Applications/AccelerometerGraph.app/AccelerometerGraph
答案 2 :(得分:42)
为了在真实设备上测试您的应用而不是支付Apple开发者费用(或越狱您的设备),您可以使用Xcode 7和iOS 9支持的新免费配置。
以下是the documentation或多或少采取的步骤(非常好,请仔细阅读):
<强> 1。在Xcode中添加Apple ID
转到XCode&gt;偏好&gt;帐户标签&gt;添加按钮(+)&gt;添加Apple ID。有关更多帮助,请参阅the docs。
<强> 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,最终允许这样做。
答案 3 :(得分:9)
您不能,如果您正在讨论使用官方SDK构建的应用程序并直接从xcode部署。
答案 4 :(得分:8)
你必须越狱你的设备。
答案 5 :(得分:6)
有一种方法可以部署iPhone应用程序而无需支付给苹果 您必须越狱设备并按照http://www.alexwhittemore.com/?p=398
中的说明操作答案 6 :(得分:5)
我在任何地方都看不到任何迹象表明你可以在没有(付费)证书的情况下临时部署到真正的iPhone。
答案 7 :(得分:4)
昨晚我正在通过Apple开发人员,在配置证书中,我找到了类似“签署团队成员”的内容。我认为有一种方法可以将团队成员添加到付费个人资料中。 您可以向App Id所有者(付费用户)询问是否将您添加为团队成员。我不确定。还在搜索。
答案 8 :(得分:3)
不,这很容易做到。在Xcode中,将Active Configuration设置为Release。将设备从模拟器更改为设备 - 无论SDK。如果要直接导出到iPhone,请将其连接到计算机。按Build and Go。如果您的iPhone未连接到计算机,则会显示一条消息,指出您的iPhone未连接。
如果这适用于您:( iPhone未连接)
转到项目文件夹,然后转到内部的build文件夹。转到Release-iphoneos文件夹并将应用程序放入其中,然后拖放iTunes图标。当您同步iTouch设备时,它会将其复制到您的设备。它还将在iTunes中显示为iPhone的应用程序。
希望这有帮助!
PS:如果它说的是证书无效,只需点击Xcode中的项目,左侧文件堆栈中的小项目图标,然后按Apple + I,或从菜单栏中获取信息。单击顶部的Build。在代码签名下,更改代码签名身份 - 任何iPhone OS设备都不要签名。
答案 9 :(得分:2)
Cawas发布的解决方案也与XCode4完美配合。但是,IDE的UI有一些变化,因此您需要进行一些研究才能找到Run Script:)
在Project Navigator视图中,单击项目的根项,然后在中间窗口中选择Target,然后单击Build Phases选项卡,在底部您将看到Add Build Phase按钮,单击并选择Add Run Script,然后粘贴Cawas发布的“codesign”脚本。
答案 10 :(得分:1)
没有解决方法。如果应用已在您的设备中注册,则您只能临时部署应用。这可以防止您构建自己的应用商店..