iPhone App减去App​​ Store?


199

如果我在Mac上创建应用程序,是否有任何方法可以让它在iPhone上运行而无需通过应用程序商店?

只要我仍然可以运行使用官方SDK创建的应用程序,就不必将iPhone越狱。出于某些原因,我无法进入应用程序商店。


1
从Xcode 7开始,现在可以在连接的设备上运行应用程序,而无需注册开发人员帐户或对该设备进行越狱。有关详细信息,请参见本指南
Suragch 2015年

您可以使用AppBox,这是一个Mac应用程序,它使用您的保管箱帐户向您分发即席和企业应用程序。给它这里试github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/...
维尼特乔杜里

Answers:


187

官方开发人员计划

对于标准iPhone,您需要每年支付99美元才能成为开发人员计划的成员。然后,您可以使用即席系统将应用程序安装到最多100个设备上。开发人员程序具有详细信息,但它涉及将每个设备的UUID添加到您的应用程序包中。可以使用App Store中的Ad Hoc Helper来最轻松地检索UUID 。有关此方法的更多详细信息,请参阅Craig Hockenberry 在iPhone 2.0上进行Beta测试的文章

越狱的iPhone

对于越狱的iPhone,您可以使用以下方法,该方法是我在iPhone OS 3.0上使用AccelerometerGraphGraph示例应用程序亲自测试过的。

创建自签名证书

首先,您需要创建一个自签名证书,并修补您的iPhone SDK以允许使用此证书:

  1. 启动Keychain Access.app。在未选择任何项目的情况下,从“钥匙串”菜单中选择“证书助手”,然后选择“创建证书”。

    名称:iPhone开发人员
    证书类型:代码签名
    让我覆盖默认值:是

  2. 点击继续

    有效期:3650天

  3. 点击继续

  4. 清空电子邮件地址字段。

  5. 单击继续,直到完成。

    您应该看到“此根证书不受信任”。这是预期的。

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

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

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

通过WiFi手动部署

以下步骤要求openssh,并且uikittools首先安装。替换jasoniphone.local为目标设备的主机名。安装SSH之后,请务必在mobileroot用户上都设置自己的密码。

要将应用程序手动编译并安装在手机上作为系统应用程序(绕过Apple的安装系统):

  1. 项目,设置活动SDK,设备并设置活动构建配置,发布。

  2. 正常编译项目(使用Build,而不是Build&Go)。

  3. build/Release-iphoneos目录中,您将拥有一个应用程序捆绑包。使用您的首选方法将此传输到设备上的/ Applications。

    scp -r AccelerometerGraph.app root@jasoniphone:/Applications/

  4. 让SpringBoard知道已经安装了新应用程序:

    ssh mobile@jasoniphone.local uicache

    仅在添加或删除应用程序时才需要这样做。更新的应用程序只需要重新启动。

为了使开发过程更轻松,您可以设置SSH密钥身份验证并将这些额外的步骤添加为项目中的自定义构建步骤。

请注意,如果您希望以后删除应用程序,则无法通过标准SpringBoard界面删除,而需要使用SSH并更新SpringBoard:

ssh root@jasoniphone.local rm -r /Applications/AccelerometerGraph.app &&
ssh mobile@jasoniphone.local uicache

2
我的不会建立-我尝试建立时Xcode立即给出代码签名错误...
致力于

1
uicache如果您已uikittools安装软件包,则@ Rev316 应该在那里。
杰森风化了2010年

我跟着你,但遇到了这个错误:stackoverflow.com/questions/2161877/...
hungbm06

此外,您还希望通过ssh设置私钥/公钥对,以使事情变得无密码
conradev

2
供应配置文件如何?有没有一种方法无需订阅开发人员程序就可以得到?
Teodor Kostov

18

是的,一旦您加入iPhone开发人员计划并向Apple支付了99美元,就可以在多达100台iOS设备上配置应用程序。


2
为什么会有100个安装限制?
Marcus Leon 2009年

25
因此,人们不能使用此方法完全绕过App Store。
willc2

