ios iPhone App 减去 App Store?

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/37464/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-08-30 15:15:16  来源:igfitidea点击:

iPhone App Minus App Store?

iosiphone

提问by Dan Walker

If I create an application on my Mac, is there any way I can get it to run on an iPhone without going through the app store?

如果我在 Mac 上创建一个应用程序,有什么方法可以让它在 iPhone 上运行而无需通过应用程序商店?

It doesn't matter if the iPhone has to be jailbroken, as long as I can still run an application created using the official SDK. For reasons I won't get into, I can't have this program going through the app store.

iPhone是否越狱没有关系,只要我仍然可以运行使用官方SDK创建的应用程序。由于我不会进入的原因,我不能让这个程序通过应用程序商店。

采纳答案by Jason Weathered

Official Developer Program

官方开发者计划

For a standard iPhone you'll need to pay the US$99/yr to be a member of the developer program. You can then use the adhoc system to install your application onto up to 100 devices. The developer program has the details but it involves adding UUIDs for each of the devices to your application package. UUIDs can be easiest retrieved using Ad Hoc Helperavailable from the App Store. For further details on this method, see Craig Hockenberry's Beta testing on iPhone 2.0article

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

Jailbroken iPhone

越狱的 iPhone

For jailbroken iPhones, you can use the following method which I have personally tested using the AccelerometerGraphsample app on iPhone OS 3.0.

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

Create Self-Signed Certificate

创建自签名证书

First you'll need to create a self signed certificate and patch your iPhone SDK to allow the use of this certificate:

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

  1. Launch Keychain Access.app. With no items selected, from the Keychain menu select Certificate Assistant, then Create a Certificate.

    Name: iPhone Developer
    Certificate Type: Code Signing
    Let me override defaults: Yes

  2. Click Continue

    Validity: 3650 days

  3. Click Continue

  4. Blank out the Email address field.

  5. Click Continue until complete.

    You should see "This root certificate is not trusted". This is expected.

  6. Set the iPhone SDK to allow the self-signed certificate to be used:

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

    If you have Xcode open, restart it for this change to take effect.

  1. 启动 Keychain Access.app。没有选择任何项目,从钥匙串菜单中选择证书助手,然后创建证书。

    名称: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,请重新启动它以使此更改生效。

Manual Deployment over WiFi

通过 WiFi 手动部署

The following steps require openssh, and uikittoolsto be installed first. Replace jasoniphone.localwith the hostname of the target device. Be sure to set your own password on both the mobileand rootusers after installing SSH.

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

To manually compile and install your application on the phone as a system app (bypassing Apple's installation system):

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

  1. Project, Set Active SDK, Device and Set Active Build Configuration, Release.

  2. Compile your project normally (using Build, not Build & Go).

  3. In the build/Release-iphoneosdirectory you will have an app bundle. Use your preferred method to transfer this to /Applications on the device.

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

  4. Let SpringBoard know the new application has been installed:

    ssh [email protected] uicache

    This only has to be done when you add or remove applications. Updated applications just need to be relaunched.

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

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

  3. 在该build/Release-iphoneos目录中,您将拥有一个应用程序包。使用您喜欢的方法将其传输到设备上的 /Applications。

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

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

    ssh [email protected] uicache

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

To make life easier for yourself during development, you can setup SSH key authentication and add these extra steps as a custom build step in your project.

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

Note that if you wish to remove the application later you cannot do so via the standard SpringBoard interface and you'll need to use SSH and update the SpringBoard:

请注意,如果您希望稍后删除该应用程序,则无法通过标准 SpringBoard 接口执行此操作,您需要使用 SSH 并更新 SpringBoard:

ssh [email protected] rm -r /Applications/AccelerometerGraph.app &&
ssh [email protected] uicache

回答by Robert H?glund

Yes, once you have joined the iPhone Developer Program, and paid Apple $99, you can provision your applications on up to 100 iOS devices.

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

回答by ohho

  • Build your app
  • Upload to a crack site
  • (If you app is good enough) the crack version will be posted minutes later and ready for everyone to download ;-)
  • 构建您的应用
  • 上传到破解站点
  • (如果你的app足够好)破解版将在几分钟后发布,供大家下载;-)

回答by Richard J. Ross III

With the help of this post, I have made a script that will install via the app Installous for rapid deployment:

这篇文章的帮助下,我制作了一个脚本,该脚本将通过应用程序 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

What Is missing in the post referenced above, is the iTunesMetadata. Without this, Installous will not install apps correctly. Here is an example of an iTunesMetadata:

上面引用的帖子中缺少的是 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>

Obviously, replace all instances of MyApp with the name of your app and MyCompany with the name of your company.

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

Basically, this will install on any jailbroken device with Installous installed. After it is set up, this results in very fast deployment, as it can be installed from anywhere, just upload it to your companies website, and download the file directly to the device, and copy / move it to ~/Documents/Installous/Downloads.

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

