小编Des*_*erd的帖子

是否有公共方法强制MPNowPlayingInfoCenter显示播客控件?

我希望控制中心(通过MPNowPlayingInfoCenter)显示Apple用播客显示的前进15秒/后15秒控制,如下所示:

播客控件

完全缺乏文档告诉我,没有明显的方法可以做到这一点,但有没有人发现任何非显而易见的方法来强制这个而不诉诸私有方法?

我已经处理了前进/后退按钮设置以适当推进,我只想使用更合适的UI.任何帮助将不胜感激.

audio ios mpnowplayinginfocenter ios7 control-center

50
推荐指数
2
解决办法
1万
查看次数

iOS应用内购买:沙盒无效的产品ID

在我遇到问题之前稍微奇怪的设置背景:为客户端开发应用程序,我们使用的是另一个iTunes开发人员帐户,而不是最终发布的用于开发和应用程序的Ad-Hoc版本的应用程序有Game Center和IAP集成.显然,我们最终必须在最终版本帐户上复制我们的设置,但问题似乎是无关的.

问题是尝试在沙箱中测试应用程序内购买.我们在临时账户中没有任何税务/银行信息,它没有以我的名义设置,所以我不能只添加我的.现在,每次我们发送SKProductsRequest和我在临时应用程序帐户的iTunes Connect部分添加的产品的产品标识符时,它都会在响应中作为无效的产品标识符返回.

这个请求在哪里identifiers是一个数组,其中包含我想要获得的字符串产品标识符:

_productsRequest = [[SKProductsRequest alloc] initWithProductIdentifiers:[NSSet setWithArray:identifiers]];
_productsRequest.delegate = self;
Run Code Online (Sandbox Code Playgroud)

而这个委托方法:

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response
{
   /*Other code for handling valid responses*/ 

    for (NSString *invalidProductId in response.invalidProductIdentifiers) {
        DLog(@"Invalid product id: %@" , invalidProductId);
    }
}
Run Code Online (Sandbox Code Playgroud)

返回标识符的此日志:

 -[InAppPurchaseManager productsRequest:didReceiveResponse:] Invalid product id: [Product ID That matches the one in ITC exactly]
Run Code Online (Sandbox Code Playgroud)

我知道ITC正在临时帐户中工作,因为我们所有的GameCenter沙箱集成都能正常运行.

其他注意事项:

  • 模拟器和多个设备上的结果相同.
  • 在sim和所有设备上退出正常的iTunes/App商店帐户.
  • 试着等了24个小时再试一次.
  • 试图添加一个不同的产品并尝试其标识符(虽然我没有等待24小时).
  • 看看这个:通过应用内购买解决无效的产品ID问题?不幸的是,并没有看到任何有用的东西.

在这一点上,我很难过.除了让设置此临时帐户的人员添加他们的税/银行信息之外,我还能做些什么才能从SKProductsRequest获得有效的产品?

任何帮助将不胜感激.谢谢!

storekit in-app-purchase ios ios6

10
推荐指数
1
解决办法
7328
查看次数

将由Xcode Bot签名的构建上传到testflight,因为get-task-allow错误而被拒绝

当试图将由Xcode Bot创建的签名.ipa文件上传到TestFlight时,我已经获得了标准

"无效的IPA:embedded.mobileprovision中的get-task-allow值与您的二进制文件不匹配.您确定使用与编译它的证书类型相同的证书创建了IPA吗?"

警告.问题是该应用程序没有授权文件,我绝对肯定该应用程序正在使用相应的证书进行签名.

  • 我的Bot使用的是一种构建方案,该方案设置为在归档时使用我的Ad-Hoc构建配置.
  • 我的Ad-Hoc构建配置与我的Release配置重复,但...
  • 代码签名标识明确设置为此应用程序帐户的分发证书.

当我解压缩.ipa然后运行时codesign -d -vvvv /path/to/The.app,它确认应用程序是使用适当的分发证书签名的.我还可以使用Craig Hockenberry的超级实用的quicklook插件来确认embedded.mobileprovision是适当的Ad-Hoc配置文件.

超级奇怪/令人沮丧的部分 - 如果我下载了Bot创建的.xcarchive,然后通过双击签名,然后通过组织者内的传统Distribute ...按钮,它会顺利上传到TestFlight.