2
而100个限制将计为您当年在iOS Provisioning Portal上注册的设备数量,而不是当前的数量。因此,如果添加5台设备,然后删除所有5台设备,则可能会增加95台(而不是100台)设备。
斯科特·威尔逊

1
但是,一旦续订了开发人员程序,所用设备的数量就会重置。
dgund 2011年

1
而且,临时设置配置文件将在3个月内到期,因此您甚至无法将应用程序永久分发到已注册的有限(100)台设备中。
Bogatyr 2012年

14
  • 构建您的应用
  • 上传到破解网站
  • (如果您的应用程序足够好),破解版本将在几分钟后发布,并可供所有人下载;-)

8

这篇文章的帮助下,我制作了一个脚本,该脚本将通过应用程序Installous安装以便快速部署:

# compress application.
/bin/mkdir -p $CONFIGURATION_BUILD_DIR/Payload
/bin/cp -R $CONFIGURATION_BUILD_DIR/MyApp.app $CONFIGURATION_BUILD_DIR/Payload
/bin/cp iTunesCrap/logo_itunes.png $CONFIGURATION_BUILD_DIR/iTunesArtwork
/bin/cp iTunesCrap/iTunesMetadata.plist $CONFIGURATION_BUILD_DIR/iTunesMetadata.plist

cd $CONFIGURATION_BUILD_DIR

# zip up the HelloWorld directory

/usr/bin/zip -r MyApp.ipa Payload iTunesArtwork iTunesMetadata.plist

上面提到的帖子中缺少的是iTunesMetadata。否则,Installous将无法正确安装应用程序。这是iTunesMetadata的示例:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
    <key>appleId</key>
    <string></string>
    <key>artistId</key>
    <integer>0</integer>
    <key>artistName</key>
    <string>MYCOMPANY</string>
    <key>buy-only</key>
    <true/>
    <key>buyParams</key>
    <string></string>
    <key>copyright</key>
    <string></string>
    <key>drmVersionNumber</key>
    <integer>0</integer>
    <key>fileExtension</key>
    <string>.app</string>
    <key>genre</key>
    <string></string>
    <key>genreId</key>
    <integer>0</integer>
    <key>itemId</key>
    <integer>0</integer>
    <key>itemName</key>
    <string>MYAPP</string>
    <key>kind</key>
    <string>software</string>
    <key>playlistArtistName</key>
    <string>MYCOMPANY</string>
    <key>playlistName</key>
    <string>MYAPP</string>
    <key>price</key>
    <integer>0</integer>
    <key>priceDisplay</key>
    <string>nil</string>
    <key>rating</key>
    <dict>
        <key>content</key>
        <string></string>
        <key>label</key>
        <string>4+</string>
        <key>rank</key>
        <integer>100</integer>
        <key>system</key>
        <string>itunes-games</string>
    </dict>
    <key>releaseDate</key>
    <string>Sunday, December 12, 2010</string>
    <key>s</key>
    <integer>143441</integer>
    <key>softwareIcon57x57URL</key>
    <string></string>
    <key>softwareIconNeedsShine</key>
    <false/>
    <key>softwareSupportedDeviceIds</key>
    <array>
        <integer>1</integer>
    </array>
    <key>softwareVersionBundleId</key>
    <string>com.mycompany.myapp</string>
    <key>softwareVersionExternalIdentifier</key>
    <integer>0</integer>
    <key>softwareVersionExternalIdentifiers</key>
    <array>
        <integer>1466803</integer>
        <integer>1529132</integer>
        <integer>1602608</integer>
        <integer>1651681</integer>
        <integer>1750461</integer>
        <integer>1930253</integer>
        <integer>1961532</integer>
        <integer>1973932</integer>
        <integer>2026202</integer>
        <integer>2526384</integer>
        <integer>2641622</integer>
        <integer>2703653</integer>
    </array>
    <key>vendorId</key>
    <integer>0</integer>
    <key>versionRestrictions</key>
    <integer>0</integer>
</dict>
</plist>

显然,将MyApp的所有实例替换为您的应用程序名称,并将MyCompany替换为您的公司名称。