回答by qqbenq

With the upcoming Xcode 7 it's now possible to install apps on your devices without an apple developer license, so now it is possible to skipthe app store and you don't have to jailbreak your device.

借助即将推出的 Xcode 7,现在无需苹果开发者许可即可在您的设备上安装应用程序,因此现在可以跳过应用程序商店,而无需越狱设备。

Now everyone can get their app on their Apple device.

Xcode 7 and Swift now make it easier for everyone to build apps and run them directly on their Apple devices. Simply sign in with your Apple ID, and turn your idea into an app that you can touch on your iPad, iPhone, or Apple Watch. Download Xcode 7 beta and try it yourself today. Program membership is not required.

现在每个人都可以在他们的 Apple 设备上获取他们的应用程序。

Xcode 7 和 Swift 现在让每个人都可以更轻松地构建应用程序并直接在他们的 Apple 设备上运行它们。只需使用您的 Apple ID 登录,即可将您的想法转化为可在 iPad、iPhone 或 Apple Watch 上触摸的应用程序。立即下载 Xcode 7 beta 并亲自试用。不需要计划会员资格。

Quoted from: https://developer.apple.com/xcode/

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

Update:

更新:

XCode 7 is now released:

XCode 7 现已发布:

Free On-Device DevelopmentNow everyone can run and test their own app on a device—for free. You can run and debug your own creations on a Mac, iPhone, iPad, iPod touch, or Apple Watch without any fees, and no programs to join. All you need to do is enter your free Apple ID into Xcode. You can even use the same Apple ID you already use for the App Store or iTunes. Once you've perfected your app the Apple Developer Program can help you get it on the App Store.

See Launching Your App on Devicesfor detailed information about installing and running on devices.

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

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

回答by August

It's worth noting that if you go the jailbroken route, it's possible (likely?) that an iPhone OS update would kill your ability to run these apps. I'd go the official route and pay the $99 to get authorized. In addition to not having to worry about your apps being clobbered, you also get the opportunity (should you choose) to release your apps on the store.

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

回答by David Airapetyan

After copying the the app to the iPhone in the way described by @Jason Weathered, make sure to "chmod +x" of the app, otherwise it won't run.

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

回答by Rev316

*Changes/Notes to make this work for Xcode 3.2.1and iPhone SDK 3.1.2

*更改/注释使此工作适用于Xcode 3.2.1iPhone SDK 3.1.2

Manual Deployment over WiFi

通过 WiFi 手动部署

2) Be sure to restart Xcode after modifying the Info.plist

2)修改Info.plist后一定要重启Xcode

3) The "uicache" command is not found, using killall -HUP SpringBoard worked fine for me.

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

Other then that, I can confirm this works fine.

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

Mac users, using PwnageTool 3.1.4 worked great for Jailbreaking (DL via torrent).

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

回答by Mattias Wadman

If you patch /Developer/Platforms/iPhoneOS.platform/Info.plistand then try to debug a application running on the device using a real development provisionen profile from Apple it will probably not work. Symptoms are weird error messages from com.apple.debugserverand that you can use any bundle identifier without getting a error when building in Xcode. The solution is to restore Info.plist.

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

回答by Vineet Choudhary

You can use AppBox, A mac application that uses your dropbox account to distribute you ad-hoc and enterprise apps, if you want to install form any other browser.

如果您想从任何其他浏览器安装,您可以使用AppBox,这是一个使用您的 Dropbox 帐户向您分发临时和企业应用程序的 mac 应用程序。

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

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



Options

选项

Archive and Upload IPA

存档和上传 IPA

  • Just Select Project/Workspace to archive-> make ipa-> upload ipa-> send mail-> and shutdown mac
  • 只需选择要存档的项目/工作区->制作 ipa->上传 ipa->发送邮件-> 并关闭 mac

Upload IPA Only

仅上传 IPA

  • Just select IPA file to upload ipa-> send mail-> and shutdown mac
  • 只需选择 IPA 文件上传 ipa->发送邮件-> 并关闭 mac

Feature

特征

  • Keep Same Link
    • This feature will keep same short url for all future ipa uploaded with same bundle identifier.
    • If this option is enabled, you can also download the previous build with same url.
  • Auto E-MailApp Distribution Link
  • Auto Shutdown Macafter Distribution
  • Maximum Upload Size=> Equal to your Dropbox account storage
  • Uploaded App Expiration=> Until you delete from your Dropbox
  • Installations Per App=> Unlimited
  • Dashboard*

    *Will be available in future version

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

    *将在未来版本中可用



AppBox vs Diawi

AppBox vs Diawi

Screenshot

截屏

Upload IPA

上传 IPA

Archive and Upload IPA

存档和上传 IPA

Uploading IPA

上传 IPA

Give it a try here https://github.com/vineetchoudhary/AppBox-iOSAppsWirelessInstallation/releases

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