我的应用程序使用的唯一加密是通过HTTPS调用.目前(2017年6月7日)iTunes Connect根据iTunes Connect中的此信息要求导出合规性.
我已进入iTunesConnect - >我的应用程序 - >功能 - >加密页面,单击"iOS文档"旁边的加号和"导出合规性"表单,回答"是".
当我向下滚动时,以下两个屏幕截图显示了导出合规性框的更多详细信息.
最后2个屏幕截图建议使用HTTPS是EXEMPT使用加密,因此我应该在info.plist中设置ITSAppUsesNonExemptEncryption = false.但这一点并不清楚,并且在我的第一个屏幕截图中反映出来,如果您正在拨打HTTPS,则需要向美国政府提交年终分类报告.
所以我的问题:
如果我使用的唯一加密是通过HTTPS调用,那么设置ITSAppUsesNonExemptEncryption = false是否正确?
如果我必须设置ITSAppUsesNonExemptEncryption = true,我该如何向美国政府提交报告?该报告如何传递给Apple?我找不到关于这个过程的任何明确信息.我不想搞砸了,因为在最后一次屏幕截图中,后果可能会受到严重威胁.
无论我如何设置ITSAppUsesNonExemptEncryption,根据我的第一次屏幕截图,如果我使用HTTPS,我必须向美国政府提交年终自我分类.这是真的,过程是什么?(单击"了解更多"链接没有帮助)
我是TestFlight的新手.我正在为外部测试人员设置我的新应用程序的beta测试.我下面的各种指南,如此.我上传了一个版本并设置了外部测试人员.在尝试选择构建进行测试时,我已经警告"在您的构建可以进行测试之前,它可能必须得到Beta App Review的批准".
很公平.
当我选择"下一步"按钮时,会出现一个旋转轮,似乎再也没有发生任何事情了.附件是截图(屏幕背景显示为灰色,但您可以阅读它).我等了,等了,等了......
刷新浏览器没有帮助.iTunes连接没有反馈.我只是盯着我的屏幕看1到2天,希望最终测试结果会发生,旋转轮会停止吗?我想不是.
所以我的问题 - 如何提交Beta App Review的构建?我看不到任何按钮或过程的解释.
我一直在寻找firebase控制台半小时的按钮或菜单,允许我上传一个新的崩溃报告映射文件.而且找不到办法.我过去做过,但现在怎么也搞定了.也许事情发生了变化.屏幕上有一个大按钮,说"上传新的映射文件"不是吗?有人能让我摆脱苦难吗?
我正在使用 com.android.support:cardview-v7:23.3.0.
在API <21时,我的CardView坚持在底部放置一条暗线,如图所示
这是我的布局.
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:card_view="http://schemas.android.com/apk/res-auto"
xmlns:tools="http://schemas.android.com/tools"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center">
<android.support.v7.widget.CardView
android:id="@+id/category_cardView"
android:layout_width="320dp"
android:layout_height="wrap_content"
android:layout_margin="0dp"
card_view:cardBackgroundColor="#80d0d0d0"
card_view:cardCornerRadius="30dp"
card_view:cardUseCompatPadding="true">
<RelativeLayout
android:layout_width="match_parent"
android:layout_height="match_parent">
<ImageView
android:id="@+id/list_item_category_imageImageView"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_margin="3dp"
tools:ignore="contentDescription"
tools:src="@drawable/ic_launcher_find_the_fun" />
<ImageButton
android:id="@+id/list_item_category_listButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_alignParentRight="true"
android:layout_centerVertical="true"
android:layout_margin="3dp"
android:background="@drawable/button_selector_category"
android:contentDescription="@string/cd_list"
android:padding="10dp"
android:scaleType="fitXY"
android:src="@drawable/ic_list_black_24dp" />
<ImageButton
android:id="@+id/list_item_category_mapButton"
android:layout_width="50dp"
android:layout_height="50dp"
android:layout_centerVertical="true"
android:layout_toLeftOf="@+id/list_item_category_listButton"
android:background="@drawable/button_selector_category"
android:contentDescription="@string/cd_map"
android:padding="10dp"
android:scaleType="fitXY"
android:src="@drawable/ic_map_black_24dp" />
<!-- Title -->
<TextView
android:id="@+id/list_item_category_titleTextView"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerVertical="true"
android:layout_toLeftOf="@id/list_item_category_mapButton"
android:layout_toRightOf="@id/list_item_category_imageImageView"
android:paddingRight="3dp"
android:textSize="17sp"
android:textStyle="bold"
android:typeface="sans"
tools:text="Category Title" />
</RelativeLayout>
</android.support.v7.widget.CardView> …Run Code Online (Sandbox Code Playgroud) android android-appcompat android-library android-studio android-cardview
我有使用 URLSession 的工作代码。当服务器没有响应并且请求超时时,我正在测试行为。我的请求超时时间不能超过 25 秒。
let session: URLSession = {
let config = URLSessionConfiguration.default
config.timeoutIntervalForRequest = <various values in seconds I fill in>
return URLSession(configuration: config)
}()
Run Code Online (Sandbox Code Playgroud)
如果我设置 timeoutIntervalForRequest=5 或 10 请求将在 5 或 10 秒内超时,并且我看到此预期错误:
错误:错误域=NSURLErrorDomain 代码=-1001“请求超时。” 的UserInfo = {NSUnderlyingError = 0x15e6d1020 {错误域= kCFErrorDomainCFNetwork代码= -1001 “(空)”的UserInfo = {_ kCFStreamErrorCodeKey = -2102,_kCFStreamErrorDomainKey = 4}},NSErrorFailingURLStringKey = http://10.0.0.91:8084/margtest1/DatabaseServlet, NSErrorFailingURLKey= http://10.0.0.91:8084/margtest1/DatabaseServlet , _kCFStreamErrorDomainKey=4, _kCFStreamErrorCodeKey=-2102, NSLocalizedDescription=请求超时。}
如果我在请求后大约 25 秒设置 timeoutIntervalForRequest=60(或更多),我会看到以下错误日志:
错误:错误域=NSURLErrorDomain 代码=-1001“请求超时。” UserInfo={NSUnderlyingError=0x12d896d50 {Error Domain=kCFErrorDomainCFNetwork Code=-1001 "(null)" UserInfo={_kCFStreamErrorCodeKey=60, _kCFStreamErrorDomainKey=1}}, NSErrorFailingURLStringKey= http ://10.0.0.91marilingKeyServletFailingKey/NSErrorFailingURLStringKey= http://10.0.0.91:808 …
当从多个数据集创建折线图时,折线图仅显示其中一个数据集,并且在缩放或平移图表时,它会因致命错误而崩溃:无法形成具有 upperBound < lowerBound 的范围。
如果我从一个数据集创建折线图,它会按预期工作。
仅当两个数据集具有完全不同的 X 值范围时,才会出现此问题。
下面的代码应该绘制一个 x 范围从 0 到 19 的图表(即 2 个数据集)。但它只绘制第二个数据集。如果平移或缩放图表,图表会崩溃。
如果我编辑代码,替换for x in (10..<20)为for x in (0..<10),两个数据集都会正确绘制,并且图表不会崩溃。
总结一下:当添加两个具有不同 X 坐标范围的条目的数据集时,图表绘制不正确并且会崩溃。
是否需要调用 iOS_charts API 来防止这种情况发生?如何绘制两个 X 坐标不重叠的数据集?
如果我修改它以创建具有不重叠 x 坐标的多个数据集,则在使用此演示代码运行代码时,我能够产生相同的崩溃。
class ElevationChartViewController: UIViewController {
@IBOutlet var chartView: LineChartView!
override func viewDidLoad() {
super.viewDidLoad()
chartView.backgroundColor = .white
chartView.legend.enabled = false
chartView.maxVisibleCount = 20000
}
override func viewWillAppear(_ animated: Bool) {
super.viewWillAppear(animated)
let dataSets = createChartDataSets()
chartView.data …Run Code Online (Sandbox Code Playgroud) 我的APK的调试版本总是成功注册到GCM.我刚刚构建了我的APK的第一个版本.我可以通过Android Studio在我连接USB的设备上安装和运行发布版本.但是,发布版本的GCM注册始终失败.
private static final String TAG = "GcmRegIntentService";
MyRegistrationEpt backendRegService = getRegistrationService();
try {
synchronized (TAG) {
InstanceID instanceID = InstanceID.getInstance(appContext);
String token = instanceID.getToken(GCM_SENDER_ID, GoogleCloudMessaging.INSTANCE_ID_SCOPE, null);
Log.i(TAG, "before register, token: " + token);
backendRegService.register(token).execute();
}
} catch (Exception ex) {
Log.i(TAG, "Error: " + ex.getMessage());
}
private MyRegistrationEpt getRegistrationService() {
MyRegistrationEpt.Builder builder = new MyRegistrationEpt.Builder(AndroidHttp.newCompatibleTransport(), new AndroidJsonFactory(), null)
.setRootUrl("https://some_valid_app.appspot.com/_ah/api/")
.setApplicationName(getResources().getString(R.string.app_name));
return builder.build();
}
Run Code Online (Sandbox Code Playgroud)
当此代码运行时,这是日志:
08-21 12:52:54.225 4145-13398/technology.grandma.margriver I/GcmRegIntentService? before register, token: <some_long_string>
08-21 12:52:55.430 4145-13398/technology.grandma.margriver I/GcmRegIntentService? Error: 404 …Run Code Online (Sandbox Code Playgroud) 我正在使用Xcode 8.1和Simulator 10.0.当我在模拟器上从Xcode运行我的应用程序时,我可以看到我的应用程序中的所有打印语句都出现在Xcode控制台中.我很高兴!
出于测试目的,我在模拟器中通过单击CMD+SHIFT+H两次并在模拟器上向上滑动来杀死我的应用程序.这会将其从内存中删除.我现在点击模拟器上的应用程序图标再次启动它.它运行正常,但应用程序的打印语句不再显示在Xcode控制台上.我试图在模拟器系统日志中找到它们(通过模拟器 - >调试 - >打开系统日志访问)但找不到它们.
如何在此方案中查看我的应用程序的打印语句?