我对成功上传的版本运行了相同的协同签名检查,除了CDHash和创建.ipa的日期之外,结果是相同的.

Apple 关于代码签名文档(向下滚动到"Code Directory Hash")似乎表明不匹配的哈希值可能意味着出现了问题:

因为只要程序以非常重要的方式更改,代码目录就会更改,因此可以使用此测试来明确地识别程序的某个特定版本.

任何人都对这可能是最微弱的想法?我用来生成.ipa的存档是直接从与.ipa相同的构建产品文件夹下载的,但是如果我对该文档的理解是正确的,那么散列应该是相同的.或者我误解了文档和其他问题?

更新12/30:在朋友建议尝试之后我意识到的另一件事:直接来自Xcode Bot的构建产品通过Xcode Organizer直接安装在我的手机上(位于配置文件中),没有问题.根据他们的要求,我已将构建版本通过电子邮件发送给TestFlight,他们看到他们是否可以找到任何问题.

更新2,12 / 30:我会注意到来自Matt Vlasach的这个脚本确实有效,但实际上它使用证书和配置文件从存档重新签署应用程序 - 理论上,不需要添加此步骤如果证书和配置文件与您的构建方案中指定的相同,则应该只能直接上载.ipa构建产品.马特没有详细说明他为什么在他的帖子中添加了这一步 - 任何有任何想法的人?

更新3,1/2:神秘感加深:如果我直接从Xcode Bot获取构建产品并使用TestFlight的桌面应用程序上传它,它上传很好,安装在我的手机(在配置文件上)很好,并打开安装后工作正常.我已根据他们的要求向TestFlight的支持团队发送了大量日志,他们将看看wtfbbq正在进行中,当我收到他们的回复时我会报告回来.

xcode bots code-signing testflight ios-provisioning

8
推荐指数
1
解决办法
2307
查看次数

AndroidJUnit4.class + org.junit.Assume.assumeTrue = AssumptionViolatedException

我已经设法让我的Android项目转换到JUnit4,当然我想要做的主要原因是无法正常工作.如果有人在这里有想法,会喜欢任何帮助.

我试图解决的问题是,如果构建未指向登台服务器,我想自动跳过某些测试.我已经设置了一个BUILD_TYPE使用gradle注入基本URL的设置.

assumeThat在我的设置中设置了一个子句,它可以正确识别构建何时不进行分段,但不是暂停和忽略其余的测试,而是抛出异常并失败.

这是我的实时API测试的基类 - 我已经注释了这一点@RunWith(AndroidJUnit4.class),因此在理论上这应该始终与JUnit4运行器一起运行:

package com.[my package].nonuitests.liveservertests;

import android.support.test.runner.AndroidJUnit4;
import com.[my package].nonuitests.BaseAndroidTest;
import org.junit.Test;
import org.junit.runner.RunWith;

/**
 * Tests against the live API. All tests descending from this class will
 * be ignored if the BUILD_TYPE is not staging.
 */
@RunWith(AndroidJUnit4.class)
public class BaseLiveServerTests extends BaseAndroidTest {

    private static final String STAGE = "staging";

    /******************
     * SETUP/TEARDOWN *
     ******************/