基本上,它将安装在安装了Installous的任何越狱设备上。设置完成后,部署非常快,因为它可以从任何地方安装,只需将其上传到公司网站,然后将文件直接下载到设备上,然后将其复制/移动到即可~/Documents/Installous/Downloads


@ToolmakerSteve我对此表示怀疑,但是现在您可以免费向侧面加载带有任何Apple ID的iOS应用程序,我认为没有必要。
理查德·罗斯三世

7

借助即将推出的Xcode 7,现在可以在没有Apple开发人员许可的情况下在您的设备上安装应用程序,因此现在可以跳过应用程序商店,而不必越狱设备。

现在,每个人都可以在Apple设备上获取其应用程序。

Xcode 7和Swift现在使每个人都可以更轻松地构建应用程序并直接在其Apple设备上运行它们。只需使用Apple ID登录,即可将您的想法变成可以在iPad,iPhone或Apple Watch上触摸的应用程序。下载Xcode 7 Beta,并立即尝试。程序成员身份不是必需的。

引用自:https : //developer.apple.com/xcode/

更新:

XCode 7现在发布了:

免费的设备上开发 现在,每个人都可以免费在设备上运行和测试自己的应用程序。您可以在Mac,iPhone,iPad,iPod touch或Apple Watch上运行和调试自己的作品,而无需支付任何费用,也无需加入任何程序。您需要做的就是在Xcode中输入免费的Apple ID。您甚至可以使用已经用于App Store或iTunes的相同Apple ID。完善您的应用程序后,Apple Developer Program可以帮助您在App Store上获取它。

有关在设备上安装和运行的详细信息,请参阅在设备上启动应用程序


4

值得注意的是,如果您走了越狱路线,iPhone OS更新可能(有可能?)杀死您运行这些应用程序的能力。我会走官方路线,并支付$ 99获得授权。除了不必担心应用程序被破坏之外,您还可以(应该选择)在商店中发布应用程序。


2

按照@Jason Weathered所述的方法将应用程序复制到iPhone后,请确保将应用程序“ chmod + x”,否则将无法运行。


1

*更改/注释使之适用于Xcode 3.2.1iPhone SDK 3.1.2

通过WiFi手动部署

2)确保在修改Info.plist之后重新启动Xcode

3)找不到“ uicache”命令,使用killall -HUP SpringBoard对我来说很好。

除此之外,我可以确认它可以正常工作。

使用PwnageTool 3.1.4的Mac用户非常适合越狱(通过torrent通过DL)。


啊。感谢Jason,感谢有据可查的帖子!可能要提到为像我这样的越狱小家伙安装Cydia的UIKit工具包。
Rev316 2010年

1

如果您打了补丁/Developer/Platforms/iPhoneOS.platform/Info.plist,然后尝试使用Apple的真实Development Provisionen配置文件调试在设备上运行的应用程序,则该应用程序可能无法正常工作。症状是来自的奇怪错误消息,com.apple.debugserver在Xcode中构建时,可以使用任何包标识符而不会出现错误。解决的办法是还原Info.plist


0

如果您想通过任何其他浏览器进行安装,则可以使用AppBox,这是一个Mac应用程序,该应用程序使用您的保管箱帐户来分发即席和企业应用程序。

https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases


选件

存档和上传IPA

  • 只需选择要归档的项目/工作区-> 创建ipa- > 上传ipa- > 发送邮件 ->然后关闭mac

仅上传IPA

  • 只需选择IPA文件来上传ipa- > 发送邮件 ->然后关闭mac

特征

  • 保持相同的链接
    • 对于以后使用相同的包标识符上传的所有ipa,此功能将保留相同的短网址。
    • 如果启用此选项,则还可以使用相同的URL下载以前的版本。
  • 自动电子邮件应用程序分发链接
  • 分发后自动关闭Mac
  • 最大上传大小 =>等于您的Dropbox帐户存储空间
  • 上传的应用程序到期 =>直到您从Dropbox中删除
  • 每个应用的安装 =>无限
  • 仪表板*

    * 将在将来的版本中提供


AppBox与Diawi

屏幕截图

上载IPA

存档和上传IPA

上载IPA

在这里尝试一下https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.