我似乎无法在Xcode中刷新我的配置文件而不会崩溃.每次我在组织器中按下刷新按钮时它都会崩溃并从错误日志中检索此行:
UNCAUGHT EXCEPTION (NSInvalidArgumentException): *** setObjectForKey: object cannot be nil (key: teamId)
Run Code Online (Sandbox Code Playgroud)
所以我检查了我的teamId,但没有发现任何异常.有人有什么想法导致我的问题吗?每次刷新我的个人资料时,这都适用于我.甚至今天早上做了10次.
编辑:
如果需要,请提供崩溃报告:
Process: Xcode [1136]
Path: /Applications/Xcode.app/Contents/MacOS/Xcode
Identifier: com.apple.dt.Xcode
Version: 4.6.1 (2067)
Build Info: IDEApplication-2067000000000000~2
App Item ID: 497799835
App External ID: 14581035
Code Type: X86-64 (Native)
Parent Process: launchd [272]
User ID: 501
Date/Time: 2013-03-15 15:21:43.906 +0100
OS Version: Mac OS X 10.8.3 (12D78)
Report Version: 10
Interval Since Last Report: 14773 sec
Crashes Since Last Report: 9
Per-App Interval Since Last Report: 14523 sec
Per-App …
Run Code Online (Sandbox Code Playgroud) 我终于找到了为什么我的应用程序崩溃为了发布而构建.ProGuard确实从我的应用程序中剥离了代码,但我通过在proguard-android.txt(在sdk中找到)中手动添加带有keep命令的类来防止这种情况.
对于Facebook,我用过:
-keep class com.facebook.android.*
-keep class android.webkit.WebViewClient
-keep class * extends android.webkit.WebViewClient
-keepclassmembers class * extends android.webkit.WebViewClient {
<methods>;
}
Run Code Online (Sandbox Code Playgroud)
但我想我仍然缺少一些东西.该应用程序现在无崩溃,但我无法登录Facebook并使用Open Graph.当我在调试模式下构建时,一切正常.
使用Facebook和Facebook的Open Graph有哪些设置?
编辑
这是我为ProGuard手动添加的命令:
-dontwarn android.support.**
# ActionBarSherlock
-keep class android.support.** { *; }
-keep interface android.support.** { *; }
-keep class com.actionbarsherlock.** { *; }
-keep interface com.actionbarsherlock.** { *; }
# Keep line numbers to alleviate debugging stack traces
-renamesourcefileattribute SourceFile
-keepattributes SourceFile,LineNumberTable
-keepclassmembers class * implements java.io.Serializable
{
private static final java.io.ObjectStreamField[] serialPersistentFields;
private …
Run Code Online (Sandbox Code Playgroud) 我最近尝试使用Xcode中的MainStoryboard.storyboard并且到目前为止它已经相当不错了,我想知道为什么我以前从未使用它.在玩一些代码时,我遇到了障碍,我不知道如何解决这个问题.
当我分配并初始化一个新的ViewController(我在ViewControllers类中声明了一个自定义init)时,我会做这样的事情:
ViewController *myViewController = [[ViewController alloc] initWithMyCustomData:myCustomData];
Run Code Online (Sandbox Code Playgroud)
之后我可以做类似的事情:
[self presentViewController:myViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
当我使用故事板时,我了解到切换到独立的ViewController需要一个标识符.
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewController *myViewController = [storyboard instantiateViewControllerWithIdentifier:@"MyViewControllerIdentifier"];
[self presentViewController:myViewController animated:YES completion:nil];
Run Code Online (Sandbox Code Playgroud)
在使用故事板时,如何仍然使用myViewController的自定义初始化?
只做这样的事情是可以的:
UIStoryboard *storyboard = [UIStoryboard storyboardWithName:@"MainStoryboard" bundle:nil];
ViewController *myViewController = [storyboard instantiateViewControllerWithIdentifier:@"MyViewControllerIdentifier"];
myViewController.customData = myCustomData;
[self presentViewController:myViewController animated:YES completion:nil];
//MyViewController.m
- (id) initWithMyCustomData:(NSString *) data {
if (self = [super init]) {
iVarData = data;
}
return self;
}
Run Code Online (Sandbox Code Playgroud) 上周我在这里发了一个问题,在那里我解释了当我按下刷新按钮时我的Xcode崩溃的原因.然而这个问题因为偏离主题而被关闭,但我真的不明白为什么.(Stackoverflow应提供有关此主题的更多信息)
但是我仍然遇到了这个问题而且我无法通过推送通知运行我的应用程序因为我认为我正在使用旧的配置文件而我无法刷新它们而不会导致Xcode崩溃!
我已经使用推送通知创建了多个应用程序,因此我知道该过程但仍然收到错误:
did Fail To Register For Remote Notifications With Error: Error Domain=NSCocoaErrorDomain Code=3000 "no valid 'aps-environment' entitlement string found for application" UserInfo=0x2340a0 {NSLocalizedDescription=no valid 'aps-environment' entitlement string found for application}
Run Code Online (Sandbox Code Playgroud)
有谁知道我的Xcode崩溃的原因以及如何解决这个问题?谢谢.
如果您正在考虑关闭此问题,请发表评论,以便我知道为什么这个问题已经结束.
xcode objective-c apple-push-notifications provisioning-profile
当为1个设备GCM具有多个regids时,返回规范id错误:
{"multicast_id":xxxx,"success":2,"failure":0,"canonical_ids":1,"results":[{"message_id":"xxxxx"},{"registration_id":"newest reg ID here","message_id":"xxxxxx"}]}
Run Code Online (Sandbox Code Playgroud)
所以它显示了GCM应该使用的最新regid,但为什么不显示你应该删除的regid(旧的)?我怎么知道旧的regid是什么以及我应该从我的数据库中删除哪一个?
编辑 - 使用增强的二进制格式
结果我没有使用增强的二进制格式,所以我改变了我的代码.
<?php
$message = $_POST['message'];
$passphrase = $_POST['pass'];
//Connect to db
if ($db_found) {
// Create the payload body
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
$streamContext = stream_context_create();
stream_context_set_option($streamContext, 'ssl', 'local_cert', 'x.pem');
stream_context_set_option($streamContext, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $error, $errorString, 15, STREAM_CLIENT_CONNECT, $streamContext);
stream_set_blocking ($fp, 0);
if (!$fp)
exit("Failed to connect: $err $errstr" . PHP_EOL);
echo 'Connected to APNS for Push Notification' . PHP_EOL;
// Keep push alive (waiting for delivery) for …
Run Code Online (Sandbox Code Playgroud) 此方法继续返回0.根据开发人员文档,如果设备获得最新版本的google play,此方法应返回类似SUCCES的内容.有谁知道如何使用它?
@Override
public void onResume() {
super.onResume();
GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext());
System.out.println("henkie: " + GooglePlayServicesUtil.isGooglePlayServicesAvailable(getApplicationContext()));
}
Run Code Online (Sandbox Code Playgroud) 我创建了一个库,它使用本机导航控制器来浏览反应和本机屏幕.该库是用Swift编写的,包含一些Objective-c代码来设置React桥等.目前我可以通过CocoaPods通过创建podspec并在那里定义React依赖来分发这个库.但是,这也迫使用户通过CocoaPods在他们的项目中设置React(如下所示:https://facebook.github.io/react-native/docs/integration-with-existing-apps.html ).我希望他们也使用react-native link
或手动链接选项(如:https://medium.com/@joshyhargreaves/adding-react-native-to-existing-ios-project-without-cocoapods-6f1ee9106009).
如果我理解正确,我可以创建一个静态库并分发它.到目前为止,我创建了这个静态库,添加了我的混合swift和objective-c代码,并尝试手动将其链接到我的主项目中.但是这会在我的静态库中的一个类中产生错误,我会像这样导入React import React
.错误是"No such module 'React'
.
我更新了静态库的标头搜索路径以包含:
$(SRCROOT)/../react-native/React
和
$(SRCROOT)/../React
(react-native,React和我自己的lib都在node_modules文件夹中)
两者都设置为递归.不幸的是它仍然没有找到React模块.有谁知道如何使用React创建包含依赖性的静态库?
最终目标是在我的主项目中导入这个静态库,就像import MyStaticNaivationLib
我的一个viewcontrollers和子类中的静态库中定义的类一样.
我的主项目也使用https://github.com/rebeccahughes/react-native-device-info.这看起来正是我想要实现的目标.它是一个静态库,它与React("import RCTBridgeModule.h")具有可靠性,我可以在我的主项目中手动链接.唯一的区别是该项目不包含Swift代码.
这个错误让我发疯.从Google Play商店下载时,我的应用在启动时崩溃并出现以下错误:
java.lang.ClassNotFoundException
in dalvik.system.BaseDexClassLoader.findClass
Run Code Online (Sandbox Code Playgroud)
在我们的两个设备上使用eclipse构建时,我的应用程序不会崩溃.然而一个月前,一个客户使用他的手机构建我们的应用程序,然后它也在启动时崩溃.我忽略了这个问题,因为它正在我们的设备上工作,并认为它与谷歌地图键或密钥库有关.
现在,当从Play商店下载时,我们的应用程序崩溃了.我知道没有一种简单的方法可以解决这个问题,但是我们会理解正确的方向.
我也发现很难调试这个问题,因为在我们的设备上使用eclipse构建应用程序时效果很好!
这是我报告的完整错误日志:
java.lang.RuntimeException: Unable to instantiate activity ComponentInfo{com.denederlandsewateren.winkeloord/com.denederlandsewateren.views.StartScreenActivity}: java.lang.ClassNotFoundException: com.denederlandsewateren.views.StartScreenActivity
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2099)
at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2210)
at android.app.ActivityThread.access$600(ActivityThread.java:142)
at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1208)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:137)
at android.app.ActivityThread.main(ActivityThread.java:4931)
at java.lang.reflect.Method.invokeNative(Native Method)
at java.lang.reflect.Method.invoke(Method.java:511)
at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:558)
at dalvik.system.NativeStart.main(Native Method)
Caused by: java.lang.ClassNotFoundException: com.denederlandsewateren.views.StartScreenActivity
at dalvik.system.BaseDexClassLoader.findClass(BaseDexClassLoader.java:61)
at java.lang.ClassLoader.loadClass(ClassLoader.java:501)
at java.lang.ClassLoader.loadClass(ClassLoader.java:461)
at android.app.Instrumentation.newActivity(Instrumentation.java:1053)
at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2090)
... 11 more
Run Code Online (Sandbox Code Playgroud)
再说一遍,除了对这个问题的直接回答,但也许有人可以对这个错误日志提供的问题有所了解.
编辑
如果有帮助,这是清单文件:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.xxxx.xxxxx"
android:versionCode="1"
android:versionName="1.0" >
<permission
android:name="com.xxxxx.xxxxx.MAPS_RECEIVE"
android:protectionLevel="signature" />
<permission
android:name="com.xxxxx.xxxxx.permission.C2D_MESSAGE"
android:protectionLevel="signature" /> …
Run Code Online (Sandbox Code Playgroud) 我在 Swift 中创建了一个静态库,目标当然是分发它并在另一个项目中重用这个库。在我想要导入这个静态库的项目中,我执行以下操作:
不幸的是,我收到一条错误消息:没有这样的模块“MyStaticLib”。
但是,当我在 Xcode 中创建一个新项目并执行完全相同的步骤时,根本没有错误,并且我可以在导入该库的任何类中使用该库。我查看了两个项目设置,似乎没有发现任何奇怪的地方。
标题搜索路径和库搜索路径等设置在两个项目中都是空的。
有人能指出我正确的方向吗?
android ×4
java ×4
xcode ×4
eclipse ×2
objective-c ×2
swift ×2
apns-php ×1
dalvik ×1
frameworks ×1
google-maps ×1
google-play ×1
ios ×1
php ×1
proguard ×1
react-native ×1
reactjs ×1
storyboard ×1