    @Override
    public void setUp() throws Exception {
        super.setUp();

        //TODO: Y U NO WORK?! …
Run Code Online (Sandbox Code Playgroud)

java junit android junit4 android-testing

5
推荐指数
1
解决办法
994
查看次数

Android Lollipop EditText:自动完成功能不适用于电子邮件地址

我有一堆EditTexts注册片段.

在奇巧及以下,任何EditTextinputType是一个电子邮件地址,将使用系统的自动完成,这是方便了用户投入他们的电子邮件地址.

然而,在Lollipop(Nexus 4上的5.0.1,它的价值),它拒绝使用自动完成.这是我设置输入类型的代码:

mEditText.setInputType(InputType.TYPE_CLASS_TEXT
                | InputType.TYPE_TEXT_VARIATION_EMAIL_ADDRESS
                | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT));
Run Code Online (Sandbox Code Playgroud)

下面的代码只是将每个单词的第一个字母大写,而不是将输入设置为电子邮件地址,导致AutoComplete在所有API级别上工作(即使我设置的标志是自动更正而不是自动完成):

mEditText.setInputType(InputType.TYPE_CLASS_TEXT
            | InputType.TYPE_TEXT_FLAG_CAP_WORDS
            | InputType.TYPE_TEXT_FLAG_AUTO_CORRECT);
Run Code Online (Sandbox Code Playgroud)

这是非常令人困惑的,因为查看TYPE_TEXT_FLAG_AUTO_CORRECT的文档,它看起来应该实际上应该禁用自动完成.

TL; DR:你怎么在Lollipop EditText上启用自动完成功能,你希望得到一个电子邮件地址?

android autocomplete android-edittext android-5.0-lollipop

5
推荐指数
1
解决办法
684
查看次数

如何从Xcode 6.3中的设备访问崩溃报告,而不是来自设备的TestFlight Beta分布式应用程序的.ips.beta文件?

在以前版本的Xcode 6.x中,如果我想访问崩溃报告,我会转到Window> Devices,选择设备,然后点击"查看设备日志".但是,当我现在这样做时,我刚刚点击的崩溃没有出现在这个窗口中(我清除了之前的任何日志,以确保它们不是简单地出现在列表中的意外位置):

你不能有日志

当我让设备与iTunes同步时(当我同步它时),它会将日志关闭为~/Library/Logs/CrashReporter/MobileDevice/[device name]/[app name]_[timestamp]_iPhone.ips.beta.看一下较旧的崩溃报告,他们只是结束.ips而不是.ips.beta.

当我将其.ips.beta拖入控制台应用程序时,它似乎是崩溃日志,但顶部有一堆JSON.我已经验证我正在使用的手机已向开发人员发送崩溃报告,以便我理论上能够使用TestFlight崩溃报告,但据我所知,至少需要一天时间才能显示崩溃组织者的崩溃选项卡.在尝试调试非开发人员发现的问题时,这不是非常有用.

注意:我们在应用程序中使用Crashlytics,并且崩溃确实出现在Fabric上,但之前这并没有导致实际从设备上获取日志的任何问题.从理论上讲,拥有异常监听器不应该完全吃早餐的崩溃日志.

有没有办法获得标准的崩溃报告,所以如果我使用TestFlight Neue的beta程序,我可以将它们从手机上取下来?或者,如果我要让非开发人员进行测试,如果我希望能够从他们那里获得快速崩溃报告,我是否需要为他们提供已签名的应用程序?

是的,我已经尝试将其关闭再打开 - 重新启动手机和Xcode都没有任何好处.

xcode crash-reports ios testflight

5
推荐指数
1
解决办法
2108
查看次数

崩溃/重新安装后LogCat不显示任何内容

首先,作为背景:我在Mac上,运行OS X 10.6.7.使用Eclipse进行Android开发课程(我希望最终直接为Android开发).

几天前我遇到了令人讨厌的Eclipse崩溃,重新启动后我无法从LogCat获取任何输出.我尝试了所有我能想到的东西,而且我根本无法得到任何东西出现在日志中.我尝试了重新安装Eclipse的nuke-it-orbit,它至少有点不同.当我运行此代码片段时,我想出了测试的东西:

import android.app.Activity;
import android.os.Bundle;
import android.util.Log;

public class LogTester extends Activity {
    /** Called when the activity is first created. */
    public static final String TAG = "LogTester";

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Log.d(TAG, "Activity was created");
        Log.d(TAG, "Anybody Home?");  
    }
}
Run Code Online (Sandbox Code Playgroud)

...它告诉我这个(显然我不能直接将图像作为菜鸟发布),但是当我实际点击LogCat的LogTester选项卡时,我什么也看不见.当我点击返回主日志选项卡时,反之亦然,正如您所看到的那样,其中应包含11个新项目.

我尝试更改字体,因为显示字体可能存在某种问题,我听说字体和10.6.7存在奇怪的问题.但我得到一个"从插件调用代码时出现问题:"org.eclipse.ui.workbench"." 错误并完全拒绝更改字体类型.我无法弄清楚Eclipse隐藏这个偏好的位置,所以我可以尝试手动操作它.

任何人对我接下来要尝试的事情都有任何想法/建议吗?这绝对令人抓狂.谢谢!

更新(凌晨3点31分):我删除并重新创建了我的AVM大约第15次,LogCat突然开始工作.如果我知道为什么会发生故障,但我不是在质疑它.

eclipse macos android logcat

2
推荐指数
1
解决办法
2195
查看次数